书籍详情
《μC/OS-III内核实现与应用开发实战指南:基于STM32》[32M]百度网盘|亲测有效|pdf下载
  • μC/OS-III内核实现与应用开发实战指南:基于STM32

  • 出版时间:2019-07
  • 热度:6851
  • 上架时间:2024-06-30 09:38:03
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

  《μC/OS-III内核实现与应用开发实战指南:基于STM32》基于野火STM32全系列开发板介绍μC/OS-III内核实现与应用开发,《μC/OS-III内核实现与应用开发实战指南:基于STM32》分为两部分:第一部分先教你如何从0到1把μC/OS-III内核写出来,从底层的汇编开始讲解任务如何定义、如何切换,还讲解了阻塞延时如何实现、如何支持多优先级、如何实现时基列表以及时间片等μC/OS的核心知识点;第二部分讲解μC/OS-III内核组件的应用以及使用μC/OS-III进行多任务编程。
  《μC/OS-III内核实现与应用开发实战指南:基于STM32》内容翔实,案例丰富,配有大量示例代码,适合作为嵌入式领域科技工作者的参考书,也适合相关专业的学生学习参考。

作者简介

  刘火良,野火电子创始人,嵌入式软件工程师,长期从事STM32软硬件开发,网络教程《零死角玩转STM32》的作者,《STM32库开发实战指南》的合著者。
  
  杨森,野火电子合伙人,嵌入式软件工程师,专注于STM32和周边软件开发。合著有《STM32库开发实战指南》,已累计印刷十余次,广受STM32开发者的喜爱。

内页插图

目录

前言
引言
第一部分 从0到1教你写
C/OS内核
第1章 新建工程—软件仿真2
11 新建本地工程文件夹2
12 使用KEIL新建工程2
121 New Project2
122 Select Device For Target3
123 Manage Run-Time Environment3
13 在KEIL工程中新建文件组4
14 在KEIL工程中添加文件4
15 调试配置6
151 设置软件仿真6
152 修改时钟大小6
153 添加头文件路径7
第2章 裸机系统与多任务系统8
21 裸机系统8
211 轮询系统8
212 前后台系统9
22 多任务系统10
第3章 任务的定义与任务切换13
31 多任务系统中任务的概念14
32 创建任务15
321 定义任务栈15
322 定义任务函数16
323 定义任务控制块17
324 实现任务创建函数18
33 操作系统初始化22
34 启动系统24
35 任务切换27
36 main()函数33
37 实验现象37
第4章 任务时间片运行39
41 SysTick简介39
42 初始化SysTick40
43 编写SysTick中断服务函数41
44 main()函数42
45 实验现象44
第5章 空闲任务与阻塞延时45
51 实现空闲任务45
511 定义空闲任务栈45
512 定义空闲任务的任务控制块46
513 定义空闲任务函数47
514 空闲任务初始化47
52 实现阻塞延时48
53 main()函数50
54 实验现象52
第6章 时间戳53
61 时间戳简介53
62 时间戳的实现53
63 时间戳代码54
631 CPU_Init()函数54
632 CPU_TS_Init()函数55
633 CPU_TS_TmrInit()函数56
634 BSP_CPU_ClkFreq()函数57
635 CPU_TS_TmrFreqSet()函数58
636 CPU_TS_TmrRd()函数58
637 OS_TS_GET()函数59
64 main()函数59
65 实验现象61
第7章 临界段62
71 临界段简介62
72 Cortex-M内核快速关中断指令62
73 关中断63
74 开中断63
75 临界段代码的应用64
76 测量关中断时间68
761 测量关中断时间初始化68
762 测量最大关中断时间69
763 获取最大关中断时间70
77 main()函数71
78 实验现象71
第8章 就绪列表72
81 优先级表的定义及函数72
82 就绪列表的定义及函数80
83 main()函数88
84 实验现象88
第9章 多优先级89
91 定义优先级相关全局变量89
92 修改OSInit()函数89
93 修改任务控制块90
94 修改OSTaskCreate()函数90
95 修改OS_IdleTaskInit()函数92
96 修改OSStart()函数93
97 修改PendSV_Handler()函数93
98 修改OSTimeDly()函数94
99 修改OSSched()函数95
910 修改OSTimeTick()函数97
911 main()函数98
912 实验现象101
第10章 时基列表103
101 实现时基列表103
1011 定义时基列表变量103
1012 修改任务控制块104
1013 实现时基列表相关函数106
102 修改OSTimeDly()函数113
103 修改OSTimeTick()函数114
104 main()函数114
105 实验现象114
第11章 时间片115
111 实现时间片115
1111 修改任务控制块115
1112 实现时间片调度函数116
112 修改OSTimeTick()函数118
113 修改OSTaskCreate()函数118
114 修改OS_IdleTaskInit()函数120
115 main()函数120
116 实验现象122
第12章 任务的挂起和恢复124
121 实现任务的挂起和恢复124
1211 定义任务的状态124
1212 修改任务控制块125
1213 编写任务挂起和恢复函数126
122 main()函数131
123 实验现象133
第13章 任务的删除134
131 实现任务删除134
132 main()函数136
133 实验现象136
第二部分 C/OS-III内核
应用开发
第14章 移植C/OS-III到STM32138
141 获取STM32的裸机工程模板138
142 下载C/OS-III源码138
143 C/OS-III源码文件介绍141
1431 EvalBoards141
1432 C-CPU141
1433 C-LIB143
1434 C/OS-III143
144 移植到STM32工程145
1441 在工程中添加文件分组145
1442 添加文件到对应分组145
1443 添加头文件路径到工程中146
1444 具体的工程文件修改147
1445 修改源码中的bspc与bsph文件149
145 按需配置最适合的工程151
1451 os_cfgh151
1452 cpu_cfgh153
1453 os_cfg_apph154
146 修改appc155
147 下载验证157
第15章 创建任务158
151 硬件初始化158
152 创建单任务160
1521 定义任务栈160
1522 定义任务控制块160
1523 定义任务主体函数160
1524 创建任务161
1525 启动任务163
1526 appc163
153 下载验证单任务166
154 创建多任务166
155 下载验证多任务171
第16章 C/OS-III的启动流程172
161 “万事俱备,只欠东风”法172
162 “小心翼翼,十分谨慎”法173
163 两种方法的适用情况175
164 系统的启动175
1641 系统初始化175
1642 CPU初始化179
1643 SysTick初始化182
1644 内存初始化183
1645 OSStart()函数183
1646 appc184
第17章 任务管理187
171 任务的基本概念187
172 任务调度器的基本概念188
173

