图书介绍

μC/OS-Ⅲ源码分析笔记PDF|Epub|txt|kindle电子书版本下载

μC/OS-Ⅲ源码分析笔记
  • 李悦城,野火编;王奇,张浩审校 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111519671
  • 出版时间:2016
  • 标注页数:320页
  • 文件大小:33MB
  • 文件页数:333页
  • 主题词:实时操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

μC/OS-Ⅲ源码分析笔记PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 实时操作系统及μC/OS-Ⅲ简介1

1.1 单片机应用程序框架1

1.1.1 前后台系统1

1.1.2 嵌入式实时操作系统4

1.2 如何使用和学习μC/OS-Ⅲ源码5

1.3 μC/OS-Ⅲ文件结构简介7

1.4 μC/OS-Ⅲ数据结构简介8

1.5 任务10

1.6 内核对象简介11

1.6.1 信号量11

1.6.2 事件标志组12

1.6.3 消息队列12

1.6.4 互斥信号量12

1.6.5 内存分区13

1.6.6 软件定时器13

1.7 μC/OS-Ⅲ常见的程序段13

1.7.1 中断嵌套层数统计13

1.7.2 开中断和关中断14

1.7.3 使能中断延迟的锁住和开启调度器14

1.7.4 没有使能中断延迟的锁住和开启调度器15

1.7.5 中断嵌套检测15

1.7.6 调度器嵌套检测16

1.7.7 时间戳16

1.7.8 错误类型17

1.7.9 参数检测17

1.7.10 内核对象类型检测17

1.7.11 安全检测18

1.7.12 安全关键IEC6150818

1.8 总结19

第2章 时钟节拍20

2.1 系统节拍中断服务程序20

2.2 节拍任务处理时间相关事务23

2.2.1 节拍列表更新24

2.2.2 节拍列表27

2.2.3 哈希算法检测到期任务29

2.3 总结30

第3章 时间管理31

3.1 实例演示31

3.2 任务开始延时34

3.3 任务插入节拍列表40

3.4 任务取消延时49

3.5 任务脱离节拍列表51

3.6 获取和设置时钟节拍55

3.7 μC/OS-Ⅲ全局变量的定义和声明56

3.8 总结57

第4章 软件定时器58

4.1 实例演示58

4.2 插入定时器列表65

4.3 删除定时器68

4.4 脱离定时器列表70

4.5 停止定时器71

4.6 定时器内部运行机制74

4.6.1 定时器初始化74

4.6.2 定时器任务76

4.6.3 回调函数78

4.7 定时器剩余定时时间获取79

4.8 定时器状态获取81

4.9 总结82

第5章 多值信号量83

5.1 实例演示83

5.2 信号量的创建85

5.3 信号量等待队列86

5.4 内核对象添加到调试双向链表89

5.5 内核对象从调试双向链表中删除90

5.6 部分内核对象数据结构的特点93

5.7 发布信号量95

5.7.1 开始发布信号量95

5.7.2 结构体指针强制类型转换101

5.7.3 无确切类型指针101

5.7.4 单一任务提交处理102

5.7.5 标记某一内核对象被提交104

5.7.6 将任务从多个等待列表中移除106

5.7.7 将任务从一个等待列表中删除107

5.7.8 信号量提交过程涉及的时间戳108

5.8 等待信号量108

5.9 等待信号量过程的解析109

5.9.1 函数解析110

5.9.2 阻塞准备等待内核对象的任务114

5.9.3 阻塞任务115

5.9.4 初始化OS_PEND_DATA类型变量116

5.9.5 根据任务优先级将OS_PEND_DATA变量插入双向链表116

5.10 强制解除等待状态118

5.10.1 强制解除内核对象上的一个任务121

5.10.2 标记某一内核对象上的任务被强制解除等待状态122

5.11 删除信号量123

5.12 设置信号量计数值128

5.13 总结130

第6章 互斥信号量mutex131

6.1 mutex变量的数据结构131

6.2 创建mutex132

6.3 提交mutex133

6.4 等待/获取mutex136

6.5 获取mutex过程解析137

6.5.1 开始获取mutex137

6.5.2 优先级继承过程141

6.5.3 改变任务优先级并调整任务在各种列表中的位置141

6.6 删除mutex142

6.7 强制解除等待mutex146

6.8 总结148

第7章 消息队列149

7.1 实例演示149

7.2 消息的数据结构150

7.3 消息池151

7.4 消息队列解析153

7.5 创建消息队列155

7.6 提交消息157

7.7 提交消息过程解析157

7.8 等待消息过程解析164

7.9 总结164

第8章 事件标志165

