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

嵌入式实时操作系统μC/OSII原理及应用PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:任哲编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2009
  • ISBN:9787811249323
  • 页数:278 页
图书介绍:μC/OSII是一个源码开放的嵌入式实时操作系统的内核。本书详细地介绍了嵌入式实时操作系统μC/OSII内核的任务管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的简单管理原理,同时给出了大量的实例以帮助读者学习和理解。最后,还介绍了μC/OSII的移植方法。
《嵌入式实时操作系统μC/OSII原理及应用》目录

第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练习题 13

第2章 预备知识 14

2.1开发工具 14

2.1.1Borland C3.1及其精简版 14

2.1.2多文件程序的编译和连接 19

2.2工程管理工具make及makefile 22

2.3复杂工程项目的管理 30

2.3.1批处理文件与makefile的综合使用 30

2.3.2复杂工程管理示例 31

2.4常用数据结构 35

2.4.1程序控制块 35

2.4.2控制块的组织——链表 39

2.4.3位图 40

2.5小结 40

2.6练习题 41

第3章 μC/OS-Ⅱ中的任务 42

3.1任务的基本概念 42

3.1.1任务及其内存结构 42

3.1.2任务的状态 44

3.1.3用户任务代码的一般结构 45

3.1.4系统任务 46

3.1.5任务的优先权及优先级别 48

3.2任务堆栈 48

3.2.1任务堆栈的创建 49

3.2.2任务堆栈的初始化 51

3.3任务控制块及其链表 52

3.3.1任务控制块结构 52

3.3.2任务控制块链表 53

3.3.3任务控制块的初始化 55

3.4任务就绪表及任务调度 56

3.4.1任务就绪表结构 56

3.4.2对任务就绪表的操作 58

3.4.3任务调度 59

3.5任务的创建 65

3.5.1用函数OSTaskCreate()创建任务 65

3.5.2用函数OSTaskCreateExt()创建任务 67

3.5.3创建任务的一般方法 67

3.6任务的挂起和恢复 74

3.6.1挂起任务 74

3.6.2恢复任务 74

3.7其他任务管理函数 80

3.7.1任务优先级别的修改 80

3.7.2任务的删除 81

3.7.3查询任务的信息 87

3.8μC/OS-Ⅱ的初始化和任务的启动 87

3.8.1μC/OS-Ⅱ的初始化 87

3.8.2μC/OS-Ⅱ的启动 89

3.9小结 91

3.10练习题 92

第4章 μC/OS-Ⅱ的中断和时钟 93

4.1μC/OS-Ⅱ的中断 93

4.1.1μC/OS-Ⅱ的中断过程 93

4.1.2中断级任务切换函数 97

4.1.3应用程序中的临界段 97

4.2μC/OS-Ⅱ的时钟 99

4.3时间管理 106

4.3.1任务的延时 106

4.3.2取消任务的延时 107

4.3.3获取和设置系统时间 112

4.4小结 114

4.5练习题 115

第5章 任务的同步与通信 116

5.1任务的同步和事件 116

5.1.1任务间的同步 116

5.1.2事件 117

5.2事件控制块及事件处理函数 129

5.2.1事件控制块的结构 129

5.2.2操作事件控制块的函数 131

5.2.3空事件控制块链表 133

5.3信号量及其操作 134

5.3.1信号量 134

5.3.2信号量的操作 135

5.4互斥型信号量和任务优先级反转 144

5.4.1任务优先级的反转现象 145

5.4.2互斥型信号量 150

5.5消息邮箱及其操作 153

5.5.1消息邮箱 153

5.5.2消息邮箱的操作 154

5.6消息队列及其操作 159

5.6.1消息队列 159

5.6.2消息队列的操作 162

5.7小结 168

5.8练习题 169

第6章 信号量集 170

6.1信号量集的结构 170

6.1.1基本概念 170

6.1.2信号量集的结构 171

6.1.3对等待任务链表的操作 175

6.1.4空标志组链表 175

6.2信号量集的操作 176

6.2.1创建信号量集 176

6.2.2请求信号量集 178

6.2.3向信号量集发送信号 178

6.2.4查询信号量集的状态 184

6.2.5删除信号量集 187

6.3小结 187

6.4练习题 187

第7章 动态内存管理 188

7.1内存控制块 188

7.1.1可动态分配内存的划分 188

7.1.2内存控制块OS_MEM的结构 189

7.1.3空内存控制块链表 190

7.2动态内存的管理 190

7.2.1创建动态内存分区 191

7.2.2请求获得一个内存块 193

7.2.3释放一个内存块 195

7.2.4查询一个内存分区的状态 199

7.3小结 204

7.4练习题 204

第8章 在51单片机上移植μC/OS-Ⅱ 205

8.1μC/OS-Ⅱ移植的一般性问题 205

