求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

FreeRTOS源码详解与应用开发·基于STM32查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索

来自 孔夫子网 的图片

FreeRTOS源码详解与应用开发·基于STM32》,许颖劲 左忠凯 著,出版社: 北京航空航天大学出版社。

书籍对于人类原有很重大的意义,但,书籍不仅对那些不会读书的人是毫无用处,就是对那些机械地读完了书还不会从死的文字中引申活的思想[1]的人也是无用的。 —— 乌申斯基[2]

内容简介

本书辅以大量的例程,全面讲解了FreeRTOS的原理以及源码,主要内容包括任务管理和任务调度、系统裁减和配置、时间管理、队列、信号量、软件定时器、事件标志组、任务通知、低功耗Tickless模式、空闲任务以及内存管理等。同时,本书配有大量的图例,对于想要深入学习RTOS类系统原理的人来说是一个不错的选择。本书是再版书,相比旧版,使用了更新的FreeRTOS内核版本作为解析对象,并针对FreeRTOS在多种ARM Cortex- M 架构下的运行进行了介绍;同时,本书对知识点的介绍更加详细、讲解的先后顺序更加合理。

本书配套资料包括视频教程、文档教程、各个例程的源码及相关参考资料。

目录

第1章 FreeRTOS简介 1

1.1 初识FreeRTOS 1

1.1.1 什么是FreeRTOS 1

1.1.2 为什么选择FreeRTOS 2

1.1.3 FreeRTOS的点 2

1.1.4 商业许可 2

1.2 磨刀不误砍柴工 3

1.2.1 查找资料 3

1.2.2 FreeRTOS官方文档 5

1.2.3 Cortex M 架构资料 7

1.3 FreeRTOS源码初探 7

1.3.1 FreeRTOS源码下载 7

1.3.2 FreeRTOS文件预览 9

第2章 FreeRTOS移植 11

2.1 FreeRTOS移植 11

2.1.1 移植前准备 11

2.1.2 添加FreeRTOS文件 12

2.1.3 修改SYSTEM 文件 15

2.1.4 修改中断相关文件 22

2.1.5 可选步骤(建议完成) 24

2.1.6 添加应用程序 25

2.1.7 使用AC6编译工程(扩展) 32

2.2 FreeRTOS移植实验 33

2.2.1 功能设计 33

2.2.2 软件设计 34

2.2.3 下载验证 35

第3章 FreeRTOS系统配置 37

3.1 FreeRTOSConfig.h文件 37

3.2 config配置项 37

3.2.1 基础配置项 矫p扷CRS翪38

3.2.2 内存分配相关定义 40

3.2.3 钩子函数相关定义 41

3.2.4 运行时间和任务状态统计相关定义 42

3.2.5 协程相关定义 43

3.2.6 软件定时器相关定义 43

3.2.7 中断嵌套行为配置 43

3.2.8 断 言 44

3.2.9 FreeRTOS MPU殊定义 44

3.3 INCLUDE配置项 45

3.4 其他配置项 46

第4章 FreeRTOS中断管理 47

4.1 ARM Cortex M 中断 47

4.1.1 简 介 47

4.1.2 中断优先级管理 47

4.1.3 3个系统中断优先级配置寄存器 49

4.1.4 3个中断寄存器 50

4.1.5 中断控制状态寄存器 52

4.2 FreeRTOS中断配置项 52

4.3 FreeRTOS中断管理详解 54

4.3.1 PendSV和SysTick中断优先级 54

4.3.2 FreeRTOS开关中断 55

4.3.3 FreeRTOS进出临界区 56

4.4 FreeRTOS中断测试实验 59

4.4.1 功能设计 59

4.4.2 软件设计 59

4.4.3 下载验证 62

第5章 FreeRTOS任务基础知识 63

5.1 单任务和多任务系统 63

5.1.1 单任务系统 63

5.1.2 多任务系统 64

5.2 FreeRTOS任_____罗_务状态 65

5.3 FreeRTOS任务优先级 66

5.4 FreeRTOS任务调度方式 67

5.5 FreeRTOS任务控制块 68

5.6 FreeRTOS任务栈 69

第6章 FreeRTOS任务相关API函数 71

6.1 FreeRTOS创建和删除任务相关 API函数 71

6.2 FreeRTOS任务创建与删除实验(动态方法) 75

6.2.1 功能设计 75

6.2.2 软件设计 75

6.2.3 下载验证 78

6.3 FreeRTOS任务创建与删除实验(静态方法) 79

6.3.1 功能设计 79

6.3.2 软件设计 79