前言/序言

如何学习本书
本书从0开始教你如何把C/OS-III写出来,既讲解源码实现,也讲解API如何使用。当你拿到本书开始学习时一定会惊讶,原来RTOS(Real Time Operation System,实时操作系统)的学习并没有那么复杂,原来自己也可以写操作系统,成就感立马爆棚。
全书内容循序渐进,不断迭代,前一章都是后一章的基础,因此最好从头开始阅读,不要跳跃。在学习时务必做到两点:一是不能一味地看书,要把代码和书本结合起来学习,一边看书,一边调试代码。如何调试代码呢?即单步执行每一条程序,看程序的执行流程和执行效果与自己所想的是否一致;二是在每学完一章之后,必须将配套的例程重写一遍(切记不要复制,哪怕是一个分号,但可以照书录入),以做到举一反三,确保真正理解。在自己写的时候肯定会错漏百出,这个时候要认真纠错,好好调试,这是你提高编程能力的最好机会。记住,编写程序不是一气呵成的,而是要一步一步地调试。
本书的编写风格
本书以C/OS-III官方源码为蓝本,抽丝剥茧,不断迭代,教你逐步写出C/OS-III。书中涉及的数据类型、变量名称、函数名称、文件名称、文件存放的位置都完全按照C/OS-III官方的方式来实现。学完本书之后,可以无缝地切换到原版的C/OS-III中使用。要注意的是,在实现的过程中某些函数中会去掉一些形参和冗余的代码,只保留核心的功能,但这并不会影响学习。注意,本书的目的并不是让你自己写一个操作系统,而是让你了解C/OS-III是如何写出来的,着重讲解原理实现,当你学完这本书之后,再学习其他RTOS将会事半功倍。
本书的技术论坛
如果在学习过程中遇到问题,可以到野火电子论坛wwwfirebbscn发帖交流,开源共享,共同进步。
鉴于水平有限,本书难免有错漏之处,热心的读者也可把勘误发送到论坛上以便改进。祝你学习愉快,C/OS-III的世界,野火与你同行。