描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111717454丛书名: 电子与嵌入式系统设计丛书
编辑推荐
(1)自研开源嵌入式实时操作系统RT-Thread核心开发者撰写,专业性毋庸置疑 (2)系统讲解RT-Thread设备驱动开发方法,剖析26种设备驱动开发案例,助力开发者快速掌握RT-Thread设备驱动开发技能
内容简介
本书由自研开源嵌入式实时操作系统RT-Thread核心开发者撰写,专业性毋庸置疑,系统讲解RT-Thread设备驱动开发方法,剖析26种设备驱动开发案例,助力开发者快速掌握RT-Thread设备驱动开发技能。
本书的内容共27章,分为三篇。
基础篇(第1~11章),先对RT-Thread以及设备框架进行总体介绍,再分别介绍RT-Thread中常用的设备,包括串口、I2C、SPI等,适合刚接触驱动开发的人学习。
进阶篇(第12~20章),介绍稍复杂一些的外设驱动,如SDIO、触摸、显示、传感器、加解密设备等。
高级篇(第21~27章),介绍一些复杂的驱动,如网络、音频、USB、CAN等,开发此类设备驱动要求开发者本身对相应的外设协议比较熟悉。
各章均配有配套案例,方便读者动手实践和参考。
本书的内容共27章,分为三篇。
基础篇(第1~11章),先对RT-Thread以及设备框架进行总体介绍,再分别介绍RT-Thread中常用的设备,包括串口、I2C、SPI等,适合刚接触驱动开发的人学习。
进阶篇(第12~20章),介绍稍复杂一些的外设驱动,如SDIO、触摸、显示、传感器、加解密设备等。
高级篇(第21~27章),介绍一些复杂的驱动,如网络、音频、USB、CAN等,开发此类设备驱动要求开发者本身对相应的外设协议比较熟悉。
各章均配有配套案例,方便读者动手实践和参考。
目 录
前言
第一篇 基础篇
第1章 RT-Thread与设备框架
简介 2
1.1 RT-Thread概述 2
1.2 RT-Thread I/O设备框架 5
1.2.1 I/O设备模型与分类 8
1.2.2 I/O设备管理接口 10
1.2.3 驱动编写流程与规范 15
1.3 本章小结 16
第2章 UART设备驱动开发 17
2.1 UART层级结构 18
2.2 创建UART设备 19
2.3 实现UART设备的操作方法 20
2.3.1 configure:配置UART
设备 21
2.3.2 control:控制UART设备 23
2.3.3 putc:发送一个字符 26
2.3.4 getc:接收一个字符 27
2.3.5 transmit:数据发送 28
2.4 注册UART设备 29
2.5 UART设备中断处理 30
2.6 增加DMA模式 32
2.7 驱动配置 37
2.8 驱动验证 38
2.9 本章小结 39
第3章 PIN设备驱动开发 41
3.1 PIN层级结构 41
3.2 实现PIN设备的操作方法 42
3.3 注册PIN设备 51
3.4 驱动配置 52
3.5 驱动验证 52
3.6 本章小结 53
第4章 I2C总线设备驱动开发 54
4.1 I2C层级结构 55
4.2 I2C总线设备结构 55
4.3 硬件I2C总线设备驱动开发 56
4.3.1 实现设备的操作方法 57
4.3.2 注册设备 59
4.3.3 驱动配置 60
4.3.4 驱动验证 61
4.4 软件I2C总线设备驱动开发 61
4.4.1 实现设备的操作方法 62
4.4.2 注册设备 66
4.5 本章小结 67
第5章 SPI/QSPI总线设备驱动
开发 68
5.1 SPI/QSPI层级结构 69
5.2 SPI总线设备驱动开发 70
5.2.1 创建SPI总线设备 70
5.2.2 实现SPI总线设备的操作
方法 72
5.2.3 注册SPI总线设备 76
5.2.4 增加DMA功能 77
5.2.5 实现挂载SPI从设备功能 80
5.2.6 SPI总线设备驱动配置 81
5.2.7 驱动验证 82
5.3 QSPI 总线设备驱动开发 83
5.3.1 创建QSPI总线设备 83
5.3.2 实现QSPI总线设备的
操作方法 84
5.3.3 注册QSPI总线设备 87
5.3.4 实现挂载QSPI从设备
功能 87
5.3.5 QSPI 总线设备驱动配置 89
5.3.6 驱动验证 89
5.4 本章小结 90
第6章 HWTIMER设备驱动
开发 91
6.1 HWTIMER层级结构 91
6.2 创建HWTIMER设备 92
6.3 实现HWTIMER设备的操作
方法 93
6.3.1 init:初始化设备 93
6.3.2 start:启动设备 95
6.3.3 stop:停止设备 96
6.3.4 count_get:获取设备
当前值 96
6.3.5 control:控制设备 97
6.4 注册HWTIMER设备 98
6.5 HWTIMER设备中断处理 99
6.6 驱动配置 100
6.7 驱动验证 101
6.8 本章小结 101
第7章 PWM设备驱动开发 102
7.1 PWM层级结构 103
7.2 创建PWM设备 104
7.3 实现PWM设备的操作方法 105
7.4 注册PWM设备 108
7.5 驱动配置 109
7.6 验证与使用 110
7.7 本章小结 111
第8章 RTC设备驱动开发 112
8.1 RTC层级结构 112
8.2 创建RTC设备 113
8.3 实现RTC设备的操作方法 113
8.3.1 为设备定义操作方法 114
8.3.2 init:初始化设备 115
8.3.3 get_secs:获取时间 115
8.3.4 set_secs:设置时间 116
8.3.5 get_timeval:获取timeval
结构 117
8.4 注册RTC设备 118
8.5 驱动配置 119
8.6 驱动验证 120
8.7 本章小结 121
第9章 ADC设备驱动开发 122
9.1 ADC层级结构 122
9.2 创建ADC设备 123
9.3 实现ADC设备的操作方法 124
9.3.1 enabled:控制ADC
通道 125
9.3.2 convert:转换并获取ADC
采样值 125
9.4 注册ADC设备 126
9.5 驱动配置 127
9.6 驱动验证 128
9.7 本章小结 129
第10章 DAC设备驱动开发 130
10.1 DAC层级结构 130
10.2 创建DAC设备 131
10.3 实现设备的操作方法 132
10.3.1 enabled:使能DAC
通道 133
10.3.2 disabled:禁止DAC
通道 133
10.3.3 convert:设置DAC输出值
并启动数模转换 134
10.4 注册DAC设备 135
10.5 驱动配置 136
10.6 驱动验证 136
10.7 本章小结 138
第11章 WDT设备驱动开发 139
11.1 WDT层级结构 139
11.2 创建WDT设备 140
11.3 实现WDT设备的操作方法 141
11.3.1 为设备定义操作方法 141
11.3.2 init:初始化看门狗
设备 141
11.3.3 control:控制看门狗
设备 142
11.4 注册WDT设备 143
11.5 驱动配置 144
11.6 驱动验证 145
11.7 本章小结 146
第二篇 进阶篇
第12章 SDIO 设备驱动开发148
12.1 SDIO层级结构 148
12.2 实现SDIO设备的操作方法 149
12.2.1 request:发送请求 149
12.2.2 set_iocfg:配置SDIO 154
12.2.3 get_card_status:获取
状态 156
12.2.4 enable_sdio_irq:配置
中断 156
12.3 创建并激活SDIO主机 157
12.4 驱动配置 159
12.5 驱动验证 159
1
第一篇 基础篇
第1章 RT-Thread与设备框架
简介 2
1.1 RT-Thread概述 2
1.2 RT-Thread I/O设备框架 5
1.2.1 I/O设备模型与分类 8
1.2.2 I/O设备管理接口 10
1.2.3 驱动编写流程与规范 15
1.3 本章小结 16
第2章 UART设备驱动开发 17
2.1 UART层级结构 18
2.2 创建UART设备 19
2.3 实现UART设备的操作方法 20
2.3.1 configure:配置UART
设备 21
2.3.2 control:控制UART设备 23
2.3.3 putc:发送一个字符 26
2.3.4 getc:接收一个字符 27
2.3.5 transmit:数据发送 28
2.4 注册UART设备 29
2.5 UART设备中断处理 30
2.6 增加DMA模式 32
2.7 驱动配置 37
2.8 驱动验证 38
2.9 本章小结 39
第3章 PIN设备驱动开发 41
3.1 PIN层级结构 41
3.2 实现PIN设备的操作方法 42
3.3 注册PIN设备 51
3.4 驱动配置 52
3.5 驱动验证 52
3.6 本章小结 53
第4章 I2C总线设备驱动开发 54
4.1 I2C层级结构 55
4.2 I2C总线设备结构 55
4.3 硬件I2C总线设备驱动开发 56
4.3.1 实现设备的操作方法 57
4.3.2 注册设备 59
4.3.3 驱动配置 60
4.3.4 驱动验证 61
4.4 软件I2C总线设备驱动开发 61
4.4.1 实现设备的操作方法 62
4.4.2 注册设备 66
4.5 本章小结 67
第5章 SPI/QSPI总线设备驱动
开发 68
5.1 SPI/QSPI层级结构 69
5.2 SPI总线设备驱动开发 70
5.2.1 创建SPI总线设备 70
5.2.2 实现SPI总线设备的操作
方法 72
5.2.3 注册SPI总线设备 76
5.2.4 增加DMA功能 77
5.2.5 实现挂载SPI从设备功能 80
5.2.6 SPI总线设备驱动配置 81
5.2.7 驱动验证 82
5.3 QSPI 总线设备驱动开发 83
5.3.1 创建QSPI总线设备 83
5.3.2 实现QSPI总线设备的
操作方法 84
5.3.3 注册QSPI总线设备 87
5.3.4 实现挂载QSPI从设备
功能 87
5.3.5 QSPI 总线设备驱动配置 89
5.3.6 驱动验证 89
5.4 本章小结 90
第6章 HWTIMER设备驱动
开发 91
6.1 HWTIMER层级结构 91
6.2 创建HWTIMER设备 92
6.3 实现HWTIMER设备的操作
方法 93
6.3.1 init:初始化设备 93
6.3.2 start:启动设备 95
6.3.3 stop:停止设备 96
6.3.4 count_get:获取设备
当前值 96
6.3.5 control:控制设备 97
6.4 注册HWTIMER设备 98
6.5 HWTIMER设备中断处理 99
6.6 驱动配置 100
6.7 驱动验证 101
6.8 本章小结 101
第7章 PWM设备驱动开发 102
7.1 PWM层级结构 103
7.2 创建PWM设备 104
7.3 实现PWM设备的操作方法 105
7.4 注册PWM设备 108
7.5 驱动配置 109
7.6 验证与使用 110
7.7 本章小结 111
第8章 RTC设备驱动开发 112
8.1 RTC层级结构 112
8.2 创建RTC设备 113
8.3 实现RTC设备的操作方法 113
8.3.1 为设备定义操作方法 114
8.3.2 init:初始化设备 115
8.3.3 get_secs:获取时间 115
8.3.4 set_secs:设置时间 116
8.3.5 get_timeval:获取timeval
结构 117
8.4 注册RTC设备 118
8.5 驱动配置 119
8.6 驱动验证 120
8.7 本章小结 121
第9章 ADC设备驱动开发 122
9.1 ADC层级结构 122
9.2 创建ADC设备 123
9.3 实现ADC设备的操作方法 124
9.3.1 enabled:控制ADC
通道 125
9.3.2 convert:转换并获取ADC
采样值 125
9.4 注册ADC设备 126
9.5 驱动配置 127
9.6 驱动验证 128
9.7 本章小结 129
第10章 DAC设备驱动开发 130
10.1 DAC层级结构 130
10.2 创建DAC设备 131
10.3 实现设备的操作方法 132
10.3.1 enabled:使能DAC
通道 133
10.3.2 disabled:禁止DAC
通道 133
10.3.3 convert:设置DAC输出值
并启动数模转换 134
10.4 注册DAC设备 135
10.5 驱动配置 136
10.6 驱动验证 136
10.7 本章小结 138
第11章 WDT设备驱动开发 139
11.1 WDT层级结构 139
11.2 创建WDT设备 140
11.3 实现WDT设备的操作方法 141
11.3.1 为设备定义操作方法 141
11.3.2 init:初始化看门狗
设备 141
11.3.3 control:控制看门狗
设备 142
11.4 注册WDT设备 143
11.5 驱动配置 144
11.6 驱动验证 145
11.7 本章小结 146
第二篇 进阶篇
第12章 SDIO 设备驱动开发148
12.1 SDIO层级结构 148
12.2 实现SDIO设备的操作方法 149
12.2.1 request:发送请求 149
12.2.2 set_iocfg:配置SDIO 154
12.2.3 get_card_status:获取
状态 156
12.2.4 enable_sdio_irq:配置
中断 156
12.3 创建并激活SDIO主机 157
12.4 驱动配置 159
12.5 驱动验证 159
1
前 言
为什么要写本书
距离2019年我们出版《嵌入式实时操作系统:RT-Thread设计与实现》,已经过去三年的时间了。该书降低了RT-Thread的学习门槛,让更多的人学习和掌握了RT-Thread。该书也非常受开发者的欢迎,三年里加印了多次。
这三年,RT-Thread不忘初心,持续发展,系统版本推进到了4.1.0,软件包的数量也增加至数百款。RT-Thread广泛地应用于消费电子、医疗、汽车、能源、军工、航天等众多行业,成为国人自主开发的、 成熟稳定的、装机量 的开源嵌入式操作系统。
深处行业中,我们深刻地感受到近年来国内芯片产业和物联网产业的快速崛起趋势。行业发展迫切需要更多人才,尤其需要掌握嵌入式操作系统等底层技术的人才。而随着RT-Thread被更广泛地应用于行业中,开发者对嵌入式驱动开发的需求越来越强烈,他们迫切地希望有一本可以指导他们在RT-Thread上开发驱动的指南。
为了解决开发者的燃眉之急,我们撰写了本书—《RT-Thread设备驱动开发指南》,希望帮助RT-Thread的开发者掌握驱动开发的知识点,让开发者能够更简单、更方便地开发驱动,加速产品上市,让RT-Thread赋能更多行业,真正做到“积识成睿,慧泽百川”。
总之,本书的初衷在于指导RT-Thread的开发者,让更多人能够了解RT-Thread设备框架,掌握RT-Thread上的设备驱动开发,从而能够一起参与开发RT-Thread,共同打造开源、开放、小而美的物联网操作系统。
距离2019年我们出版《嵌入式实时操作系统:RT-Thread设计与实现》,已经过去三年的时间了。该书降低了RT-Thread的学习门槛,让更多的人学习和掌握了RT-Thread。该书也非常受开发者的欢迎,三年里加印了多次。
这三年,RT-Thread不忘初心,持续发展,系统版本推进到了4.1.0,软件包的数量也增加至数百款。RT-Thread广泛地应用于消费电子、医疗、汽车、能源、军工、航天等众多行业,成为国人自主开发的、 成熟稳定的、装机量 的开源嵌入式操作系统。
深处行业中,我们深刻地感受到近年来国内芯片产业和物联网产业的快速崛起趋势。行业发展迫切需要更多人才,尤其需要掌握嵌入式操作系统等底层技术的人才。而随着RT-Thread被更广泛地应用于行业中,开发者对嵌入式驱动开发的需求越来越强烈,他们迫切地希望有一本可以指导他们在RT-Thread上开发驱动的指南。
为了解决开发者的燃眉之急,我们撰写了本书—《RT-Thread设备驱动开发指南》,希望帮助RT-Thread的开发者掌握驱动开发的知识点,让开发者能够更简单、更方便地开发驱动,加速产品上市,让RT-Thread赋能更多行业,真正做到“积识成睿,慧泽百川”。
总之,本书的初衷在于指导RT-Thread的开发者,让更多人能够了解RT-Thread设备框架,掌握RT-Thread上的设备驱动开发,从而能够一起参与开发RT-Thread,共同打造开源、开放、小而美的物联网操作系统。
评论
还没有评论。