8.1 实例演示165

8.2 事件标志组数据结构解析167

8.3 创建事件标志组167

8.4 等待事件标志组169

8.5 提交事件标志组177

8.6 总结180

第9章 等待多个内核对象181

9.1 实例演示181

9.2 等待多个内核对象过程解析182

9.2.1 检查多个内核对象是否被提交过186

9.2.2 任务等待多个内核对象188

9.3 总结189

第10章 任务消息队列和任务信号量190

10.1 实例演示190

10.2 任务消息队列191

10.2.1 任务消息队列相关数据结构解析191

10.2.2 等待任务消息队列192

10.2.3 任务消息队列的提交196

10.2.4 强制解除等待任务消息队列200

10.2.5 小结201

10.3 任务信号量202

10.3.1 任务信号量相关数据结构202

10.3.2 等待任务信号量202

10.3.3 提交任务信号量205

10.3.4 强制解除等待任务信号量209

10.3.5 小结210

第11章 内存管理211

11.1 内存碎片是怎么形成的211

11.2 实例说明211

11.3 内存分区控制块数据结构212

11.4 创建内存分区212

11.5 获取内存块216

11.6 将内存块放回内存分区217

11.7 总结218

第12章 就绪优先级位映像表219

12.1 就绪优先级位映像表数据结构219

12.2 初始化就绪优先级位映像表220

12.3 查找就绪优先级位映像表中最高的优先级220

12.4 置就绪优先级位映像表中某个优先级处于就绪状态225

12.5 将就绪优先级位映像表相应位清0226

12.6 总结226

第13章 就绪列表227

13.1 就绪列表数据结构解析227

13.2 初始化就绪列表229

13.3 使任务就绪229

13.4 将任务从就绪列表对应的双向链表的前面转移到后面231

13.5 总结232

第14章 任务切换233

14.1 堆栈的基本概念233

14.2 Cortrtex-M3堆栈234

14.3 任务切换235

14.4 PendSV服务程序解析238

14.5 首次任务调度242

14.6 任务堆栈初始化函数OSTaskStkInit解析243

14.7 验证初始化堆栈弹栈结果246

14.8 中断级任务切换的宏OSIntCtxSw()解析248

14.9 任务切换过程中出现中断的处理249

14.10 总结249

第15章 任务管理250

15.1 任务创建250

15.2 挂起任务256

15.3 恢复挂起任务259

15.4 时间片轮转调度262

15.4.1 时间片轮转调度初始化262

15.4.2 时间片轮转调度核心算法264

15.4.3 放弃时间片266

15.4.4 设置任务时间片个数267

15.5 任务寄存器269

15.5.1 设置寄存器的内容269

15.5.2 访问任务寄存器271

15.6 总结272

第16章 中断管理273

16.1 中断延迟提交273

16.1.1 延迟提交信息记录块274

16.1.2 初始化延迟提交274

16.1.3 中断延迟提交内核对象276

16.1.4 延迟提交任务OS_IntQTask279

16.2 中断嵌套管理282

16.3 开中断和关中断解析284

16.4 进入和退出临界段代码解析287

16.4.1 OS_CRITICAL_ENTER解析288

16.4.2 OS_CRITICAL_ENTER_CPU_CRITICAL_EXIT解析288

16.4.3 OS_CRITICAL_EXIT_NO_SCHED解析288

16.4.4 OS_CRITICAL_EXIT解析288

16.5 测量关中断时间289

16.5.1 测量关中断的初始化289

16.5.2 测量最大关中断时间290

16.5.3 获取最大关中断的时间292

16.6 总结293

第17章 各类统计信息295

17.1 实例演示295

17.2 CPU使用率计算296

17.3 CPU使用率测量的初始化296

17.4 堆栈检测过程简介298

17.5 堆栈检测299

17.6 实例解读堆栈溢出301

17.7 统计任务OS_StatTask305

17.8 总结307

第18章 μC/OS-Ⅲ在不同CPU上的移植308

18.1 移植接口主要文件编写308

18.1.1 os_cpu_c.c文件308

18.1.2 os_cpu_a.asm文件309

18.1.3 os_cpu.h文件310

18.2 编写CPU相关文件310

18.2.1 cpu_c.c文件和cpu_a.asm文件310

18.2.2 cpu.h文件310

18.2.3 cpu_def.h文件315

18.2.4 cpu_core.c文件和cpu_core.h文件316

18.2.5 cpu_cfg.h文件316

18.3 编写配置文件317

18.3.1 os_app_app.h文件317

18.3.2 os_cfg.h文件317

18.4 总结317

热门推荐