6.3.3 下载验证 83

6.4 FreeRTOS挂起和恢复任务相关 API函数 84

6.5 FreeRTOS任务挂起与恢复实验 85

6.5.1 功能设计 85

6.5.2 软件设计 86

6.5.3 下载验证 89

第7章 FreeRTOS列表和列表项 90

7.1 FreeRTOS列表和列表项简介 90

7.1.1 列 表 90

7.1.2 列表项 91

7.1.3 迷你列表项 92

7.2 FreeRTOS列表和列表项相关 API函数 92

7.3 FreeRTOS操作列表和列表项的宏 98

7.4 FreeRTOS列表项的插入与删除实验 99

7.4.1 功能设计 99

7.4.2 软件设计 99

7.4.3 下载验证 102

第8章 FreeRTOS系统启动流程及任务相关函数解析 107

8.1 FreeRTOS开启任务调度器 107

8.1.1 函数vTaskStartScheduler() 107

8.1.2 函数xPortStartScheduler() 110

8.2 FreeRTOS启动个任务 112

8.2.1 函数prvStartFirstTask() 112

8.2.2 函数vPortSVCHandler() 113

8.3 FreeRTOS任务状态列表 115

8.4 FreeRTOS创建任务函数解析 116

8.5 FreeRTOS删除任务函数解析 127

FreeRTOS源码详解与应用开发———基于STM32(第2版)

4 ·

8.6 FreeRTOS挂起任务函数解析 130

8.7 FreeRTOS恢复任务函数解析 134

8.8 FreeRTOS空闲任务 135

第9章 FreeRTOS任务切换 137

9.1 PendSV异常 137

9.2 PendSV中断服务函数 139

9.3 FreeRTOS确定下一个要运行的任务 143

9.4 PendSV异常何时触发 145

9.5 FreeRTOS时间片调度实验 146

9.5.1 功能设计 146

9.5.2 软件设计 147

9.5.3 下载验证 149

第10章 FreeRTOS内核控制函数 150

10.1 FreeRTOS内核控制函数预览 150

10.2 FreeRTOS内核控制函数详解 151

第11章 FreeRTOS其他任务API函数 156

11.1 FreeRTOS任务相关API函数 156

11.1.1 FreeRTOS任务相关API函数预览 156

11.1.2 FreeRTOS任务相关API函数详解 157

11.2 FreeRTOS任务状态与信息查询实验 166

11.2.1 功能设计 166

11.2.2 软件设计 166

11.2.3 下载验证 170

11.3 FreeRTOS任务运行时间统计实验 172

11.3.1 功能设计 172

11.3.2 软件设计 172

11.3.3 下载验证 176

第12章 FreeRTOS时间管理 178

12.1 FreeRTOS系统时钟节拍 178

12.1.1 FreeRTOS系统时钟节拍简介 178

12.1.2 FreeRTOS系统时钟节拍来源 178

12.1.3 FreeRTOS系统时钟节拍处理 180

12.2 FreeRTOS任务延时函数 185

第13章 FreeRTOS队列 193

13.1 FreeRTOS队列简介 193

13.2 FreeRTOS队列相关API函数 196

13.2.1 队列结构体 196

13.2.2 创建队列 197

13.2.3 队列写入消息 205

13.2.4 队列读取消息 215

13.2.5 队列锁 217

13.3 FreeRTOS队列操作实验 220

13.3.1 功能设计 220

13.3.2 软件设计 220

13.3.3 下载验证 223

13.4 FreeRTOS队列集 223

13.5 FreeRTOS队列集相关API函数 224

13.6 FreeRTOS队列集操作实验 228

13.6.1 功能设计 228

13.6.2 软件设计 229

13.6.3 下载验证 232

13.7 FreeRTOS队列集模拟事件标志位实验 234

13.7.1 功能设计 234

13.7.2 软件设计 234

13.7.3 下载验证 237

第14章 FreeRTOS信号量 239

14.1 FreeRTOS信号量简介 239

14.2 FreeRTOS二值信号量 240

14.2.1 FreeRTOS二值信号量简介 240

14.2.2 FreeRTOS二值信号量相关 API函数 240

14.3 FreeRTOS二值信号量操作实验 249

14.3.1 功能设计 249

14.3.2 软件设计 249

14.3.3 下载验证 252

14.4 FreeRTOS计数型信号量 253

14.4.1 FreeRTOS计数型信号量简介 253

14.4.2 FreeRTOS计数型信号量相关API函数 253

14.5 FreeRTOS计数型信号量操作实验 255

14.5.1 功能设计 255

