嵌入式实时操作系统μC/OS-Ⅱ原理及应用PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:任哲,房红征,曹靖编著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:2016
- ISBN:9787512422087
- 页数:311 页
第1章 嵌入式实时操作系统的基本概念 1
1.1 计算机操作系统 1
1.1.1 什么是计算机操作系统 1
1.1.2 操作系统的作用和功能 2
1.2 嵌入式系统和嵌入式操作系统 3
1.2.1 嵌入式系统的基本概念 4
1.2.2 嵌入式操作系统 7
1.2.3 实时操作系统需要满足的条件 9
1.2.4 嵌入式系统的任务及嵌入式实时操作系统 11
1.3 嵌入式实时操作系统μC/OS-Ⅱ简介 12
1.4 通用操作系统与嵌入式操作系统的异同 13
1.5 小结 15
1.6 练习题 15
第2章 预备知识 16
2.1 开发工具 16
2.1.1 Borland C 3.1及其精简版 16
2.1.2 多文件程序的编译和连接 21
2.2 工程管理工具make及makefile 24
2.3 复杂工程项目的管理 32
2.3.1 批处理文件与makefile的综合使用 32
2.3.2 复杂工程管理示例 33
2.4 C指针 37
2.4.1 指针的基本概念 37
2.4.2 函数指针 39
2.4.3 函数指针作为函数参数及回调函数 41
2.5 typedef常用方法 43
2.6 常用数据类型及数据结构 45
2.6.1 控制块 46
2.6.2 同类控制块的登记造册 50
2.6.3 队列与堆栈 52
2.6.4 位图 54
2.7 程序流程转移的中断实现方法 55
2.8 小结 56
2.9 练习题 56
第3章 μC/OS-Ⅱ中的任务 57
3.1 任务的基本概念 57
3.1.1 任务及其种类 57
3.1.2 任务的状态 59
3.1.3 用户任务代码的一般结构 60
3.1.4 系统任务 63
3.1.5 任务的优先权及优先级别 64
3.2 任务堆栈 65
3.2.1 任务堆栈的创建 65
3.2.2 任务堆栈的初始化 67
3.3 任务控制块及其链表 68
3.3.1 任务控制块结构 68
3.3.2 任务控制块链表 69
3.3.3 任务控制块的初始化 71
3.4 任务就绪表及任务调度 72
3.4.1 任务就绪表结构 72
3.4.2 对任务就绪表的操作 74
3.4.3 任务调度 76
3.5 任务的创建 81
3.5.1 用函数OSTaskCreate()创建任务 81
3.5.2 用函数OSTaskCreateExt()创建任务 83
3.5.3 创建任务的一般方法 83
3.6 任务的挂起和恢复 90
3.6.1 挂起任务 90
3.6.2 恢复任务 90
3.7 其他任务管理函数 96
3.7.1 任务优先级别的修改 96
3.7.2 任务的删除 97
3.7.3 查询任务的信息 103
3.8 μC/OS-Ⅱ的初始化和任务的启动 103
3.8.1 μC/OS-Ⅱ的初始化 103
3.8.2 μC/OS-Ⅱ的启动 105
3.9 小结 107
3.10 练习题 108
第4章 μC/OS-Ⅱ的中断和时钟 109
4.1 μC/OS-Ⅱ的中断 109
4.1.1 μC/OS-Ⅱ的中断过程 109
4.1.2 中断级任务切换函数 113
4.1.3 应用程序中的临界段 113
4.2 μC/OS-Ⅱ的时钟 115
4.3 时间管理 122
4.3.1 任务的延时 122
4.3.2 取消任务的延时 123
4.3.3 获取和设置系统时间 128
4.4 小结 130
4.5 练习题 131
第5章 任务的同步与通信 132
5.1 任务的同步和事件 132
5.1.1 任务间的同步 132
5.1.2 事件 133
5.2 事件控制块及事件处理函数 145
5.2.1 事件控制块的结构 145
5.2.2 操作事件控制块的函数 147
5.2.3 空事件控制块链表 149
5.3 信号量及其操作 150
5.3.1 信号量 150
5.3.2 信号量的操作 151
5.4 互斥型信号量和任务优先级反转 160
5.4.1 任务优先级的反转现象 161
5.4.2 互斥型信号量 166
5.5 消息邮箱及其操作 169
5.5.1 消息邮箱 169
5.5.2 消息邮箱的操作 170
5.6 消息队列及其操作 175
5.6.1 消息队列 175
5.6.2 消息队列的操作 178
5.7 小结 184
5.8 练习题 185
第6章 信号量集 186
6.1 信号量集的结构 186
6.1.1 基本概念 186
6.1.2 信号量集的结构组成 187
6.1.3 对等待任务链表的操作 191
6.1.4 空标志组链表 191
6.2 信号量集的操作 192
6.2.1 创建信号量集 192
6.2.2 请求信号量集 194
6.2.3 向信号量集发送信号 194
6.2.4 查询信号量集的状态 200
6.2.5 删除信号量集 203
6.3 小结 203
6.4 练习题 203
第7章 动态内存管理 204
7.1 内存控制块 204
7.1.1 可动态分配内存的划分 204
7.1.2 内存控制块OS_MEM的结构 205
7.1.3 空内存控制块链表 206
7.2 动态内存的管理 206
7.2.1 创建动态内存分区 206
7.2.2 请求获得一个内存块 208
7.2.3 释放一个内存块 211
7.2.4 查询一个内存分区的状态 215
7.3 小结 220
7.4 练习题 220
第8章 在51单片机上移植μC/OS-Ⅱ 221
8.1 μC/OS-Ⅱ移植的一般性问题 221
8.1.1 可重入函数的概念 221
8.1.2 时钟节拍的产生 222
8.1.3 任务堆栈的设计 222
8.2 在51系列单片机上移植μC/OS-Ⅱ 223
8.2.1 文件OS_CPU.H的修改 223
8.2.2 任务堆栈的设计 224
8.2.3 文件OS_CPU_C.C的修改 231
8.2.4 几点注意事项 232
8.3 应用举例 232
8.3.1 LED数码显示器的驱动程序 232
8.3.2 串行接口的应用 234
8.4 小结 242
8.5 练习题 242
第9章 基于ARM的μC/OS-Ⅱ 243
9.1 移植规划 243
9.1.1 编译器的选择 243
9.1.2 ARM7工作模式的选择 243
9.2 移植 244
9.2.1 文件OS_CPU.H的编写 244
9.2.2 文件OS_CPU_C.C的编写 246
9.2.3 文件OS_CPU_A.S的编写 253
9.2.4 关于中断及时钟节拍 256
9.3 在LPC2000上移植μC/OS-Ⅱ 257
9.3.1 挂接SWI软件中断 258
9.3.2 中断及时钟节拍中断 258
9.3.3 一个基于μC/OS-Ⅱ和ARM的应用程序实例 259
9.4 小结 261
9.5 练习题 261
第10章 μC/OS-Ⅱ在80x86上的移植 262
10.1 概述 262
10.2 任务切换 263
10.2.1 任务切换函数OSCtxSw() 263
10.2.2 任务切换宏OS_TASK_SW() 265
10.2.3 中断级任务切换函数(OSIntCtxSw() 266
10.3 系统时钟 267
10.3.1 PC中DOS的系统时钟 267
10.3.2 PC中μC/OS-Ⅱ的系统时钟 267
10.3.3 μC/OS-Ⅱ系统时钟中断服务程序 269
10.3.4 μC/OS-Ⅱ系统时钟中断向量的安装 269
10.3.5 由μC/OS-Ⅱ返回DOS 270
10.4 小结 271
第11章 μC/OS-Ⅱ可裁剪性的实现 272
11.1 文件OS_CFG.H中用于系统裁剪的常量 272
11.2 配置常量的解释 274
11.2.1 OS_MAX_EVENTS 274
11.2.2 OS_MAX_MEM_PARTS 275
11.2.3 OS_MAX_QS 275
11.2.4 OS_MAX_MEM_TASKS 275
11.2.5 OS_LOWEST_PRIO 275
11.2.6 OS_TASK_IDLE_STK_SIZE 276
11.2.7 OS_TASK_STAT_EN 276
11.2.8 OS_TASK_STAT_STK_SIZE 276
11.2.9 OS_CPU_HOOKS_EN 276
11.2.10 OS_MBOX_EN 277
11.2.11 OS_MEM_EN 277
11.2.12 OS_Q_EN 277
11.2.13 OS_SEM_EN 277
11.2.14 OS_TASK_CHANGE_PRIO_EN 277
11.2.15 OS_TASK_CREATE_EN 277
11.2.16 OSTASK_CREATE_EXT_EN 278
11.2.17 OS_TASK_DEL_EN 278
11.2.18 OS_TASK_SUSPEND_EN 278
11.2.19 OS_TICKS_PER_SEC 278
第12章 在集成开发环境上编译μC/OS-Ⅱ 279
12.1 使用Borland C++4.5编译μC/OS-Ⅱ 279
12.1.1 做法与步骤 280
12.1.2 BC精简版与完整版之间的关系 283
12.2 使用Visual C++6.0编译μC/OS-Ⅱ 283
12.2.1 DOS程序与Windows程序的区别 283
12.2.2 系统时钟的模拟 285
12.2.3 系统时钟中断的模拟 288
12.2.4 VC运行环境的初始化 290
12.2.5 任务切换 291
12.3 小结 295
12.4 练习题 295
附录A 文件PC.C中的函数 296
A.1 字符显示函数 296
A.1.1 显示一个字符的函数PC_DispChar 296
A.1.2 清屏幕一列显示的函数PC_DispClrCol 296
A.1.3 清屏幕一行显示的函数PC_DispClrRow 296
A.1.4 清屏函数PC_DispClrScr 297
A.1.5 显示字符串函数PC_DispStr 297
A.1.6 颜色常量的定义 297
A.2 保存和恢复DOS环境的函数 298
A.2.1 保存DOS环境的函数PC_DOSSaveReturn() 298
A.2.2 恢复DOS环境的函数PC_DoSReturn() 298
A.3 设置和获取中断向量的函数 298
A.3.1 设置中断向量的函数PC_VectSet() 298
A.3.2 获取中断向量的函数PC_VectGet() 298
附录B μC/OS-Ⅱ中使用的数据类型 299
附录C C51开发工具μVision2简介 300
C.1 C51语言的扩展 300
C.1.1 数据类型 300
C.1.2 存储器类型 301
C.1.3 存储模式 302
C.1.4 指针 303
C.1.5 可重入函数 304
C.1.6 与汇编语言的接口 305
C.1.7 库函数 306
C.2 创建项目 306
C.2.1 启动μVision2并创建一个项目 306
C.2.2 新建一个源文件 307
C.2.3 增加和配置初始化代码 307
C.2.4 为目标设置工具选项 308
C.2.5 Build项目并生成HEX文件 308
C.3 常用的菜单选项 309
C.3.1 视图菜单View 309
C.3.2 项目菜单Project 309
C.3.3 调试菜单Debug 309
C.3.4 外围器件菜单Peripherals 310
参考文献 311
- 《第一性原理方法及应用》李青坤著 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《高等院校保险学专业系列教材 保险学原理与实务》林佳依责任编辑;(中国)牟晓伟,李彤宇 2019
- 《刑法归责原理的规范化展开》陈璇著 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《单片机原理及应用》庄友谊 2020
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《计算机组成原理 第2版》任国林 2018
- 《化工原理课程设计》刘建周主编 2018
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019