当前位置:首页 > 工业技术
轻松自编小型嵌入式操作系统
轻松自编小型嵌入式操作系统

轻松自编小型嵌入式操作系统PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:陈旭武编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2012
  • ISBN:9787512406322
  • 页数:367 页
图书介绍:本书介绍RW/CZXT-1.0小型嵌入式操作系统内核的模型结构及其程序代码,全书分为3大篇14章。第1篇:实现一个基础的小型嵌入式操作系统:设计内核的功能结构及其程序代码。第2篇:扩展小型嵌入式操作系统内核的应用功能:建立信号量、邮箱、消息队列、特殊服务及内存管理等功能。第3篇:用实际工程例子介绍RW/CZXT-1.0嵌入式操作系统的应用。本书99%的程序代码用C语言进行编写,具有结构合理、内容丰富、描述详细、知识浅显易懂,并且注重理论与应用相结合的特点,对每一章节的设计要点进行总结,重点章节附有实验应用实例。
《轻松自编小型嵌入式操作系统》目录

第1篇 小型嵌入式操作系统基础 3

第0章 概述 3

第1章 实现一个简单的3任务调度系统 8

1.1硬件和软件的准备 9

1.1.1实验开发板 9

1.1.2集成环境开发工具软件 10

1.2构建简单的3任务调度操作系统 10

1.2.1用KEIL C51建立一个工程 11

1.2.2定义系统需要的变量 15

1.2.3系统初始化及建立任务函数 16

1.2.4建立一个简单的任务调度器 25

1.2.5在实验板上运行 29

总结 32

第2章 嵌入式操作系统的程序文件 34

2.1 RW/CZXT-1.0嵌入式操作系统的功能和特点 34

2.2 RW/CZXT-1.0嵌入式操作系统的程序文件 35

2.2.1系统的宏定义文件:XT-HDY.H 36

2.2.2系统的配置文件:XT-PZ.H 37

2.2.3系统的头文件XT.H 37

2.2.4系统的初始化文件XT-INT.C 38

2.2.5系统的调度文件XT-TD.C 38

2.2.6系统任务管理文件XT-RWGL.C 38

2.2.7系统时间管理文件XT-SHIJ.C 39

2.2.8信号量、邮箱文件XT-XHL.C,XT-XXYX.C 39

2.2.9消息队列功能文件XT-XXDL.C 39

2.2.10内存管理功能文件XT-NCGL.C 39

2.2.11系统服务功能文件XT-FUWU.C 40

2.2.12系统MAIN文件XT-MAIN.C 40

总结 40

第3章 系统变量定义及初始化 41

3.1系统的宏定义 41

3.1.1系统状态模式的宏标志 42

3.1.2任务状态宏标志 42

3.1.3其他宏标志 42

3.2系统变量的定义及其作用 43

3.2.1定义系统管理控制块 43

3.3.2定义任务的任务栈 44

3.2.3定义任务的运行队列 45

3.3任务控制块的定义及其作用 45

3.3.1定义一个类型结构体:RWK 45

3.3.2用类型结构体为每个任务定义任务控制块 46

3.4系统的初始化操作 46

3.4.1系统变量初始化 47

3.4.2系统总初始化函数的结构 48

3.5静态创建应用任务 49

3.5.1在系统的头文件XT.H中,声明任务函数 50

3.5.2定义任务栈 50

3.5.3把任务函数的入口地址存放在任务栈中 51

3.5.4初始化任务控制块 53

3.3.5任务在运行队列中进行登记 54

3.5.6在MAIN文件中编写任务函数模型 54

3.6系统基础模型的编译和调试 56

3.6.1在MAIN文件中加入各个程序文件 56

3.6.2为系统建立MAIN函数 56

3.6.3编译和调试 57

3.6.4采用简单的方式启动任务运行 57

总结 58

第4章 任务调度器设计 59

4.1时间片轮转调度方法 60

4.1.1时间片轮转调度工作原理 60

4.1.2时间片轮转调度工作模式 61

4.1.3基于“优先和普通结合”的时间片轮转调度算法 61

4.1.4提高系统实时性的其他方法 63

4.2任务运行队列 64

4.2.1运行队列的结构 64

4.2.2运行队列的操作 64

4.3堆栈原理、堆栈操作 71

