《μC/OS-Ⅱ内核分析、移植与驱动程序开发》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:陈是知编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:7115164754
  • 页数:269 页
图书介绍:本书介绍μC/OS-II的内核分析、移植过程和驱动程序开发方法。首先以μC/OS-II在8051系列单片机上的移植为例子,详细剖析μC/OS-II的内核和移植过程;以串口通信为例,介绍如何为μC/OS-II实时内核添加设备的驱动程序;最后介绍μC/OS-II在数字信号处理器(DSP)上的移植,以进一步加深让读者对μC/OS-II的理解。

第1章 嵌入式系统概述 1

1.1 嵌入式系统的历史 1

1.2 嵌入式系统的定义 2

1.3 嵌入式系统的特点 3

1.4 什么是嵌入式处理器 4

第2章 认识μC/OS-II 6

2.1 范例A——演示多任务处理能力 6

2.1.1 声明任务堆栈 7

2.1.2 声明随机信号量 8

2.1.3 声明任务及功能函数原型 8

2.1.4 main() 8

2.1.5 TaskStart()任务 12

2.1.6 Task()任务 16

2.2 范例B——演示堆栈检查功能 17

2.2.1 定义任务堆栈大小、任务ID和优先级 18

2.2.2 声明任务堆栈 18

2.2.3 声明消息邮箱 19

2.2.4 声明任务及功能函数原型 19

2.2.5 main() 19

2.2.6 TaskStart()任务 22

2.2.7 Task 1()任务 24

2.2.8 Task 2()任务 25

2.2.9 Task 3()任务 26

2.2.10 Task 4()任务 26

2.2.11 Task 5()任务 27

2.2.12 TaskClk()任务 27

第3章 μC/OS-II内核分析与系统功能 29

3.1 μC/OS-II内核结构 29

3.1.1 宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 30

3.1.2 任务及其状态 30

3.1.3 任务控制块OS TCB 32

3.1.4 就绪表 35

3.1.5 任务调度 39

3.1.6 调度器上锁、开锁 40

3.1.7 空闲任务 42

3.1.8 统计任务 42

3.1.9 μC/OS-II中的中断 45

3.1.10 时钟节拍 46

3.1.11 μC/OS-II初始化 49

3.1.12 μC/OS-II的启动 50

3.2 μC/OS-II系统功能 51

3.2.1 通过OSTaskCreate()、OSTaskCreateExt()建立任务 52

3.2.2 通过OSTaskDel()删除任务 58

3.2.3 通过OSTaskDelReq()请求删除任务 61

3.2.4 通过OSTaskChangePrio()改变任务的优先级 63

3.2.5 通过OSTaskSuspend()挂起任务 66

3.2.6 通过OSTaskResume()恢复任务 68

3.2.7 通过OSTimeDly()、OSTimeDlyHMSM()将任务延时 69

3.2.8 通过OSSemCreate()建立信号量 71

3.2.9 通过OSSemPend()等待一个信号量 73

3.2.10 通过OSSemPost()发送信号量 76

3.2.11 通过OSMboxCreate()建立邮箱 78

3.2.12 通过OSMboxPend()等待邮箱中的消息 79

3.2.13 通过OSMboxPost()向邮箱中发送消息 80

3.2.14 通过OSQCreate()建立消息队列 82

3.2.15 通过OSQPend()等待消息队列中的消息 83

3.2.16 通过OSQPost()向消息队列发送消息(FIFO) 85

第4章 Keil Cx51基础知识 86

4.1 Cx51程序设计基础 86

4.1.1 标识符与关键字 86

4.1.2 基本语法 86

4.1.3 基本语句 91

4.2 函数 92

4.2.1 函数定义 93

4.2.2 函数的调用 93

4.2.3 函数的递归调用与再入函数 95

4.2.4 函数变量的存储方式 96

4.2.5 数据存放的字节顺序 97

4.3 数组与指针 98

4.3.1 数组的定义与引用 98

4.3.2 字符数组 98

4.3.3 指针 99

4.3.4 数组的指针 101

4.3.5 函数型指针 102

4.3.6 指针数组 103

4.3.7 指针型指针 103

4.3.8 抽象型指针 103

4.4 Cx51编译器对ANSI标准C的扩展 104

4.4.1 Cx51编译器简介 104

4.4.2 存储区域 104

4.4.3 明确声明存储类型 105

4.4.4 特殊功能寄存器(SFR) 105

4.4.5 指针 106

4.4.6 指针转化 107

4.4.7 函数声明 108

4.4.8 模拟堆栈 112

4.4.9 编译器限制 112

4.5 高级编程技术 113

4.5.1 用户配置文件 113

4.5.2 与汇编语言程序的接口 115

4.5.3 与ANSI C的差异 117

4.6 预处理器 119

4.6.1 命令 119

4.6.2 字符化操作符 120

4.6.3 字符化连接操作符 120

4.7 Ax51宏汇编器 120

4.7.1 汇编伪指令 120

4.7.2 宏处理器 125

第5章 μC/OS-II移植基础知识 127

5.1 INCLUDES.H 129

5.2 OS_CPU.H 129

5.2.1 与编译器相关的数据类型 130

5.2.2 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 132

5.2.3 OS_STK_GROWTH 135

5.2.4 OS_TASK_SW() 137

5.3 OS_CPU_C.C 138

5.3.1 OSTaskStkInit() 138

5.3.2 Hook类函数 144

5.4 OS_CPU_A.ASM 147

5.4.1 OSStartHighRdy() 147

5.4.2 OSCtxSw() 150

5.4.3 OSTickISR() 153

5.4.4 OSIntCtxSw() 157

5.5 测试移植代码 159

5.5.1 测试是否存在编译错误 159

5.5.2 测试OSTaskStkInit()与OSStartHighRdy() 161

5.5.3 测试OSCtxSw() 162

5.5.4 测试OSIntCtxSw()和OSTickISR() 163

第6章 μC/OS-II在MCS-51上的移植 165

6.1 建立工程 166

6.2 OS_CPU.H 170

6.3 OS_CPU_C.C 174

6.4 OS_CPU_A.ASM 179

6.4.1 定义压栈出栈宏 179

6.4.2 OSStartHighRdy() 180

6.4.3 OSCtxSw() 183

6.4.4 OSTickISR() 187

6.4.5 OSIntCtxSw() 189

6.4.6 优化 193

6.5 定时器初值设置 194

6.6 编写测试程序 194

6.7 移植过程遇到的问题及解决 196

第7章 驱动程序开发 198

7.1 串行口 198

7.1.1 串行通信基础知识 198

7.1.2 收发数据 202

7.1.3 基于μC/OS-II的串口驱动 205

7.1.4 高速串口驱动 226

7.2 以太网驱动 232

7.2.1 RTL8019AS基础知识 233

7.2.2 部分源程序清单 238

7.3 I2C总线 241

7.3.1 I2C总线基础知识 241

7.3.2 模拟I2C总线驱动程序 244

7.3.3 I2C接口EEPROM读写程序 247

第8章 简单通信协议 251

8.1 命令/响应包协议 251

8.1.1 通信格式 251

8.1.2 通信命令集 252

8.1.3 软件通信协议 252

8.1.4 驻留在加密器程序中的固定信息 254

8.2 程序设计 254

8.2.1 程序设计的基本思路 254

8.2.2 接收任务 254

8.2.3 加/解密任务 257

8.2.4 发送任务 258

第9章 μC/OS-II在DSP上的移植 261

9.1 μC/OS-II在TMS320F2812上的移植 261

9.1 OS_CPU.H 261

9.1.2 OS_CPU_C.C 264

9.1.3 OS_CPU_A.ASM 265

参考文献 269