新書推薦:
《
汗青堂丛书144·决战地中海
》
售價:NT$
765.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:NT$
250.0
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:NT$
398.0
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:NT$
505.0
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
|
內容簡介: |
·本书采用GD32F303ZET6芯片的GD32F3苹果派开发板,重点介绍FreeRTOS作系统的原理与应用开发。全书共19章,前两章简要介绍了嵌入式作系统和GD32F3苹果派开发板;第3~19章分别介绍基准工程的创建、简易作系统的实现,以及FreeRTOS的移植、任务管理、时间管理、消息队列、二值信号量与计数信号量、互斥信号量、事件标志组、任务通知、软件定时器、内存管理、中断管理、CPU利用率、流缓冲区、消息缓冲区和协程。全书程序代码的编写均遵循统一规范,且各章的工程均采用模块化设计,以便于将各模块应用在实际项目和产品中。本书配有丰富的资料,涵盖GD32F3苹果派开发板原理图、例程、软件、PPT等。资料将持续更新,下载可通过“越工程师培养系列”获取。本书既可以作为高等院校电子信息、自动化等业微控制器相关课程的教材,也可以作为微控制器系统设计及相关行业工程技术人员的入门培训用书。
|
目錄:
|
第1章 嵌入式作系统简介 1
1.1 裸机系统与嵌入式作系统 1
1.1.1 简单裸机系统 1
1.1.2 基于定时器计时的裸机系统 2
1.1.3 嵌入式作系统 2
1.2 作系统的分类 3
1.2.1 分时作系统 3
1.2.2 实时作系统 3
1.3 FreeRTOS简介 4
1.3.1 为什么选择FreeRTOS 4
1.3.2 FreeRTOS的点 4
1.3.3 商业许可 5
1.3.4 如何获取相关资料 5
本章任务 5
本章题 5
第2章 GD32F3苹果派开发板简介 6
2.1 为什么选择GD32 6
2.2 GD32F3系列微控制器简介 6
2.3 GD32F3苹果派开发板电路简介 8
2.4 基于FreeRTOS的应用实例 11
2.5 本书配套资料 11
2.6 GD32微控制器开发工具安装与
配置 12
2.6.1 安装Keil μVision5 12
2.6.2 设置Keil μVision5 14
2.6.3 安装CH340驱动 16
本章任务 16
本章题 17
第3章 基准工程 18
3.1 GD32F30x系列微控制器的系统架
构与存储器映射 18
3.1.1 系统架构 18
3.1.2 存储器映射 19
3.2 GD32工程模块名称及说明 22
3.3 Keil编辑和编译及程序下载过程 22
3.3.1 Keil编辑和编译过程 23
3.3.2 程序下载过程 23
3.4 相关参考资料 23
3.5 代码框架 24
3.6 实例与代码解析 25
3.6.1 新建存放工程的文件夹 25
3.6.2 复制并编译原始工程 25
3.6.3 LED文件对介绍 25
3.6.4 KeyOne文件对介绍 27
3.6.5 Delay文件对介绍 30
3.6.6 RCU文件对介绍 31
3.6.7 Timer文件对介绍 33
3.6.8 Main.c文件介绍 37
3.6.9 程序下载 39
3.6.10 运行结果 44
本章任务 44
本章题 44
第4章 简易作系统 45
4.1 裸机系统与作系统的区别 45
4.2 任务切换基本原理 45
4.3 CPU工作寄存器和栈区 45
4.4 中断与异常 48
4.4.1 Cortex-M3/M4的中断与异常 48
4.4.2 中断/异常返回 50
4.4.3 SCV与PendSV异常 52
4.5 任务的性 52
4.5.1 任务先级 52
4.5.2 任务状态 52
4.5.3 不可剥夺内核和可剥夺内核 52
4.5.4 空闲任务 54
4.6 实例与代码解析 54
4.6.1 复制并编译原始工程 54
4.6.2 添加EasyOS文件对 55
4.6.3 完善EasyOS.h文件 55
4.6.4 完善EasyOS.c文件 56
4.6.5 完善Main.c文件 64
4.6.6 编译及下载验证 66
本章任务 67
本章题 67
第5章 FreeRTOS的移植 68
5.1 FreeRTOS源码的获取 68
5.2 FreeRTOS源码文件简介 68
5.3 FreeRTOS配置宏定义简介 69
5.4 实例与代码解析 70
5.4.1 复制并编译原始工程 70
5.4.2 移植 71
5.4.3 完善Main.c文件 72
5.4.4 下载验证 75
本章任务 76
本章题 76
第6章 任务管理 77
6.1 任务简介 77
6.1.1 任务函数 77
6.1.2 任务状态 78
6.1.3 任务先级 78
6.1.4 任务句柄 79
6.1.5 任务栈 79
6.1.6 任务管理相关API函数 79
6.2 任务控制块(TCB) 83
6.3 列表和列表项 83
6.4 栈帧初始化 85
6.5 SVC异常处理 86
6.6 PendSV异常处理 87
6.7 实例与代码解析 89
6.7.1 复制并编译原始工程 89
6.7.2 编写测试程序 89
6.7.3 编译及下载验证 90
本章任务 91
本章题 91
第7章 时间管理 92
7.1 相对延时 92
7.2 对延时 92
7.3 时间管理相关API函数 92
7.4 实例与代码解析 93
7.4.1 复制并编译原始工程 93
7.4.2 编写测试程序 93
7.4.3 编译及下载验证 95
本章任务 95
本章题 95
第8章 消息队列 96
8.1 队列与循环队列 96
8.2 数据存储 97
8.3 多任务访问 97
8.4 出队阻塞 97
8.5 入队阻塞 97
8.6 消息队列集 98
8.7 消息队列相关API函数 98
8.8 消息队列集相关API函数 103
8.9 实例与代码解析 107
8.9.1 复制并编译原始工程 107
8.9.2 编写测试程序 108
8.9.3 编译及下载验证 110
本章任务 111
本章题 111
第9章 二值信号量与计数信号量 112
9.1 中断延迟 112
9.2 二值信号量 113
9.3 计数信号量 115
9.4 相关API函数 116
9.5 实例与代码解析 123
9.5.1 复制并编译原始工程 123
9.5.2 编写测试程序 123
9.5.3 编译及下载验证 124
本章任务 125
本章题 125
第10章 互斥信号量 126
10.1 共享资源与互斥访问 126
10.1.1 共享资源 126
10.1.2 通过临界段实现资源管理 128
10.1.3 通过调度器实现资源管理 130
10.1.4 通过互斥信号量实现资源
管理 132
10.2 先级翻转与继承 133
10.2.1 先级翻转 133
10.2.2 先级继承 133
10.3 递归互斥信号量 134
10.4 死锁 134
10.5 互斥信号量与调度器 134
10.6 守护任务 137
10.7 互斥信号量相关API函数 138
10.8 实例与代码解析 140
10.8.1 复制并编译原始工程 140
10.8.2 编写测试程序 140
10.8.3 编译及下载验证 142
本章任务 143
本章题 143
第11章 事件标志组 144
11.1 事件标志组性 144
11.2 事件标志组原理 144
11.3 事件标志组相关API函数 145
11.4 实例与代码解析 155
11.4.1 复制并编译原始工程 155
11.4.2 编写测试程序 155
11.4.3 编译及下载验证 157
本章任务 158
本章题 158
第12章 任务通知 159
12.1 任务通知原理 159
12.2 任务通知相关API函数 160
12.3 任务通知的应用 166
12.4 实例与代码解析 170
12.4.1 复制并编译原始工程 170
12.4.2 编写测试程序 170
12.4.3 编译及下载验证 171
本章任务 171
本章题 171
第13章 软件定时器 172
13.1 软件定时器简介 172
13.1.1 软件定时器的回调函数 172
13.1.2 软件定时器的模式 172
13.1.3 软件定时器的状态 173
13.2 软件定时器服务 174
13.2.1 软件定时器的命令队列 174
13.2.2 软件定时器服务调度 174
13.3 软件定时器ID 176
13.4 复位软件定时器 176
13.5 软件定时器相关API函数 176
13.6 实例与代码解析 186
13.6.1 复制并编译原始工程 186
13.6.2 编写测试程序 186
13.6.3 编译及下载验证 188
本章任务 188
本章题 188
第14章 内存管理 189
14.1 内存管理简介 189
14.2 内存管理的应用场景 190
14.3 内存碎片 190
14.4 FreeRTOS内存管理机制 191
14.5 内存管理相关API函数 192
14.6 实例与代码解析 193
14.6.1 复制并编译原始工程 193
14.6.2 编写测试程序 194
14.6.3 编译及下载验证 194
本章任务 195
本章题 195
第15章 中断管理 196
15.1 中断简介 196
15.2 中断先级 197
15.3 用于屏蔽中断的殊寄存器 197
15.4 FreeRTOS中断宏 199
15.5 中断开关 200
15.6 临界段代码 201
15.7 实例与代码解析 202
15.7.1 复制并编译原始工程 202
15.7.2 完善Timer.c文件 202
15.7.3 编写测试程序 204
15.7.4 编译及下载验证 205
本章任务 206
本章题 206
第16章 CPU利用率 207
16.1 CPU利用率简介 207
16.2 CPU利用率统计 207
16.3 CPU利用率相关API函数 207
16.4 实例与代码解析 208
16.4.1 复制并编译原始工程 208
16.4.2 完善FreeRTOSConfig.h文件 208
16.4.3 完善Timer文件对 209
16.4.4 编写测试程序 210
16.4.5 编译及下载验证 211
本章任务 211
本章题 212
第17章 流缓冲区 213
17.1 流缓冲区简介 213
17.2 流缓冲区相关API函数 213
17.3 实例与代码解析 219
17.3.1 复制并编译原始工程 219
17.3.2 完善UART0.c文件 219
17.3.3 编写测试程序 220
17.3.4 编译及下载验证 221
本章任务 221
本章题 221
第18章 消息缓冲区 222
18.1 消息缓冲区简介 222
18.2 消息缓冲区相关API函数 222
18.3 实例与代码解析 227
18.3.1 复制并编译原始工程 227
18.3.2 编写测试程序 228
18.3.3 编译及下载验证 229
本章任务 229
本章题 229
第19章 协程 230
19.1 协程的基本原理 230
19.2 FreeRTOS协程 231
19.2.1 FreeRTOS中协程的状态 231
19.2.2 FreeRTOS中协程的先级 231
19.2.3 FreeRTOS中的协程函数 232
19.2.4 FreeRTOS中协程的调度 233
19.2.5 FreeRTOS协程的使用限制 234
19.3 协程相关API函数 235
19.4 实例与代码解析 242
19.4.1 复制并编译原始工程 242
19.4.2 完善FreeRTOSConfig.h文件 242
19.4.3 编写测试程序 243
19.4.4 编译及下载验证 244
本章任务 245
本章题 245
参考文献 246
|
|