RT-Thread内核实现与应用开发实战指南——基于STM32
全新正版 极速发货
¥
53.71
5.4折
¥
99
全新
库存17件
作者刘火良,杨森
出版社机械工业出版社
ISBN9787111613664
出版时间2019-01
装帧平装
开本16开
定价99元
货号1201809110
上书时间2024-08-18
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
刘火良,野火STM32开发板创始人,嵌入式软件工程师,长期从事STM32软硬件开发,网络教程《零死角玩转STM32》作者,著有《STM32库开发实战指南》。
目录
推荐序
前言
引言
部分从0到1教你写RTThread内核
章新建RTThread工程——软件仿真 2
1.1新建本地工程文件夹 2
1.2使用KEIL新建工程 3
1.2.1New Project 3
1.2.2Select Device for Target 3
1.2.3Manage RunTime 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.5main()函数 44
3.6实验现象 47
第4章临界段的保护 50
4.1什么是临界段 50
4.2CortexM内核快速关中断指令 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.3SysTick_Handler()中断服务函数 73
6.4main()函数 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.3main()函数 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
第二部分RTThread 内核应用开发
0章移植RTThread到STM32 138
10.1获取STM32的裸机工程模板 138
10.2下载RTThread Nano源码 138
10.3安装RTThread Package 139
10.4向裸机工程中添加RTThread源码 140
10.4.1复制RTThread Package到裸机工程根目录 140
10.4.2复制rtconfig.h文件到User文件夹 141
10.4.3复制board.c文件到User文件夹 141
10.4.4rtthread文件夹内容简介 141
10.4.5添加RTThread源码到工程组文件夹 143
10.5rtconfig.h文件 145
10.5.1rtconfig.h文件内容讲解 145
10.5.2rtconfig.h文件修改 152
10.6board.c文件 156
10.6.1board.c文件内容讲解 156
10.6.2board.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.6main.c文件内容 177
11.3下载验证SRAM静态内存单线程 179
11.4创建单线程——SRAM动态内存 179
11.4.1动态内存空间堆的来源
……
内容摘要
本书基于野火STM32全系列开发板介绍RT-Thread内核实现与应用开发,全书分为两部分:靠前部分教你如何从0到1把RT-Thread内核写出来,从底层的汇编开始讲解线程如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现定时器以及时间片等RT-Thread的核心知识点;第二部分则讲解RT-Thread内核组件的应用以及如何使用RT-Thread进行多线程编程。本书内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业学生学习参考。
精彩内容
— 没有更多了 —
以下为对购买帮助不大的评价