• 嵌入式实时操作系统FreeRTOS原理及应用———基于STM32微控制器
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

嵌入式实时操作系统FreeRTOS原理及应用———基于STM32微控制器

正版现货,品相完整,套书只发一本,多版面书籍只对书名

40.9 8.3折 49 九品

仅1件

北京东城
认证卖家担保交易快速发货售后保障

作者张超

出版社电子工业出版社

出版时间2021-12

版次1

装帧其他

上书时间2024-09-16

图书-天下的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 张超
  • 出版社 电子工业出版社
  • 出版时间 2021-12
  • 版次 1
  • ISBN 9787121424779
  • 定价 49.00元
  • 装帧 其他
  • 开本 16开
  • 页数 272页
【内容简介】
本书面向高职和应用型本科的学生,以及嵌入式产品开发的工程技术人员。以通用的STM32开发板为平台,运行freeRTOS操作系统的智能手表作教学项目,贯穿书本内容的编写。全书共分12章,以智能手表项目为主线,系统介绍了嵌入式实时操作系统的概念,freeRTOS任务创建、任务调度、任务同步与消息传递,软件定时器、事件通知等知识。在每个知识点的学习上,均安排有智能手表对应的功能单元,来帮助读者理解知识点,并掌握其实际应用。项目引领,边学边做,学以致用是本书的一大特色。
【作者简介】
张超,男,硕士研究生,系统分析师,广东梅州人,1971年10月出生。超过20年企业工作经验,主持嵌入式产品的研制、开发三十多项。现任职于中山职业技术学院,主讲《C语言程序设计》、《MCS-51单片机技术》、《STM32单片机技术应用》、《嵌入式产品开发与实践》、《嵌入式实时操作系统》等课程。指导学生竞赛,获全国大学生电子设计大赛、全国职业院校技能大赛嵌入式应用开发赛项等奖励多项。
【目录】
第1章  嵌入式实时操作系统介绍1

1.1  嵌入式系统和嵌入式操作系统1

1.1.1  嵌入式系统的基本概念1

1.1.2  嵌入式操作系统2

1.1.3  实时操作系统2

1.1.4  嵌入式实时操作系统3

1.2  嵌入式实时操作系统FreeRTOS简介5

1.2.1  FreeRTOS的特点5

1.2.2  FreeRTOS的商业许可5

1.2.3  选择FreeRTOS的理由6

1.3  总结7

思考与练习7

第2章  FreeRTOS在STM32微控制器上的移植8

2.1  文件准备8

2.1.1  FreeRTOS源码9

2.1.2  基础工程12

2.2  FreeRTOS移植15

2.2.1  复制FreeRTOS源码15

2.2.2  向工程中添加.c文件16

2.2.3  配置头文件包含路径17

2.2.4  配置FreeRTOS17

2.2.5  修改stm32f4xx_it.c文件19

2.2.6  编译项目19

2.3  移植验证20

2.3.1  引入FreeRTOS相关头文件20

2.3.2  编写测试任务函数20

2.3.3  创建测试任务21

2.3.4  开启调度器21

2.3.5  下载测试22

2.4  添加串口打印功能22

2.4.1  串口硬件连接22

2.4.2  初始化串口23

2.4.3  下载测试24

2.5  总结25

思考与练习25

第3章  FreeRTOS的裁剪和配置26

3.1  基础配置26

3.1.1  configUSE_PREEMPTION27

3.1.2  configUSE_PORT_OPTIMISED_TASK_SELECTION27

3.1.3  configCPU_CLOCK_HZ27

3.1.4  configTICK_RATE_HZ27

3.1.5  configMAX_PRIORITIES27

3.1.6  configMINIMAL_STACK_SIZE27

3.1.7  configTOTAL_HEAP_SIZE28

3.1.8  configUSE_16_BIT_TICKS28

3.1.9  configIDLE_SHOULD_YIELD28

3.1.10  configMAX_TASK_NAME_LEN28

3.1.11  configUSE_TICKLESS_IDLE28

3.1.12  关于列队、信号量和任务通知29

3.1.13  关于钩子函数29

