《嵌入式实时操作系统μC/OSII原理及应用第4版》电子书

互联网|IT adminlele 4年前 (2022-05-09) 476次浏览 已收录 0个评论

本站主要采用城通网盘链接分享,因为其他网盘会和谐链接!非VIP会员的朋友请点击普通下载,弹窗关闭即可。速度可能比较慢,请耐心等待,提高下载速度,送您10元消费红包

《嵌入式实时操作系统μC/OSII原理及应用第4版》电子书

嵌入式实时操作系统μC/OS-II原理及应用第4版》电子书嵌入式实时操作系统μC/OS-II原理及应用第四版pdf图片预览

内容简介

μC/OSII是一个源码开放的嵌入式实时操作系统的内核。本书详细地介绍了嵌入式实时操作系统μC/OSII内核的任务的管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的简单管理原理。为帮助读者理解书中的内容,本书给出了大量的实例。最后,还介绍了μC/OSII的移植方法。为了学习上的方便,第3版还增加了使用集成开发环境BC45和VC6.0编译μC/OSII的相关内容。第4版主要对第3版前3章做了较大的修改,增加了普通操作系统和嵌入式操作系统的区别,队列、堆栈、计算机中断等特殊问题,并重新编写了任务的概念等内容。  

本书适合高等院校计算机、电子技术、自动化技术、仪器仪表等信息类专业教学使用,也适合对嵌入式操作系统感兴趣的工程技术人员阅读参考。

目录大全

章 嵌入式实时操作系统的基本概念……………………………………………………… 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 II简介……………………………………………… 12

1.4 通用操作系统与嵌入式操作系统的异同……………………………………………… 13

1.5 小 结…………………………………………………………………………………… 15

1.6 练习题…………………………………………………………………………………… 15

第2章 预备知识……………………………………………………………………………… 16

2.1 开发工具………………………………………………………………………………… 16

2.1.1 BorlandC3.1及其精简版……………………………………………………… 16

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

2.2 工程管理工具make及makefile ……………………………………………………… 24

2.3 复杂工程项目的管理…………………………………………………………………… 32

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

2.3.2 复杂工程管理示例………………………………………………………………… 33

2.4 C指针…………………………………………………………………………………… 37

2.4.1 指针的基本概念…………………………………………………………………… 37

2.4.2 函数指针…………………………………………………………………………… 39

2.4.3 函数指针作为函数参数及回调函数……………………………………………… 41

2.5 typedef常用方法……………………………………………………………………… 43

2.6 常用数据类型及数据结构……………………………………………………………… 45

2.6.1 控制块……………………………………………………………………………… 46

2.6.2 同类控制块的登记造册…………………………………………………………… 50

2.6.3 队列与堆栈………………………………………………………………………… 52

2.6.4 位 图……………………………………………………………………………… 54

2.7 程序流程转移的中断实现方法………………………………………………………… 55

2.8 小 结…………………………………………………………………………………… 56

2.9 练习题…………………………………………………………………………………… 56

第3章 μC/OS II中的任务………………………………………………………………… 57

3.1 任务的基本概念………………………………………………………………………… 57

3.1.1 任务及其种类……………………………………………………………………… 57

3.1.2 任务的状态………………………………………………………………………… 59

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

3.1.4 系统任务…………………………………………………………………………… 63

3.1.5 任务的优先权及优先级别………………………………………………………… 64

3.2 任务堆栈………………………………………………………………………………… 65

3.2.1 任务堆栈的创建…………………………………………………………………… 65

3.2.2 任务堆栈的初始化………………………………………………………………… 67

3.3 任务控制块及其链表…………………………………………………………………… 68

3.3.1 任务控制块结构…………………………………………………………………… 68

3.3.2 任务控制块链表…………………………………………………………………… 69

3.3.3 任务控制块的初始化……………………………………………………………… 71

3.4 任务就绪表及任务调度………………………………………………………………… 72