8.1.1可重入函数的概念 205

8.1.2时钟节拍的产生 206

8.1.3任务堆栈的设计 206

8.2在51系列单片机上移植μC/OS-Ⅱ 207

8.2.1文件OS_CPU.H的修改 207

8.2.2任务堆栈的设计 208

8.2.3文件OS_CPU_C.C的修改 215

8.2.4几点注意事项 216

8.3应用举例 216

8.3.1LED数码显示器的驱动程序 216

8.3.2串行接口的应用 218

8.4小结 226

8.5练习题 226

第9章 基于ARM的μC/OS-Ⅱ 227

9.1移植规划 227

9.1.1编译器的选择 227

9.1.2ARM7工作模式的选择 227

9.2移植 228

9.2.1文件OS_CPU.H的编写 228

9.2.2文件OS_CPU_C.C的编写 230

9.2.3文件OS_CPU_A.S的编写 237

9.2.4关于中断及时钟节拍 240

9.3在LPC2000上移植μC/OS-Ⅱ 241

9.3.1挂接SWI软件中断 242

9.3.2中断及时钟节拍中断 242

9.3.3一个基于μC/OS-Ⅱ和ARM的应用程序实例 243

9.4小结 245

9.5练习题 245

第10章 μC/OS-Ⅱ在80x86上的移植 246

10.1概述 246

10.2任务切换 247

10.2.1任务切换函数OSCtxSw() 247

10.2.2任务切换宏OS_TASK_SW() 249

10.2.3中断级任务切换函数OSIntCtxSw() 250

10.3系统时钟 251

10.3.1PC中DOS的系统时钟 251

10.3.2PC中μC/OS-Ⅱ的系统时钟 251

10.3.3μC/OS-Ⅱ系统时钟中断服务程序 253

10.3.4μC/OS-Ⅱ系统时钟中断向量的安装 253

10.3.5由μC/OS-Ⅱ返回DOS 254

10.4小结 255

第11章 μC/OS-Ⅱ可剪裁性的实现 256

11.1文件OS_CFG.H中用于系统裁剪的常量 256

11.2配置常量的解释 258

11.2.1OS_MAX_EVENTS 258

11.2.2OS_MAX_MEM_PARTS 259

11.2.3OS_MAX_QS 259

11.2.4OS_MAX_MEM_TASKS 259

11.2.5OS_LOWEST_PRIO 259

11.2.6OS_TASK_IDLE_STK_SIZE 260

11.2.7OS_TASK_STAT_EN 260

11.2.8OS_TASK_STAT_STK_SIZE 260

11.2.9OS_CPU_HOOKS_EN 260

11.2.10OS_MBOX_EN 261

11.2.11OS_MEM_EN 261

11.2.12OS_Q_EN 261

11.2.13OS_SEM_EN 261

11.2.14OS_TASK_CHANGE_PRIO_EN 261

11.2.15OS_TASK_CREATE_EN 261

11.2.16OS_TASK_CREATE_EXT_EN 262

11.2.17OS_TASK_DEL_EN 262

11.2.18OS_TASK_SUSPEND_EN 262

11.2.19OS_TICKS_PER_SEC 262

附录A文件PC.C中的函数 263

A.1字符显示函数 263

A.1.1显示一个字符的函数PC_DispChar 263

A.1.2清屏幕一列显示的函数PC_DispClrCol 263

A.1.3清屏幕一行显示的函数PC_DispClrRow 263

A.1.4清屏函数PC_DispClrScr 264

A.1.5显示字符串函数PC_DispStr 264

A.1.6颜色常量的定义 264

A.2保存和恢复DOS环境的函数 265

A.2.1保存DOS环境的函数PC_DOSSaveReturn() 265

A.2.2恢复DOS环境的函数PC_DOSReturn() 265

A.3设置和获取中断向量的函数 265

A.3.1设置中断向量的函数PC_VectSet() 265

A.3.2获取中断向量的函数PC_VectGet() 265

附录B μC/OS-Ⅱ中使用的数据类型 266

附录C C51开发工具μVision2简介 267

C.1C51语言的扩展 267

C.1.1数据类型 267

C.1.2存储器类型 268

C.1.3存储模式 269

C.1.4指针 270

C.1.5可重入函数 271

C.1.6与汇编语言的接口 272

C.1.7库函数 273

C.2创建项目 273

C.2.1启动μVision2并创建一个项目 273

C.2.2新建一个源文件 274

C.2.3增加和配置初始化代码 274

C.2.4为目标设置工具选项 275

C.2.5Build项目并生成HEX文件 275

C.3常用的菜单选项 276

C.3.1视图菜单View 276

C.3.2项目菜单Project 276

C.3.3调试菜单Debug 276

C.3.4外围器件菜单Peripherals 277

参考文献 278

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