3.2  FreeRTOS中断配置29

3.2.1  configPRIO_BITS29

3.2.2  configLIBRARY_LOWEST_INTERRUPT_PRIORITY30

3.2.3  configKERNEL_INTERRUPT_PRIORITY30

3.2.4  configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY30

3.2.5  configMAX_SYSCALL_INTERRUPT_PRIORITY30

3.3  可选API函数配置31

3.4  其他配置31

3.4.1  协程相关31

3.4.2  任务运行信息相关31

3.4.3  软件定时器相关32

3.4.4  断言32

3.4.5  中断服务函数33

3.5  FreeRTOSConfig.h头文件参考配置33

3.6  总结35

思考与练习36

第4章  FreeRTOS任务基础37

4.1  FreeRTOS任务37

4.1.1  任务的特性38

4.1.2  任务的状态39

4.1.3  任务的优先级39

4.1.4  任务堆栈40

4.1.5  任务控制块40

4.1.6  列表和列表项41

4.2  任务创建和删除44

4.2.1  任务函数45

4.2.2  任务创建和删除函数45

4.2.3  用动态内存分配方法创建任务46

4.2.4  用静态内存分配方法创建任务47

4.2.5  任务删除48

4.3  任务创建与删除示例49

4.3.1  组织代码49

4.3.2  编写LED0任务函数49

4.3.3  编写LED1任务函数50

4.3.4  创建任务51

4.3.5  修改main.c文件51

4.3.6  下载测试53

4.4  总结53

思考与练习54

第5章  FreeRTOS任务调度55

5.1  开启调度器55

5.1.1  调度器开启函数55

5.1.2  调度器开启过程57

5.1.3  启动个任务57

5.2  任务的挂起和恢复58

5.2.1  任务的挂起58

5.2.2  任务的恢复60

5.2.3  任务挂起和恢复示例62

5.3  任务的调度64

5.3.1  FreeRTOS任务切换场合65

5.3.2  PendSV中断66

5.3.3  PendSV中断服务函数67

5.3.4  查找下一个要运行的任务69

5.3.5  FreeRTOS时间片调度71

5.3.6  时间片调度示例72

5.3.7  空闲任务76

5.4  FreeRTOS内核函数78

5.4.1  临界段操作函数79

5.4.2  挂起和恢复调度器函数80

5.4.3  任务切换函数81

5.4.4  系统时钟节拍追加81

5.4.5  内核函数使用示例81

5.5  总结84

思考与练习84

第6章  FreeRTOS任务函数85

6.1  延时函数86

6.1.1  系统时钟节拍86

6.1.2  相对延时86

6.1.3  延时87

6.1.4  延时函数使用示例88

6.2  优先级控制91

6.2.1  获取任务优先级91

6.2.2  设置任务优先级91

6.2.3  改变任务优先级示例91

6.3  获取任务状态信息96

6.3.1  任务状态信息获取函数96

6.3.2  任务状态信息获取示例98

6.4  统计任务运行时间信息101

6.4.1  任务运行时间信息统计函数101

6.4.2  任务运行时间信息统计示例101

6.5  总结106

思考与练习107

第7章  FreeRTOS队列与消息传递108

7.1  FreeRTOS队列及其结构108

7.1.1  FreeRTOS队列特性108

7.1.2  队列结构体110

7.2  队列操作111

7.2.1  队列创建111

7.2.2  入队操作112

7.2.3  出队操作114

7.2.4  其他队列操作函数116

7.3  用队列实现串口守护任务116

7.3.1  守护任务116

7.3.2  串口守护任务示例116

7.4  总结120

思考与练习120

第8章  FreeRTOS信号量与任务同步121

8.1  二值信号量121

8.1.1  创建二值信号量122

8.1.2  释放二值信号量123

8.1.3  获取二值信号量124

8.1.4  用二值信号量进行任务同步125

8.2  计数信号量131

8.2.1  创建计数信号量131

8.2.2  计数信号量的释放和获取131

8.2.3  用计数信号量进行任务同步131

8.3  互斥信号量133

8.3.1  创建互斥信号量135

8.3.2  互斥信号量的释放和获取135