4.3.1任务栈设计 71

4.3.2堆栈操作 72

4.4任务调度器设计与实现 73

4.4.1任务级调度器设计与实现 74

4.4.2中断级调度器设计与实现 79

4.4.3调度器设计注意事项 82

4.5调度时机 82

4.5.1任务调度的时机和调度限制 82

4.5.2调度器上锁、解锁 83

4.5.3中断嵌套计数器 84

4.6调度器的应用对象 85

4.7系统启动设计 86

总结 87

第5章 系统时间管理与应用函数设计 88

5.1 AT89Sxx单片机定时器的设置 89

5.1.1 T0定时器的工作方式设置 89

5.1.2 T0定时器中断功能设置 90

5.1.3 T0定时器初值设置 90

5.1.4 T0定时器设置的程序代码 90

5.2定时器驱动操作系统运行的原理 91

5.2.1时间节拍与任务的运行时间片 91

5.2.2定时器中断服务 92

5.3时间延时应用函数设计 99

5.3.1时间节拍延时函数 100

5.3.2 100 ms延时函数 102

5.3.3 1 s延时函数 103

5.3.4恢复正在延时的任务 104

5.4应用实验 105

总结 108

第6章 任务管理与应用函数设计 110

6.1任务的状态 111

6.1.1任务状态的宏定义 111

6.1.2任务状态 111

6.2任务状态的改变 112

6.2.1任务状态迁移图 112

6.2.2状态转换过程说明 113

6.3控制任务的应用函数设计 114

6.3.1挂起任务 114

6.3.2恢复挂起的任务 117

6.3.3任务等待中断信号 119

6.3.4恢复等待中断的任务 121

6.4应用实验 123

6.4.1任务的工作要求 123

6.4.2在MAIN文件中定义LED指示灯端口及相关变量 123

总结 129

第7章 嵌入式操作系统的实验应用 130

7.1组织程序文件 131

7.2系统关键参数配置 132

7.2.1任务的总数量 132

7.2.2任务栈长度 132

7.2.3系统时钟粒度 132

7.2.4时间片长度 133

7.2.5延时基数 133

7.3设计任务及其程序代码 133

7.3.1确定任务的工作 133

7.3.2定义任务运行所需的相关变量 134

7.3.3任务函数的工作流程 134

7.3.4任务函数的程序代码 136

7.4在实验板上运行测试 138

总结 139

第2篇 内核功能扩展 143

第8章 扩展任务管理功能 143

8.1任务类型 143

8.1.1系统空闲任务 143

8.1.2首次任务 144

8.1.3普通任务 144

8.1.4实时任务 144

8.2片外任务栈设计 144

8.2.1堆栈指针 144

8.2.2任务私有栈与公共运行栈结合的形式 145

8.3动态创建应用任务 146

8.3.1修改相关功能函数 146

8.3.2实现动态创建任务 148

8.4调度器任务切换操作 149

8.4.1任务级调度器任务切换操作 149

8.4.2中断级调度器任务切换操作 154

8.4.3启动函数中任务调度操作 155

8.5实时任务管理 157

8.5.1实时令旗设计 157

8.5.2就绪登记表 159

8.5.3实时任务调度策略 163

8.5.4为系统功能函数设计实时任务管理功能 165

8.6应用实验 173

8.6.1任务工作分配 174

8.6.2动态创建应用任务 174

8.6.3实验工程完整的程序代码 174

总结 176

第9章 信号量设计 177

9.1信号量的作用 178

9.1.1作为任务运行的标志 178

9.1.2作为共享资源的使用标志 179

9.1.3作为资源的数量标志 179

9.2从简单实例了解信号量 179

9.3信号量的类型 182

9.3.1二进制型信号量 182

9.3.2十进制型信号量 182

9.3.3互斥型信号量 183

9.4信号量的数据结构 183

9.4.1信号量的宏定义标志及配置 183

9.4.2定义信号量控制块 184

9.4.3初始化控制块 185

9.5信号量的应用函数设计 186

9.5.1内部操作函数 187

9.5.2创建信号量 191

9.5.3阻塞申请信号量 194

9.5.4非阻塞申请信号量 199

9.5.5释放信号量 201

9.5.6阻塞申请互斥信号量 204

9.6应用实验 210

9.6.1实验的项目 211

9.6.2应用任务的工作分配 211

9.6.3本实验的程序代码 212

总结 215

第10章 邮箱设计 216

10.1从简单实例了解消息邮箱 218

10.2邮箱的数据结构 220

10.2.1有关邮箱的宏定义标志 220

10.2.2定义邮箱控制块 221

10.2.3初始化邮箱控制块 222

10.3邮箱的应用函数设计 222

10.3.1内部操作函数 223

10.3.2创建邮箱 226

10.3.3发消息给邮箱 229

10.3.4阻塞式读邮箱 232

10.3.5非阻塞式读邮箱 236

10.4应用实验 237

10.4.1实验的项目 238

10.4.2应用任务的工作分配 238

10.4.3本实验的程序代码 238

总结 240

第11章 消息队列设计 242

11.1从简单实例了解消息队列 243

11.2消息队列的数据结构 246

11.2.1有关消息队列的宏定义标志 246

11.2.2定义消息队列控制块 247

11.2.3初始化消息队列控制块 249

11.3消息队列应用函数设计 249

11.3.1内部操作函数 250

11.3.2创建消息队列 253

11.3.3发送消息给队列 257

11.3.4非阻塞式读消息队列 260

11.3.5阻塞式读消息队列 261

11.4应用实验 266

11.4.1实验的项目 266

11.4.2应用任务的工作分配 266

11.4.3本实验的程序代码 266

总结 269

第12章 实现简单内存管理功能 270

12.1内存分区管理机制 271

12.1.1内存分区 271

12.1.2内存块 271

12.1.3定义内存分区 271

12.1.4内存分区管理 271

12.2内存管理控制块 272

12.2.1内存管理控制块的数据结构 272

12.2.2内存管理控制块初始化 275

12.3内存分区管理应用函数设计 275

12.3.1创建内存分区 276

12.3.2申请一个内存块 279

12.3.3释放归还一个内存块 283

12.4内存块操作函数设计 286

12.4.1清空内存块 287

12.4.2在内存块中写入一个数据 289

12.4.3从内存块中读出一个数据 291

12.5应用实验 293

12.5.1实验的项目 293

12.5.2应用任务的工作分配 293

12.5.3本实验的程序代码 294

总结 298

第13章 操作系统的服务功能 299

13.1系统服务功能介绍 299

13.2系统服务功能设计 300

13.2.1系统服务功能的工作原理 300

13.2.2工作原理分析 300

13.2.3服务功能配置 301

13.2.4相关定义 301

13.2.1操作系统复位服务 302

13.2.2操作系统暂停服务 304

总结 309

第3篇 操作系统的应用实战 313

第14章 操作系统在水处理控制系统中的应用 313

14.1矿泉水水处理系统结构 313

14.1.1水处理系统的结构及工艺处理流程 313

14.1.2矿泉水的处理方法 314

14.2水处理系统控制方案 314

14.2.1系统的工作模式 315

14.2.2 CO2混合控制 315

14.2.3臭氧混合控制 315

14.2.4设备运行信号检测 316

14.2.5控制信号检测 316

14.2.6键盘输入和显示 316

14.3控制系统主板硬件设计 317

14.3.1控制主板硬件结构 317

14.3.2控制主板硬件设计方案 317

14.4控制系统软件设计 322

14.4.1软件功能处理方案分析 323

14.4.2为任务分配软件功能 325

14.4.3操作系统应用配置 327

14.4.4控制系统程序代码设计 329

14.5控制系统软件测试 337

14.5.1程序代码语法检查 337

14.5.2软件仿真测试 338

14.5.3软硬件功能测试 338

总结 338

附录A系统API应用函数应用说明 339

A.1任务管理功能的API应用函数 339

A.2时间管理功能的API应用函数 341

A.3信号量管理功能的API应用函数 342

A.4邮箱管理功能的API应用函数 343

A.5消息队列管理功能的API应用函数 344

A.6内存管理功能的API应用函数 345

A.7服务功能的API应用函数 347

附录B基础系统完整的程序代码 349

B.1宏定义文件 349

B.2配置文件 349

B.3系统头文件 350

B.4系统初始化文件 351

B.5系统调度文件 353

B.6时间管理文件 359

B.7任务管理文件 363

参考文献 367

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