3.4.1 任务就绪表结构…………………………………………………………………… 72

3.4.2 对任务就绪表的操作……………………………………………………………… 74

3.4.3 任务调度…………………………………………………………………………… 76

3.5 任务的创建……………………………………………………………………………… 81

3.5.1 用函数OSTaskCreate()创建任务……………………………………………… 81

3.5.2 用函数OSTaskCreateExt()创建任务…………………………………………… 83

3.5.3 创建任务的一般方法……………………………………………………………… 83

3.6 任务的挂起和恢复……………………………………………………………………… 90

3.6.1 挂起任务…………………………………………………………………………… 90

3.6.2 恢复任务…………………………………………………………………………… 90

3.7 其他任务管理函数……………………………………………………………………… 96

3.7.1 任务优先级别的修改……………………………………………………………… 96

3.7.2 任务的删除………………………………………………………………………… 97

3.7.3 查询任务的信息………………………………………………………………… 3

3.8 μC/OS II的初始化和任务的启动………………………………………………… 3

3.8.1 μC/OS II的初始化…………………………………………………………… 3

3.8.2 μC/OS II的启动……………………………………………………………… 5

3.9 小 结………………………………………………………………………………… 7

3. 练习题………………………………………………………………………………… 8

第4章 μC/OS II的中断和时钟…………………………………………………………… 9

4.1 μC/OS II的中断…………………………………………………………………… 9

4.1.1 μC/OS II的中断过程………………………………………………………… 9

4.1.2 中断级任务切换函数…………………………………………………………… 113

4.1.3 应用程序中的临界段…………………………………………………………… 113

4.2 μC/OS II的时钟…………………………………………………………………… 115

4.3 时间管理……………………………………………………………………………… 122

4.3.1 任务的延时……………………………………………………………………… 122

4.3.2 取消任务的延时………………………………………………………………… 123

4.3.3 获取和设置系统时间…………………………………………………………… 128

4.4 小 结………………………………………………………………………………… 130

4.5 练习题………………………………………………………………………………… 131

第5章 任务的同步与通信…………………………………………………………………… 132

5.1 任务的同步和事件…………………………………………………………………… 132

5.1.1 任务间的同步…………………………………………………………………… 132

5.1.2 事 件…………………………………………………………………………… 133

5.2 事件控制块及事件处理函数………………………………………………………… 145

5.2.1 事件控制块的结构……………………………………………………………… 145

5.2.2 操作事件控制块的函数………………………………………………………… 147

5.2.3 空事件控制块链表……………………………………………………………… 149

5.3 信号量及其操作……………………………………………………………………… 150

5.3.1 信号量…………………………………………………………………………… 150

5.3.2 信号量的操作…………………………………………………………………… 151

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

5.4.1 任务优先级的反转现象………………………………………………………… 161

5.4.2 互斥型信号量…………………………………………………………………… 166

5.5 消息及其操作…………………………………………………………………… 169

5.5.1 消息………………………………………………………………………… 169

5.5.2 消息的操作………………………………………………………………… 170

5.6 消息队列及其操作…………………………………………………………………… 175

5.6.1 消息队列………………………………………………………………………… 175

5.6.2 消息队列的操作………………………………………………………………… 178

5.7 小 结………………………………………………………………………………… 184

5.8 练习题………………………………………………………………………………… 185

第6章 信号量集……………………………………………………………………………… 186

6.1 信号量集的结构……………………………………………………………………… 186

6.1.1 基本概念………………………………………………………………………… 186

6.1.2 信号量集的结构组成…………………………………………………………… 187

6.1.3 对等待任务链表的操作………………………………………………………… 191

6.1.4 空标志组链表…………………………………………………………………… 191

6.2 信号量集的操作……………………………………………………………………… 192

6.2.1 创建信号量集…………………………………………………………………… 192

6.2.2 请求信号量集…………………………………………………………………… 194