8.3.3  优先级翻转136

8.3.4  优先级翻转示例136

8.3.5  用互斥信号量抑制优先级翻转140

8.4  递归互斥信号量142

8.5  总结143

思考与练习143

第9章  FreeRTOS事件标志组144

9.1  事件标志组144

9.1.1  创建事件标志组144

9.1.2  设置事件标志位145

9.1.3  获取事件标志组值146

9.1.4  等待指定的事件标志位147

9.2  用事件标志组进行任务同步147

9.2.1  配置FreeRTOS148

9.2.2  配置定时器148

9.2.3  任务函数149

9.2.4  创建任务151

9.2.5  下载测试152

9.3  总结153

思考与练习153

第10章  FreeRTOS任务通知154

10.1  发送和获取任务通知154

10.1.1  发送任务通知154

10.1.2  获取任务通知156

10.2  任务通知使用157

10.2.1  用任务通知模拟二值信号量157

10.2.2  用任务通知模拟事件标志组160

10.3  总结163

思考与练习163

第11章  FreeRTOS软件定时器164

11.1  软件定时器服务任务164

11.2  软件定时器操作165

11.2.1  单次定时与周期定时165

11.2.2  创建软件定时器165

11.2.3  启动软件定时器166

11.2.4  停止软件定时器167

11.3  软件定时器使用示例168

11.3.1  配置FreeRTOS169

11.3.2  软件定时器回调函数170

11.3.3  任务函数170

11.3.4  创建软件定时器和任务172

11.3.5  下载测试173

11.4  总结174

思考与练习174

第12章  FreeRTOS内存管理175

12.1  FreeRTOS内存分配方法175

12.1.1  heap_1.c动态内存管理方法175

12.1.2  heap_2.c动态内存管理方法176

12.1.3  heap_3.c动态内存管理方法176

12.1.4  heap_4.c动态内存管理方法177

12.1.5  heap_5.c动态内存管理方法177

12.2  FreeRTOS内存管理示例177

12.3  总结180

思考与练习180

第13章  智能手表FreeRTOS实现182

13.1  功能设计182

13.1.1  时间显示183

13.1.2  时间设置184

13.1.3  闹钟设置184

13.1.4  闹钟响铃184

13.1.5  秒表计时185

13.1.6  心率测量185

13.1.7  运动计步186

13.1.8  硬件信息186

13.2  硬件设计187

13.2.1  硬件系统框图188

13.2.2  单元电路188

13.2.3  硬件原理图194

13.3  FreeRTOS工程194

13.3.1  复制并新建FreeRTOS工程194

13.3.2  智能手表FreeRTOS配置196

13.3.3  用STM32CubeMX生成初始化代码196

13.4  算法及驱动199

13.4.1  OLED12864模块199

13.4.2  AHT10207

13.4.3  心率测量210

13.4.4  运动计步214

13.4.5  蓝牙传输223

13.4.6  多功能按键225

13.4.7  实时时钟226

13.5  任务设计227

13.5.1  按键任务227

13.5.2  时间显示任务228

13.5.3  时间设置任务229

13.5.4  闹钟设置任务231

13.5.5  闹钟时间检查任务233

13.5.6  闹钟响铃任务234

13.5.7  秒表计时任务235

13.5.8  心率测量任务237

13.5.9  计步后台任务239

13.5.10  计步显示任务239

13.5.11  任务信息获取任务241

13.6  任务创建、调度与同步243

13.6.1  任务创建及调度器开启244

13.6.2  抢占式调度提高系统响应性能247

13.6.3  时间片调度让任务共享优先级247

13.6.4  用任务挂起和恢复实现互斥访问247

13.6.5  用互斥信号量共享蓝牙资源249

13.6.6  用任务通知同步闹钟响铃任务249

13.6.7  用队列共享按键功能250

13.6.8  软件定时器使用250

13.7  调试与优化251

附录A  FreeRTOS编码和命名规则254

附录B  示例程序和项目所使用的编译环境256

附录C  项目实施对开发板的要求258

附录D  项目实施所需驱动文件259

参考文献260
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP