当前位置:首页 > 工业技术
嵌入式实时操作系统Small RTOS51原理及应用
嵌入式实时操作系统Small RTOS51原理及应用

嵌入式实时操作系统Small RTOS51原理及应用PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:陈明计,周立功等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2004
  • ISBN:7810774093
  • 页数:343 页
图书介绍:Small RTOS51是为51系列单片机而编写的多任务实时操作系统。本书介绍Small RTOS51的基本概念并详细分析Small RTOS51的工作原理;给出部分常用硬件在Small RTOS51下驱动程序的源代码。
《嵌入式实时操作系统Small RTOS51原理及应用》目录

目录 3

第一部分 原理篇 3

第0章 绪 论 3

第1章Small RTOS51简介 9

1.1 Small RTOS51的特点 9

1.2 Small RTOS51的运行条件 9

1.3 Small RTOS51的存储器需求 9

1.4 Small RTOS51的任务堆栈的计算 10

1.5关于可重入功能 10

1.6关于C51的库函数 10

1.7关于51系列单片机派生类型的多数据指针和数学单元 10

1.8关于51系列单片机的寄存器段 11

1.9关于局部变量 11

2.2 实时系统 12

2.1嵌入式系统 12

第2章基本概念 12

2.3前、后台系统 13

2.4操作系统 13

2.5实时操作系统 14

2.6代码的临界区 15

2.7 资 源 15

2.8共享资源 15

2.9任 务 15

2.10任务切换 15

2.11 内 核 16

2.12 调 度 16

2.13非占先式内核 16

2.14 占先式内核 17

2.15可重入性 17

2.16任务优先级 19

2.18死锁 20

2.17 信号量 20

2.19 消息队列 21

2.20 中 断 21

2.21 时钟节拍 22

第3章一个简单的例子 23

3.1 Small RTOS51的安装及目录结构 23

3.2 例子简介 23

3.3 Config.h、Os_cfg.h和Os_cpu.h 24

3.4与编译器无关的数据类型 24

3.5 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 25

3.6 main()函数 25

3.7建立任务 26

3.8 删除任务 26

3.9 用户任务 26

3.10软非屏蔽中断 27

3.12 Os_cpu.h可改变的其他内容 28

3.11 中断服务程序的编写 28

3.13 Small RTOS51的其他注意事项 29

第4章任务管理——核心的核心 30

4.1 临界区 30

4.2 任 务 30

4.3任务状态 31

4.4与任务相关的数据结构 32

4.5 任务调度 36

4.6 Small RTOS51中的中断处理 39

4.7 时钟节拍 43

4.8 Small RTOS51初始化和启动 45

4.9 建立任务 46

4.10任务堆栈 47

4.11删除任务 47

4.12时间服务及任务的挂起和恢复 47

4.14OSInt…()函数 52

4.13 获取当前Small RTOS51的版本号 52

第5章如何切换任务 53

5.1 CPU可以执行多个任务的原因 53

5.2 CPU怎样运行才能执行多个任务 53

5.3何时进行任务切换 54

5.4 Small RTOS51任务切换时的程序框图 54

5.5 数组OSTsakStackBotton[]和Small RTOS51的堆栈结构 55

5.6变量OSFastSwap 57

5.7常量数组OSMapTbl[] 58

5.8软非屏蔽中断的堆栈SP2[] 58

5.9 中断切换函数OSIntCtxSw() 58

5.10 任务主动放弃CPU——OS_TASK_SW() 60

5.11 堆栈变换函数C_OSCtxSw() 62

5.12恢复新任务环境LoadCtx() 69

5.14 Small RTOS51初始化函数OSStart() 72

5.13优先级最低的任务OSIdle() 72

5.15 系统时钟节拍中断OSTickISR() 74

第6章任务之间的通信和同步之信号量 78

6.1 概 述 78

6.2使Keil C51函数具有重入性的特殊方法 78

6.3数据结构 79

6.4 EN_OS_SEM_CHK宏及相关代码 80

6.5初始化一个信号量 80

6.6等待一个信号量 82

6.7发送一个信号量 86

6.8无等待地请求一个信号量 89

6.9查询信号量 90

第7章 任务之间的通信和同步之消息队列 92

7.1 概 述 92

7.2数据结构及存储空间的分配 92

7.3 消息队列发送消息和取得消息的操作 93

7.4 EN_OS_Q_CHK及相关代码 95

7.5建立一个消息队列 96

7.6等待一个消息队列中的消息 98

7.7 向消息队列发送一个消息(FIFO) 102

7.8 向消息队列发送一个消息(LIFO) 106

7.9 同时发送多个消息 111

7.10无等待地从消息队列中取得消息 111

7.11 清空一个消息队列 113

7.12查询一个消息队列的状态 114

第8章Small RTOS51的移植 116

8.1 系统相关的宏 116

8.2与编译器无关的变量类型 117

8.3OSStart() 117

8.5 OS_TASK_SW() 118

8.6 OSTickISR() 118

8.4OSIntCtxSw() 118

8.7OSIdle() 120

第9章函数参考手册 121

9.1 OS_INT_ENTER()函数 121

9.2 OSClearSignal()函数 121

9.3OSIntExit()函数 123

9.4OSIntSendSignal()函数 124

9.5 OSQAccept()函数 124

9.6 OSQCreate()函数 125

9.7 OSQFlush()函数 126

9.8 OSQIntPost()函数 127

