RT-Thread内核实现与应用开发实战指南 基于STM32

RT-Thread内核实现与应用开发实战指南 基于STM32
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2018-12
版次: 1
ISBN: 9787111613664
定价: 99.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 416页
字数: 176千字
  • 本书基于野火STM32全系列开发板介绍RT-Thread内核实现与应用开发,全书分为两部分:*部分教你如何从0到1把RT-Thread内核写出来,从底层的汇编开始讲解线程如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现定时器以及时间片等RT-Thread的核心知识点;第二部分则讲解RT-Thread内核组件的应用以及如何使用RT-Thread进行多线程编程。
      本书内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业学生学习参考。 推荐序

    前言

    引言

    第一部分 从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

    第二部分 RT-Thread 内核应用开发

    第10章 移植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

    第11章 线程  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 动态内存空间堆的来源
  • 内容简介:
    本书基于野火STM32全系列开发板介绍RT-Thread内核实现与应用开发,全书分为两部分:*部分教你如何从0到1把RT-Thread内核写出来,从底层的汇编开始讲解线程如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现定时器以及时间片等RT-Thread的核心知识点;第二部分则讲解RT-Thread内核组件的应用以及如何使用RT-Thread进行多线程编程。
      本书内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业学生学习参考。
  • 目录:
    推荐序

    前言

    引言

    第一部分 从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

    第二部分 RT-Thread 内核应用开发

    第10章 移植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

    第11章 线程  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 动态内存空间堆的来源
查看详情
您可能感兴趣 / 更多
RT-Thread内核实现与应用开发实战指南 基于STM32
RTI in Practice[RTI实践:学校贯彻有效的以实证为基础的干预之实用指南]
James L. McDougal 著
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread应用开发实战——基于STM32智能小车
赵剑川 主编;黎旺星 欧启标 熊谱翔 副主编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs涌现背景下国际贸易法治秩序的重构:一种外在的法社会学视角
刘彬 著;陈安 编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs 框架下数字贸易规则“美式模板”及其数字贸易效应研究
陈寰琦
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread设备驱动开发指南
杨洁
RT-Thread内核实现与应用开发实战指南 基于STM32
RTC程序设计:实时音视频权威指南
戴维
RT-Thread内核实现与应用开发实战指南 基于STM32
RT Essentials
Jesse Vincent;Robert Spier;Dave Rolsky;Darren Chamberlain;Richard Foley S.J
RT-Thread内核实现与应用开发实战指南 基于STM32
RTL Hardware Design Using VHDL
Chu;Pong P.
系列丛书 / 更多
RT-Thread内核实现与应用开发实战指南 基于STM32
RTI in Practice[RTI实践:学校贯彻有效的以实证为基础的干预之实用指南]
James L. McDougal 著
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread应用开发实战——基于STM32智能小车
赵剑川 主编;黎旺星 欧启标 熊谱翔 副主编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs涌现背景下国际贸易法治秩序的重构:一种外在的法社会学视角
刘彬 著;陈安 编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs 框架下数字贸易规则“美式模板”及其数字贸易效应研究
陈寰琦
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread设备驱动开发指南
杨洁
RT-Thread内核实现与应用开发实战指南 基于STM32
RTC程序设计:实时音视频权威指南
戴维
RT-Thread内核实现与应用开发实战指南 基于STM32
RT Essentials
Jesse Vincent;Robert Spier;Dave Rolsky;Darren Chamberlain;Richard Foley S.J
RT-Thread内核实现与应用开发实战指南 基于STM32
RTL Hardware Design Using VHDL
Chu;Pong P.
相关图书 / 更多
RT-Thread内核实现与应用开发实战指南 基于STM32
RTI in Practice[RTI实践:学校贯彻有效的以实证为基础的干预之实用指南]
James L. McDougal 著
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread应用开发实战——基于STM32智能小车
赵剑川 主编;黎旺星 欧启标 熊谱翔 副主编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs涌现背景下国际贸易法治秩序的重构:一种外在的法社会学视角
刘彬 著;陈安 编
RT-Thread内核实现与应用开发实战指南 基于STM32
RTAs 框架下数字贸易规则“美式模板”及其数字贸易效应研究
陈寰琦
RT-Thread内核实现与应用开发实战指南 基于STM32
RT-Thread设备驱动开发指南
杨洁
RT-Thread内核实现与应用开发实战指南 基于STM32
RTC程序设计:实时音视频权威指南
戴维
RT-Thread内核实现与应用开发实战指南 基于STM32
RT Essentials
Jesse Vincent;Robert Spier;Dave Rolsky;Darren Chamberlain;Richard Foley S.J
RT-Thread内核实现与应用开发实战指南 基于STM32
RTL Hardware Design Using VHDL
Chu;Pong P.