6.2.3 向信号量集发送信号…………………………………………………………… 194

6.2.4 查询信号量集的状态…………………………………………………………… 200

6.2.5 删除信号量集…………………………………………………………………… 203

6.3 小 结………………………………………………………………………………… 203

6.4 练习题………………………………………………………………………………… 203

第7章 动态内存管理………………………………………………………………………… 204

7.1 内存控制块…………………………………………………………………………… 204

7.1.1 可动态分配内存的划分………………………………………………………… 204

7.1.2 内存控制块OS_MEM 的结构………………………………………………… 205

7.1.3 空内存控制块链表……………………………………………………………… 206

7.2 动态内存的管理……………………………………………………………………… 206

7.2.1 创建动态内存分区……………………………………………………………… 206

7.2.2 请求获得一个内存块…………………………………………………………… 208

7.2.3 释放一个内存块………………………………………………………………… 211

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

7.3 小 结………………………………………………………………………………… 220

7.4 练习题………………………………………………………………………………… 220

第8章 在51单片机上移植μC/OS II …………………………………………………… 221

8.1 μC/OS II移植的一般性问题……………………………………………………… 221

8.1.1 可重入函数的概念……………………………………………………………… 221

8.1.2 时钟节拍的产生………………………………………………………………… 222

8.1.3 任务堆栈的设计………………………………………………………………… 222

8.2 在51系列单片机上移植μC/OS II ……………………………………………… 223

8.2.1 文件OS_CPU.H 的修改……………………………………………………… 223

8.2.2 任务堆栈的设计………………………………………………………………… 224

8.2.3 文件OS_CPU_C.C的修改…………………………………………………… 231

8.2.4 几点注意事项…………………………………………………………………… 232

8.3 应用举例……………………………………………………………………………… 232

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

8.3.2 串行接口的应用………………………………………………………………… 234

8.4 小 结………………………………………………………………………………… 242

8.5 练习题………………………………………………………………………………… 242

第9章 基于ARM 的μC/OS II…………………………………………………………… 243

9.1 移植规划……………………………………………………………………………… 243

9.1.1 编译器的选择…………………………………………………………………… 243

9.1.2 ARM7工作模式的选择………………………………………………………… 243

9.2 移 植………………………………………………………………………………… 244

9.2.1 文件OS_CPU.H 的编写……………………………………………………… 244

9.2.2 文件OS_CPU_C.C的编写…………………………………………………… 246

9.2.3 文件OS_CPU_A.S的编写…………………………………………………… 253

9.2.4 关于中断及时钟节拍…………………………………………………………… 256

9.3 在LPC2000上移植μC/OS II …………………………………………………… 257

9.3.1 挂接SWI软件中断……………………………………………………………… 258

9.3.2 中断及时钟节拍中断…………………………………………………………… 258

9.3.3 一个基于μC/OS II和ARM 的应用程序实例……………………………… 259

9.4 小 结………………………………………………………………………………… 261

9.5 练习题………………………………………………………………………………… 261

第章 μC/OS II在80×86上的移植…………………………………………………… 262

.1 概 述………………………………………………………………………………… 262

.2 任务切换……………………………………………………………………………… 263

.2.1 任务切换函数OSCtxSw() …………………………………………………… 263

.2.2 任务切换宏OS_TASK_SW()………………………………………………… 265

.2.3 中断级任务切换函数OSIntCtxSw()………………………………………… 266

.3 系统时钟……………………………………………………………………………… 267

.3.1 PC中DOS的系统时钟………………………………………………………… 267

.3.2 PC中μC/OS II的系统时钟………………………………………………… 267

.3.3 μC/OS II系统时钟中断服务程序…………………………………………… 269

.3.4 μC/OS II系统时钟中断向量的安装………………………………………… 269

.3.5 由μC/OS II返回DOS ……………………………………………………… 270

.4 小 结………………………………………………………………………………… 271