9.9 OSQIntPostFront()函数 128

9.10 OSQNMsgs()函数 129

9.11 OSQPend()函数 129

9.12 OSQPost()函数 130

9.13 OSQPostFront()函数 131

9.14 OSQSize()函数 132

9.16OSSemAccept()函数 133

9.15OSRunningTaskID()函数 133

9.17OSSemCreate()函数 134

9.18OSSemIntPost()函数 135

9.19OSSemPend()函数 136

9.20OSSemPost()函数 136

9.21OSSemQuery()函数 137

9.22OSSendSignal()函数 138

9.23OSStart()函数 138

9.24 OSTimeTick()函数 139

9.25OSVersion()函数 140

9.26OSWait()函数 141

第10章 系统配置手册 142

10.1基本配置 142

10.2消息队列的配置 143

10.4 Small RTOS51的特殊配置 144

10.3信号量的配置 144

第二部分 应用篇 149

第11章DP-51单片机仿真实验仪简介 149

11.1 概述 149

11.2产品实物 149

11.3功能特点 150

11.4 主控CPU简介 150

11.5 DP-51单片机仿真实验仪的应用领域 152

第12章DP-51单片机仿真实验仪硬件结构 153

12.1 主要器件 153

12.2 电路外观 153

12.3应用接口 155

12.4 I/O地址分配 159

12.5跳线选择器 160

13.1 Keil C51简介 163

第13章如何为Small RTOS51编写驱动程序 163

13.2 Keil C51的特殊性 164

13.3判断Keil C51是否可重入的方法 165

13.4使用任务编写驱动程序 165

13.5使用消息队列编写驱动程序 165

13.6使用信号量编写驱动程序 165

13.7复合方法 166

第14章LED扫描程序的实现 167

14.1 LED简介 167

14.2 LED数码显示器简介 169

14.3 LED驱动程序的实现 172

第15章LCD显示驱动的实现 177

15.1 点阵字符型LCD-TC1602A简介 177

15.2 TC1602A液晶显示器与DP-51单片机仿真实验仪的连接 181

15.3驱动程序的使用 181

15.4 对TC1602A操作的基本函数 183

15.5 初始化TC1602A液晶显示器 184

15.6清除指定行 185

15.7在指定位置显示字符串 186

15.8在指定地址向液晶模块写多个字符 188

15.9 驱动程序在DP-51单片机仿真实验仪上使用的例子 189

第16章软定时器的实现 192

16.1软定时器简介 192

16.2软定时器模块的使用 192

16.3软定时器的数据结构 193

16.4软定时器模块的接口函数 193

16.5软定时器模块的管理 196

16.6软定时器模块在DP-51运用的例子 200

第17章键盘扫描程序的实现 203

17.1 键盘简介 203

17.4复合键 204

17.3连击的处理 204

17.2软件去抖动处理 204

17.5 串 键 205

17.6键盘驱动的实现 205

17.7键盘驱动在DP-51上运用的例子 211

第18章 串行通信程序的实现 216

18.1概述 216

18.2 串行通信硬件电路 216

18.3通信协议 217

18.4本例使用的串行通信协议 217

18.5本例执行的效果 217

18.6 串行通信驱动程序的发送部分 217

18.7 串行通信驱动程序的接收部分 220

18.8例子中其他未介绍部分代码 222

19.2位传输 224

19.1 标准模式I2C总线规范简介 224

第19章I2C总线驱动程序的实现 224

19.3数据传输 225

19.4仲裁与时钟发生 226

19.5传输协议 226

19.6 I2C总线驱动程序的实现 228

第20章 串行E2PROM芯片Cat24WCxx驱动程序的实现 238

20.1 概述 238

20.2引脚描述 238

20.3 串行E2PROM芯片的寻址 239

20.4写操作方式 241

20.5读操作方式 242

20.6 Cat24WC02在DP-51 中的连接 244

20.7 Cat24WCxx驱动程序的使用 244

20.8 Cat24WCxx的写操作 245

20.9 Cat24W(xx的读操作 246

20.10 DP-51上对Cat24WC02读/写操作的例子 247

第21章 实时时钟芯片PCF8563驱动程序的实现 250

21.1 实时时钟PCF8563简介 250

21.2 PCF8563的基本原理 251

21.3 PCF8563在DP-51中的连接 257

21.4 PCF8563驱动程序的使用 257

21.5 PCF8563的写操作 258

21.6 PCF8563的读操作 259

21.7 DP-51上对PCF8563读/写操作的例子 259

第22章CAN总线驱动程序的实现 262

22.1 CAN简介 262

22.2 CAN控制器SJA1000简介 262

22.3 SJA1000的硬件连接 264

22.4对SJA1000的软件控制 265

22.5 SJA1000的BasicCAN方式 265

22.6寄存器位功能介绍 268

22.7 SJA1000的编程流程 278

22.8驱动程序的使用 279

22.9对SJA1000操作的基本函数 281

22.10用户可修改、可调整的应用层函数 290

22.11 CAN 通信在DP-51上运用的例子 295

第23章PDIUSBD12 USB驱动程序的实现 299

23.1 简介 299

23.2 USB设备的枚举过程 299

23.3 USB标准设备请求 300

23.4程序实现方法 303

第24章 完整的程序——闹钟的实现 314

24.1简介 314

24.2关键代码 314

附录A使用许可证 341

附录B本书配套光盘说明 342

参考文献 343

相关图书
作者其它书籍
返回顶部