- 网页设计
- 整站网页设计
- 网站模板设计
- 网站开发
- 综合门户网开发
- 企业网站开发
- 电子商务网站开发
- 资讯网站开发
- 团购网站开发
- 手机网站开发
- 宣传展示网站
- 网站功能开发
- 网站特效制作
- 应用软件开发
- 手机应用软件
- 计算机应用软件
- 软件美工
- 程序修改
- 仿网站开发
- 脚本插件
- 软件测试
- 网站改版
- 企业办公系统
- 软件汉化
- 软件界面皮肤
- 企业办公系统界面
- 应用移植
- Android开发
- IOS开发
- 应用汉化
- 安卓系统定制
- 网店装修
正版 RTThread内核实现与应用开发实战指南:基于STM32 计算机与互联网 移动开发 软件工程 开发项目管理 刘火良 杨森 著.
- 产品名称:RT-Thread内核实现与应用...
- 书名:RT-Thread内核实现与应用开发实战指南——基于STM32
- 作者:无
- 定价:99.00元
- 书名:RT-Thread内核实现与应用开发实战指南——基于STM32
- 开本:16开
- 是否是套装:否
- 出版社名称:机械工业出版社
RT-Thread内核实现与应用开发实战指南:基于STM32 | ||
定价 | (咨询特价) | |
出版社 | 机械工业出版社 | |
版次 | 1 | |
出版时间 | (咨询特价)年12月 | |
开本 | 16开 | |
作者 | 刘火良 杨森 著 | |
装帧 | 平装-胶订 | |
页数 | ||
字数 | ||
ISBN编码 | 64 | |
重量 | 671 |
目录
推荐序
前言
引言
一部分 从0到1教你写RT-Thread内核
1章 新建RT-Thread工程——软件仿真 2
1.1 新建本地工程文件夹 2
1.2 使用KEIL新建工程 3
1.2.1 New Project 3
1.2.2 Select Device for Target 3
1.2.3 Manage Run-Time Environment 4
1.3 在KEIL工程中新建文件组 5
1.4 在KEIL工程中添加文件 6
1.5 调试配置 7
1.5.1 设置软件仿真 7
1.5.2 修改时钟大小 8
1.5.3 添加头文件路径 9
第2章 裸机系统与多线程系统 10
2.1 裸机系统 10
2.1.1 轮询系统 10
2.1.2 前后台系统 11
2.2 多线程系统 12
第3章 线程的定义与线程切换的实现 15
3.1 什么是线程 16
3.2 创建线程 17
3.2.1 定义线程栈 17
3.2.2 定义线程函数 19
3.2.3 定义线程控制块 20
3.2.4 实现线程创建函数 20
3.3 实现就绪列表 30
3.3.1 定义就绪列表 30
3.3.2 将线程插入就绪列表 30
3.4 实现调度器 31
3.4.1 调度器初始化 32
3.4.2 启动调度器 33
3.4.3 第壹次线程切换 34
3.4.4 系统调度 41
3.5 main()函数 44
3.6 实验现象 47
第4章 临界段的保护 50
4.1 什么是临界段 50
4.2 Cortex-M内核快速关中断指令 50
4.3 关中断 51
4.4 开中断 51
4.5 临界段代码的应用 52
4.6 实验现象 56
第5章 对象容器 57
5.1 什么是对象 57
5.1.1 对象枚举的定义 57
5.1.2 对象数据类型的定义 57
5.1.3 在线程控制块中添加对象成员 58
5.2 什么是容器 59
5.3 容器的接口实现 63
5.3.1 获取指定类型的对象信息 64
5.3.2 对象初始化 64
5.3.3 调用对象初始化函数 67
5.4 实验现象 67
第6章 空闲线程与阻塞延时 68
6.1 实现空闲线程 68
6.1.1 定义空闲线程的栈 68
6.1.2 定义空闲线程的线程控制块 69
6.1.3 定义空闲线程函数 69
6.1.4 空闲线程初始化 69
6.2 实现阻塞延时 70
6.3 SysTick_Handler()中断服务函数 73
6.4 main()函数 77
6.5 实验现象 80
第7章 多优先级 82
7.1 就绪列表 82
7.1.1 线程就绪优先级组 82
7.1.2 线程优先级表 86
7.2 修改代码以支持多优先级 88
7.2.1 修改线程控制块 88
7.2.2 修改调度器初始化函数rt_system_scheduler_init() 90
7.2.3 修改线程初始化函数rt_thread_init() 91
7.2.4 添加线程启动函数rt_thread_startup() 92
7.2.5 修改空闲线程初始化函数rt_thread_idle_init() 93
7.2.6 修改启动系统调度器函数rt_system_scheduler_start() 94
7.2.7 修改系统调度函数rt_schedule() 95
7.2.8 修改阻塞延时函数rt_thread_delay() 98
7.2.9 修改时基更新函数rt_tick_increase() 98
7.3 main()函数 99
7.4 实验现象 102
第8章 定时器 103
8.1 实现定时器 103
8.1.1 系统定时器列表 103
8.1.2 系统定时器列表初始化 104
8.1.3 定义定时器结构体 104
8.1.4 在线程控制块中内置定时器 105
8.1.5 定时器初始化函数 106
8.1.6 定时器删除函数 108
8.1.7 定时器停止函数 108
8.1.8 定时器控制函数 109
8.1.9 定时器启动函数 110
8.1.10 定时器扫描函数 115
8.2 修改代码以支持定时器 118
8.2.1 修改线程初始化函数 118
8.2.2 修改线程延时函数 119
8.2.3 修改系统时基更新函数 121
8.2.4 修改main.c文件 122
8.3 实验现象 126
第9章 时间片 127
9.1 实现时间片 127
9.1.1 在线程控制块中添加时间片相关成员 127
9.1.2 修改线程初始化函数 128
9.1.3 修改空闲线程初始化函数 129
9.1.4 修改系统时基更新函数 129
9.2 修改main.c文件 131
9.3 实验现象 135
第2部分 RT-Thread 内核应用开发
第壹0章 移植RT-Thread到STM32 138
10.1 获取STM32的裸机工程模板 138
10.2 下载RT-Thread Nano源码 138
10.3 安装RT-Thread Package 139
10.4 向裸机工程中添加RT-Thread源码 140
10.4.1 复制RT-Thread Package到裸机工程根目录 140
10.4.2 复制rtconfig.h文件到User文件夹 141
10.4.3 复制board.c文件到User文件夹 141
10.4.4 rt-thread文件夹内容简介 141
10.4.5 添加RT-Thread源码到工程组文件夹 143
10.5 rtconfig.h文件 145
10.5.1 rtconfig.h文件内容讲解 145
10.5.2 rtconfig.h文件修改 152
10.6 board.c文件 156
10.6.1 board.c文件内容讲解 156
10.6.2 board.c文件修改 160
10.7 添加core_delay.c和core_delay.h文件 167
10.8 修改main.c 171
10.9 下载验证 172
第壹1章 线程 173
11.1 硬件初始化 173
11.2 创建单线程——SRAM静态内存 175
11.2.1 定义线程函数 175
11.2.2 定义线程栈 176
11.2.3 定义线程控制块 176
11.2.4 初始化线程 176
11.2.5 启动线程 177
11.2.6 main.c文件内容 177
11.3 下载验证SRAM静态内存单线程 179
11.4 创建单线程——SRAM动态内存 179
11.4.1 动态内存空间堆的来源 180
11.4.2 定义线程函数 181
11.4.3 定义线程栈 181
11.4.4 定义线程控制块指针 181
11.4.5 创建线程 181
11.4.6 启动线程 182
11.4.7 main.c文件内容 182
11.5 下载验证SRAM动态内存单线程 184
11.6 创建多线程——SRAM动态内存 185
11.7 下载验证SRAM动态内存多线程 187
第壹2章 重映射串口到rt_kprintf()函数 188
12.1 rt_kprintf()函数定义 188
12.2 自定义rt_hw_console_output()函数 189
12.3 测试rt_kprintf()函数 191
12.3.1 硬件初始化 191
12.3.2 编写rt_kprintf()测试代码 192
12.3.3 下载验证 192
第壹3章 RT-Thread的启动流程 194
13.1 “万事俱备,只欠东风”法 194
13.2 “小心翼翼,十分谨慎”法 195
13.3 两种方法的适用情况 197
13.4 RT-Thread的启动流程 197
13.4.1 $Sub$$main()函数 198
13.4.2 rtthread_startup()函数 199
13.4.3 rt_application_init()函数 201
13.4.4 $Super$$main()函数 202
13.4.5 main()函数 203
第壹4章 线程管理 205
14.1 线程的基本概念 205
14.2 线程调度器的基本概念 205
14.3 线程状态的概念 206
14.4 线程状态迁移 206
14.5 常用的线程函数 207
14.5.1 线程挂起函数rt_thread_suspend() 207
14.5.2 线程恢复函数rt_thread_resume() 209
14.6 线程的设计要点 210
14.7 线程管理实验 212
14.8 实验现象 215
第壹5章 消息队列 216
15.1 消息队列的基本概念 216
15.2 消息队列的运作机制 217
15.3 消息队列的阻塞机制 218
15.4 消息队列的应用场景 218
15.5 消息队列控制块 218
15.6 消息队列函数 219
15.6.1 消息队列创建函数rt_mq_create() 219
15.6.2 消息队列删除函数rt_mq_delete() 221
15.6.3 消息队列发送消息函数rt_mq_send() 223
15.6.4 消息队列接收消息函数rt_mq_recv() 226
15.7 消息队列使用注意事项 229
15.8 消息队列实验 230
15.9 实验现象 233
第壹6章 信号量 234
16.1 信号量的基本概念 234
16.2 二值信号量的应用场景 235
16.3 二值信号量的运作机制 236
16.4 计数型信号量的运作机制 236
16.5 信号量控制块 237
16.6 信号量函数 237
16.6.1 信号量创建函数rt_sem_create() 238
16.6.2 信号量删除函数rt_sem_delete() 239
16.6.3 信号量释放函数rt_sem_release() 240
16.6.4 信号量获取函数rt_sem_take() 242
16.7 信号量实验 245
16.7.1 二值信号量同步实验 245
16.7.2 计数型信号量实验 248
本书基于野火STM32全系列开发板介绍RT-Thread内核实现与应用开发,全书分为两部分:第壹部分教你如何从0到1把RT-Thread内核写出来,从底层的汇编开始讲解线程如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现定时器以及时间片等RT-Thread的核心知识点;第2部分则讲解RT-Thread内核组件的应用以及如何使用RT-Thread进行多线程编程。
本书内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业学生学习参考。
-
最近销售:0 掌柜:工控学习资料库¥59 元
-
最近销售:0 掌柜:Byteasy软件(专业专注品质保证)¥30 元
-
最近销售:0 掌柜:书百态图书专营¥106 元
-
最近销售:0 掌柜:书百态图书专营¥122 元
-
最近销售:0 掌柜:书百态图书专营¥127 元
-
最近销售:0 掌柜:书百态图书专营¥104 元
-
最近销售:0 掌柜:顺亿智能软件直销平台¥300 元
-
最近销售:0 掌柜:顺亿智能软件直销平台¥300 元