1章 μC/OS II可裁剪性的实现……………………………………………………… 272

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

11.2 配置常量的解释……………………………………………………………………… 274

11.2.1 OS_MAX_EVENTS ………………………………………………………… 274

11.2.2 OS_MAX_MEM_PARTS …………………………………………………… 275

11.2.3 OS_MAX_QS ………………………………………………………………… 275

11.2.4 OS_MAX_MEM_TASKS …………………………………………………… 275

11.2.5 OS_LOWEST_PRIO ………………………………………………………… 275

11.2.6 OS_TASK_IDLE_STK_SIZE ………………………………………………… 276

11.2.7 OS_TASK_STAT_EN ……………………………………………………… 276

11.2.8 OS_TASK_STAT_STK_SIZE ……………………………………………… 276

11.2.9 OS_CPU_HOOKS_EN ……………………………………………………… 276

11.2. OS_MBOX_EN ……………………………………………………………… 277

11.2.11 OS_MEM_EN ………………………………………………………………… 277

11.2.12 OS_Q_EN …………………………………………………………………… 277

11.2.13 OS_SEM_EN ………………………………………………………………… 277

11.2.14 OS_TASK_CHANGE_PRIO_EN ………………………………………… 277

11.2.15 OS_TASK_CREATE_EN …………………………………………………… 277

11.2.16 OS_TASK_CREATE_EXT_EN …………………………………………… 278

11.2.17 OS_TASK_DEL_EN ………………………………………………………… 278

11.2.18 OS_TASK_SUSPEND_EN ………………………………………………… 278

11.2.19 OS_TICKS_PER_SEC ……………………………………………………… 278

2章 在集成开发环境上编译μC/OS II ……………………………………………… 279

前言阅读

很高兴出版本书的第4版,同时也感谢多年来读者对本书的喜爱和热情帮助,也对为本书的维护付出辛劳和汗水的北京航空航天大学出版社的编辑们表示衷心的谢意。

时间过得真快,一晃这本书已经持续被用了10年了。很欣慰,在这10年期间,这本书为很多读者奠定了学习嵌人式操作系统乃至通用操作系统的基础;当然也有遗憾,即因作者的水平所限,这本书也给一些读者带来了困惑,但不管如何,迄今为止读者还需要这本书,这就是对这本书的肯定。作者在此再一次向使用过本书,以及将要使用本书的读者致以衷心的感谢!根据第3版的使用情况,第4版主要对第3版前3章做了较大的修改。因为作者发现,使用本书学习的读者有相当一部分只是具有C语言程序设计的基础,距离学习操作系统所应具有的基础来说差距还较大,故在第1章增加了普通操作系统和嵌入式操作系统的区别,在第2章增加了队列、堆栈、计算机中断特殊问题,而在第3章重新编写了任务的概念等内容。但因这些内容有相当一部分并不属于操作系统的应有内容,不可能写得过多、过细,只能择其要点略做介绍,主要日的还是力图能使其作为索引为读者参考其他文献指引方向。至于有些读者希望将 C/OS-111纳入本书的内容问题,作者答复如下:

1,版权问题无法解决,故不可能将,C/OS-111纳人本教材。

2,作为入门乃至实用,uC/OS-11完全够用,如果在实际应用中觉得太小,还有Linux和其他操作系统可用。

3.pC/OS-111的扩展在某种程度上失去了它易学易用的特点。

参与本书编写工作的作者有任哲、房红征、曹靖。

再次感谢读者的厚爱!

有人说,嵌入式系统的应用和发展是计算机技术自桌面系统和网络技术之后,IT产业和IT技术的又一个新的重大进展。

