更新时间:2023-02-02 16:06:16
封面
版权信息
前言
第1章 实时操作系统及μC/OS-III简介
1.1 单片机应用程序框架
1.1.1 前后台系统
1.1.2 嵌入式实时操作系统
1.2 如何使用和学习μC/OS-III源码
1.3 μC/OS-III文件结构简介
1.4 μC/OS-III数据结构简介
1.5 任务
1.6 内核对象简介
1.6.1 信号量
1.6.2 事件标志组
1.6.3 消息队列
1.6.4 互斥信号量
1.6.5 内存分区
1.6.6 软件定时器
1.7 μC/OS-III常见的程序段
1.7.1 中断嵌套层数统计
1.7.2 开中断和关中断
1.7.3 使能中断延迟的锁住和开启调度器
1.7.4 没有使能中断延迟的锁住和开启调度器
1.7.5 中断嵌套检测
1.7.6 调度器嵌套检测
1.7.7 时间戳
1.7.8 错误类型
1.7.9 参数检测
1.7.10 内核对象类型检测
1.7.11 安全检测
1.7.12 安全关键IEC61508
1.8 总结
第2章 时钟节拍
2.1 系统节拍中断服务程序
2.2 节拍任务处理时间相关事务
2.2.1 节拍列表更新
2.2.2 节拍列表
2.2.3 哈希算法检测到期任务
2.3 总结
第3章 时间管理
3.1 实例演示
3.2 任务开始延时
3.3 任务插入节拍列表
3.4 任务取消延时
3.5 任务脱离节拍列表
3.6 获取和设置时钟节拍
3.7 μC/OS-III全局变量的定义和声明
3.8 总结
第4章 软件定时器
4.1 实例演示
4.2 插入定时器列表
4.3 删除定时器
4.4 脱离定时器列表
4.5 停止定时器
4.6 定时器内部运行机制
4.6.1 定时器初始化
4.6.2 定时器任务
4.6.3 回调函数
4.7 定时器剩余定时时间获取
4.8 定时器状态获取
4.9 总结
第5章 多值信号量
5.1 实例演示
5.2 信号量的创建
5.3 信号量等待队列
5.4 内核对象添加到调试双向链表
5.5 内核对象从调试双向链表中删除
5.6 部分内核对象数据结构的特点
5.7 发布信号量
5.7.1 开始发布信号量
5.7.2 结构体指针强制类型转换
5.7.3 无确切类型指针
5.7.4 单一任务提交处理
5.7.5 标记某一内核对象被提交
5.7.6 将任务从多个等待列表中移除
5.7.7 将任务从一个等待列表中删除
5.7.8 信号量提交过程涉及的时间戳
5.8 等待信号量
5.9 等待信号量过程的解析
5.9.1 函数解析
5.9.2 阻塞准备等待内核对象的任务
5.9.3 阻塞任务
5.9.4 初始化OS_PEND_DATA类型变量
5.9.5 根据任务优先级将OS_PEND_DATA变量插入双向链表
5.10 强制解除等待状态
5.10.1 强制解除内核对象上的一个任务
5.10.2 标记某一内核对象上的任务被强制解除等待状态
5.11 删除信号量
5.12 设置信号量计数值
5.13 总结
第6章 互斥信号量mutex
6.1 mutex变量的数据结构
6.2 创建mutex
6.3 提交mutex
6.4 等待/获取mutex
6.5 获取mutex过程解析
6.5.1 开始获取mutex
6.5.2 优先级继承过程
6.5.3 改变任务优先级并调整任务在各种列表中的位置
6.6 删除mutex