《嵌入式实时操作系统μC/OS分析与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:卢有亮编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121154416
  • 页数:280 页
图书介绍:本书在第一章给出实时操作系统的基础,为以后各章的学习打下基础,满足未学习过操作系统的读者,而学习过操作系统的读者也要掌握本章的内容,因为嵌入式实时操作系统有其个性。第二章任务管理,第三章中断和时间管理,第四章事件管理,第五章消息管理,第六章内存管理,第七章移植先给出通用的方法,再分别论述PC下基于NIOS的FPGA这一全新领域下的移植。

第1章 实时操作系统基础 1

1.1操作系统概述 1

1.1.1什么是操作系统 2

1.1.2操作系统基本功能 3

1.2实时操作系统概述 4

1.2.1什么是实时操作系统 4

1.2.2实时操作系统的基本特征 4

1.3任务 5

1.3.1任务简介 5

1.3.2多任务 6

1.3.3任务状态 7

1.3.4任务切换 9

1.3.5可重入函数和不可重入函数 9

1.4基于优先级的不可剥夺内核 12

1.4.1内核 12

1.4.2基于优先级的调度算法 12

1.4.3不可剥夺型内核和可剥夺型内核 12

1.5同步与通信 14

1.5.1同步 14

1.5.2互斥 15

1.5.3临界区 15

1.5.4任务事件 16

1.5.5信号量 16

1.5.6互斥信号量 18

1.5.7事件标志组 18

1.5.8消息邮箱和消息队列 18

1.6中断和时钟 20

1.7内存管理 21

习题 22

第2章 任务管理 23

2.1任务管理数据结构 24

2.1.1任务控制块 24

2.1.2空闲链表和就绪链表 30

2.1.3任务优先级指针表 32

2.1.4任务堆栈 33

2.1.5任务就绪表和就绪组 35

2.2任务控制块初始化 41

2.2.1代码解析 41

2.2.2流程分析 43

2.3操作系统初始化 44

2.3.1代码解析 45

23.2流程分析 50

2.4任务的创建 51

2.4.1 OSTaskCreate代码解析 51

2.4.2 OSTaskCreate流程分析 54

2.4.3 OSTaskCreateExt代码解析 55

2.4.4 OSTaskCreateExt流程分析 58

2.5任务的删除 60

2.5.1任务删除代码解析 60

2.5.2任务删除流程分析 63

2.5.3请求删除任务代码解析 65

2.5.4请求删除任务流程 66

2.6任务挂起和恢复 67

2.6.1 OSTaskSuspend代码解析 68

2.6.2 OSTaskSuspend流程分析 70

2.6.3 OSTaskResume代码解析 70

2.6.4 OSTaskResume流程分析 72

2.7任务的调度和多任务的启动 73

2.7.1任务调度器 74

2.7.2任务切换函数 76

2.7.3中断中的任务调度 81

2.7.4多任务的启动 83

2.8特殊任务 84

2.8.1空闲任务OS_TaskIdle 85

2.8.2统计任务OS_TaskStat 85

2.9任务管理总结 88

习题 89

第3章 中断和时间管理 90

3.1中断管理 90

3.1.1中断管理核心思路 90

3.1.2中断处理的流程 92

3.1.3时钟中断服务 92

3.2时间管理 94

3.2.1时间管理主要数据结构 94

3.2.2时间的获取和设置 94

3.2.3任务延时函数OSTimeDly 95

3.2.4任务按分秒延迟函数OSTimeDlyHMSM 97

3.2.5延时恢复函数OSTimeDlyResume 98

习题 101

第4章 事件管理 102

4.1事件管理的重要数据结构 102

4.1.1事件控制块(ECB) 102

4.1.2事件等待组和事件等待表 104

4.1.3事件控制块空闲链表 105

4.2事件管理程序 106

4.2.1事件控制块(ECB)初始化 106

4.2.2事件等待表初始化 107

4.2.3设置事件等待 107

4.2.4取消事件等待 109

4.2.5将等待事件的任务就绪 110

4.3信号量管理 111

4.3.1信号量的建立OSSemCreate 112

4.3.2信号量的删除OSSemDel 115

4.3.3请求信号量OSSemPend 118

4.3.4提交信号量 122

4.3.5无等待请求信号量 123

4.3.6放弃等待信号量 124

4.3.7信号量值设置 126

4.3.8查询信号量状态 127

4.3.9信号量应用举例 129

4.4互斥信号量管理 134

4.4.1互斥信号量的建立 135

4.4.2请求互斥信号量 137

4.4.3互斥信号量的删除 143

4.4.4发互斥信号量 147

4.4.5无等待请求互斥信号量 150

4.4.6查询互斥信号量状态 152

4.4.7改变任务的优先级并重新就绪 153

4.4.8互斥信号量应用举例 154

4.5事件标志组管理 159

4.5.1事件标志组数据结构 160

4.5.2事件标志组初始化 162

4.5.3创建事件标志组 164

4.5.4事件标志组阻塞函数 165

4.5.5请求事件标志 167

4.5.6删除事件标志组 174

4.5.7提交事件标志组 177

4.5.8标志节点任务就绪 181

4.5.9无等待的请求事件标志 182

4.5.10事件标志管理应用举例 184

习题 190

第5章 消息管理 191

5.1消息邮箱 191

5.1.1建立消息邮箱 192

5.1.2等待消息 195

5.1.3发消息 199

5.1.4删除消息邮箱 201

5.1.5放弃等待邮箱 204

5.1.6无等待请求消息 206

5.1.7查询消息邮箱状态 207

5.1.8消息邮箱的例子 208

5.2消息队列 211

5.2.1消息队列数据结构 212

5.2.2初始化消息队列 215

5.2.3建立消息队列 216

5.2.4发消息到消息队列 218

5.2.5等待消息队列中的消息 219

5.2.6删除消息队列 222

5.2.7取得消息队列的状态 225

5.2.8消息队列应用举例 226

习题 230

第6章 内存管理 231

6.1内存管理数据结构 232

6.1.1内存控制块 232

6.1.2内存控制块实体 232

6.1.3空闲内存控制块链表 232

6.1.4内存分区 233

6.2内存控制块初始化 233

6.3创建内存分区 235

6.4内存分区获取 237

6.5内存分区释放 239

6.6查询内存分区的状态 240

6.7内存管理实例 241

习题 244

第7章 移植 245

7.1移植说明 245

7.1.1 μC/OS-Ⅱ的代码结构 245

7.1.2操作系统中与CPU相关的代码解析 249

7.1.3 μC/OS-Ⅱ移植步骤 253

7.2在Visual C﹢﹢6.0上实现基于Windows的虚拟μC/OS-II移植 253

7.2.1目录结构和工程的建立 254

7.2.2包含文件includes.h 255

7.2.3 os_cpu.h中修改的代码 255

7.2.4 os_cpu.c中修改的代码 257

7.2.5主程序代码实现 261

7.2.6移植测试 262

7.3在基于NIOS软核的FPGA嵌入式系统下的μC/OS-II移植 263

7.3.1系统结构 263

7.3.2 NIOS-Ⅱ寄存器 265

7.3.3 os_cpu.h的移植代码 267

7.3.4 os_cpu.c的移植代码 269

7.3.5 os_cpu.s的移植代码 271

7.3.6工程的创建和移植测试 275

习题 280