事实的确如此。就现在的情况来看,在当今人们的生产和生活中,嵌入式系统的应用和影响无处不在。暂且不论火箭、地球卫星、汽车生产线,也不论先进的武器装备系统,就是在日常生活中人们几乎天天离不开的移动电话、空调器、数码相机、洗衣机、电饭锅、电热水器等装置和设备中,都有嵌人式系统在暗暗地发挥着控制作用,从而使这些装置和设备具有了较高的自动化水平,甚至体现出了某种智能性,为人们提供了更为体贴、更为周到的服务。可以期望,就在不远的将来,普通百姓还会用到地球卫星定位系统、高级音像系统、智能可视电话、智能采暖设备、个人医疗保健设备、家用机器人等更为人性化的装置和设备,从而使人们的生活更舒适,工作效率更高。然而,这一切无不依赖于嵌入式系统技术的发展和应用。

众所周知,我国经济建设正处在一个高速发展时期,我国正在成为世界电子制造业的重要基地之一,从而产生了对嵌入式系统技术及相关技术人才的巨大需求。面对这种日益广泛而迫切的需求,各高等院校和培训机构都纷纷开设了与嵌入式系统技术相关的专业和课程,以期学生在校学习期间就能受到嵌入式系统技术方面的教育和训练。

但是,如何进行这方面的工作却遇到了挑战。从目前的情况来看,至少有两个主要的闲难:一是不论哪个专业都不可能投入大量的教学时数来专门用于嵌入式系统的教学;二是掌握嵌入式系统的技术和设计方法对学生的基础要求较高,任何一个专业都不可能以嵌入式系统为培养目标设置该专业的基础课程(至少在目前是这样)。因此作者认为,在目前的情况下,嵌入式系统的教学应该依托于各专业的现有课程体系,选准切入点,以学生初步掌握嵌入式系统的基本概念、基本理论、基本应用、基本设计方法和基本特点为教学目标,设置1-2门小型课较为合适。

作为嵌入式系统这种比较特殊的计算机系统,其基本构成仍然是硬件和软件两部分。对于硬件部分的教学,各专业可以在原来教学内容上根据嵌入式系统的硬件特点进行适当的修改和补充(这样不会增加过多的课时),而软件部分(主要是嵌入式操作系统)的教学,最好是对不同的专业做不同的处理。对于计算机专业来说,可以把原有的操作系统课程在内容上进行延伸,比如把一个实际的嵌入式操作系统(例如gC/OS-11)当作一个实例来介绍,这样既避免了原来操作系统课程过于空洞的弊端,同时又使学生了解了嵌人式操作系统,当然有条件的话(包括想把培养方向定为嵌人式系统的专业),也可以单独设置一门嵌入式操作系统的课程。因为计算机专业学生已经学过操作系统课程,所以单独设置的这门课程的内容就可以适当地丰富一些(如pCLinux和pC/Os-11).

对于非计算机专业来说,由于它们原来就没有操作系统课程,于是就应该单独设置一门嵌入式操作系统类的课程。课程的内容应以系统简单、概念清晰且有较强实用性的嵌入式操作系统为宜(例如pC/oS-11).

本书就是为使学生了解和初步掌握嵌入式操作系统特点、体系结构及实际应用而编写的教学用书。

适合对嵌入式操作系统感兴趣的工程技术人员阅读参考

前面小编分享了嵌入式实时操作系统μC/OS-II原理及应用第二版,其实此书已经更新到了第四版,图书库站及时的分享给大家嵌入式实时操作系统μC/OS-II原理及应用第四版电子版免费下载,增加了一些内容和修改,需要的自己拿。

qrssszzxt4b.pdf: https://t00y.com/f/560517-575959632-199163?p=311929 (访问密码:311929)


中信图书出版社全部书籍617本百度网盘福利
西部数码域名服务器优惠券老薛主机优惠券
请通过以下商城购买正版书籍
图书库 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:《嵌入式实时操作系统μC/OSII原理及应用第4版》电子书本站电子书版权归原作者及开发商所有,仅限个人测试交流学习之用,请在下载后24小时内删除。若有违反您个人权益,请留言反馈删除相关信息。

喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址