14.5.2 软件设计 255

14.5.3 下载验证 258

14.6 优先级翻转 258

14.7 优先级翻转实验 260

14.7.1 功能设计 260

14.7.2 软件设计 260

14.7.3 下载验证 263

14.8 FreeRTOS互斥信号量 264

14.8.1 FreeRTOS互斥信号量简介 264

14.8.2 FreeRTOS互斥信号量相关 API函数 264

14.9 FreeRTOS互斥信号量操作实验 266

14.9.1 功能设计 266

14.9.2 软件设计 267

14.9.3 下载验证 269

14.10 FreeRTOS递归互斥信号量 270

14.10.1 FreeRTOS递归互斥信号量简介 270

14.10.2 FreeRTOS递归互斥信号量相关API函数 271

14.10.3 FreeRTOS递归互斥信号量的使用示例 273

第15章 FreeRTOS软件定时器 275

15.1 FreeRTOS软件定时器简介 275

15.1.1 FreeRTOS软件定时器服务任务简介 276

15.1.2 软件定时器命令队列 276

15.1.3 软件定时器的状态 276

15.1.4 单次定时器和周期定时器 277

15.1.5 软件定时器的状态转换图 278

15.1.6 复位软件定时器 278

15.2 FreeRTOS软件定时器相关配置 279

15.3 FreeRTOS软件定时器相关API函数 279

15.4 FreeRTOS软件定时器实验 286

15.4.1 功能设计 286

15.4.2 软件设计 286

15.4.3 下载验证 289

第16章 FreeRTOS事件标志组 291

16.1 FreeRTOS事件标志组简介 291

16.2 FreeRTOS事件标志组相关API函数 292

16.3 FreeRTOS事件标志组实验 298

16.3.1 功能设计 298

16.3.2 软件设计 298

16.3.3 下载验证 301

第17章 FreeRTOS任务通知 303

17.1 FreeRTOS任务通知简介 303

17.1.1 任务通知的优势 304

17.1.2 任务通知的缺点 304

17.2 FreeRTOS任务通知相关API函数 305

17.3 FreeRTOS任务通知模拟二值信号量实验 321

17.3.1 功能设计 321

17.3.2 软件设计 321

17.3.3 下载验证 324

17.4 FreeRTOS任务通知模拟计数型信号量实验 324

17.4.1 功能设计 324

17.4.2 软件设计 324

17.4.3 下载验证 327

17.5 FreeRTOS任务通知模拟消息邮箱实验 328

17.5.1 功能设计 328

17.5.2 软件设计 328

17.5.3 下载验证 331

17.6 FreeRTOS任务通知模拟事件标志组实验 332

17.6.1 功能设计 332

17.6.2 软件设计 332

17.6.3 下载验证 335

第18章 FreeRTOS低功耗Tickless模式 337

18.1 FreeRTOS低功耗Tickless模式简介 337

18.1.1 空闲任务中的低功耗Tickless处理 337

18.1.2 函数portSUPPRESS_TICKS_AND_SLEEP() 339

18.2 FreeRTOS低功耗Tickless模式相关配置项 340

18.3 FreeRTOS低功耗Tickless实验 340

18.3.1 功能设计 340

18.3.2 软件设计 341

18.3.3 下载验证 344

第19章 FreeRTOS空闲任务 345

19.1 FreeRTOS空闲任务详解 345

19.1.1 FreeRTOS空闲任务简介 345

19.1.2 FreeRTOS空闲任务的创建 345

19.1.3 FreeRTOS空闲任务的任务函数 346

19.2 FreeRTOS空闲任务钩子函数 347

19.2.1 FreeRTOS中的钩子函数 347

19.2.2 FreeRTOS空闲任务钩子函数 347

19.3 FreeRTOS空闲任务钩子函数实验 348

19.3.1 功能设计 348

19.3.2 软件设计 348

19.3.3 下载验证 350

第20章 FreeRTOS内存管理 352

20.1 FreeRTOS内存管理简介 352

20.2 FreeRTOS内存管理算法 353

20.2.1 heap_1内存管理算法 353

20.2.2 heap_2内存管理算法 356

20.2.3 heap_3内存管理算法 363

20.2.4 heap_4内存管理算法 364

20.2.5 heap_5内存管理算法 374

20.3 FreeRTOS内存管理实验 378

20.3.1 功能设计 378

20.3.2 软件设计 378

20.3.3 下载验证 381

参考文献

  1. 思想指导人生,豆丁网,2013-01-15
  2. 乌申斯基的教育思想,中公教育,2021-09-19