注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统其他操作系统嵌入式实时操作系统μC/OS-Ⅱ

嵌入式实时操作系统μC/OS-Ⅱ

嵌入式实时操作系统μC/OS-Ⅱ

定 价:¥79.00

作 者: (美)Jean J.Labrosse著;邵贝贝等译
出版社: 北京航空航天大学出版社
丛编项:
标 签: 嵌入式计算机

ISBN: 9787810772907 出版时间: 2003-05-01 包装: 简裝本
开本: 26cm 页数: 616 字数:  

内容简介

  几年前,邵贝贝教授将MicroC/OS-IITheReal-TimeKernel一书译成了中文,并在中国出版,说明该书的价值得到了更多人的认可。2002年上半年,笔者出版了这本书的第2版本,对书的内容和书后所附的源代码都做了大量的改动。笔者相信,翻译第2版本的工作量决不会少于第1版本。感谢邵教授百忙中抽时间完成这一繁琐的工作。过去几年中,一直有很多中国用户与笔者保持着通信联系。中国用户对嵌入式系统、特别是对μC/OS-II表现出极大的兴趣。多数通信交往来自学术界,随着基地在中国的电子产品制造业的发展,他们对μC/OS-II的兴趣也越来越浓厚。对于大专院校的学生,μC/OS-II是实时操作系统(RTOS)的极好教材。试着用一用RTOS,获得一些RTOS的使用经验,不需要花什么钱,μC/OS-II是在校学生完成研究生论文和本科生毕业设计的绝好工具。μC/OS-II可以使读者专注于自己的研究课题,而不必为程序结构花很多时间。有大量移植范例可以从Micrium的??(www.micrium.com)上免费下载。μC/OS-II的性能可以与许多高端商业软件产品媲美,某些性能比它们还要好。μC/OS-II已经在世界范围内得到广泛使用,包括诸多领域,如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制等。实际上,μC/OS-II已经通过了非常严格的测试,并且得到了美国航空管理局(FederalAviationAdministration)的认证,可以用在飞行器上。这说明μC/OS-II是稳定可靠的,可用于与人性命攸关的安全紧要(safetycritical)系统;当然,也可用于非安全紧要系统。μC/OS-II一直在不断地向前发展。书的出版有个过程,书出版时,书中描述的可能已不是当前的最新版本;故我请邵教授在翻译这本书时,仍用μC/OS-II的V2.52版本,以同原书版本一致。笔者建议,如果读者只想学习μC/OS-II,仍应使用V2.52版本。如果想将μC/OS-II嵌入到商业产品中,请与我们Micrium公司(或我们的中国代理)联系,以获得使用许可证并得到最新版本。关于使用许可证,可直接向以下地址申请:licensing@micrium.com,请附上用户姓名、公司名以及联系电话。关于μC/OS-II今后升级方面的设想是多方面的,请关注Micrium网站。笔者打算今后将μC/OS-II可以管理的任务数目增加到250个,进一步改进调度算法,使之效率更高。将来的μC/OS-II可以在任务或中断服务子程序中直接给别的任务发消息,而不必通过诸如消息队列等。也还会给μC/OS-II增加一些新的功能函数。1999年,笔者注册了一家名为Micrium的公司,目的是开发并销售类似μC/OS-II的软件。目前可提供的其他软件产品还有:●μC/GUI(嵌入式用户图形界面);●μC/FS(嵌入式文件系统)。Micrium计划中的产品也都是专门面向嵌入式系统应用的。所有产品都提供源代码,其中大多数软件的质量也同μC/OS-II一样好。多年来,我一直参加美国的嵌入式系统年会(EmbeddedSystemConference),并在会上做两三次讲演。我也打算参加一次中国的嵌入式系统年会,或许我们能在会上见面。如果发e-mail给我,我会尽力给予回复;但是请用英文书写,以谅解我不懂中文。不必顾虑自己的英文不够好,总比我的中文要好得多吧。如同笔者从写书得到乐趣,愿读者从阅读此书中得到更多的乐趣。μC/OSII是著名的、源码公开的实时内核,是专为嵌入式应用设计的,可用于各类8位、16位和32位单片机或DSP。从μC/OS算起,该内核已有10余年应用史,在诸多领域得到了广泛应用。本书是MicroC/OSIITheRealTimeKernel一书的第2版本,在第1版本(V2.0)基础上做了重大改进与升级。通过对μC/OSII源代码的分析与描述,讲述了多任务实时的基本概念、竞争与调度算法、任务间同步与通信、存储与定时的管理以及如何处理优先级反转问题;介绍如何将μC/OSII移植到不同CPU上,如何调试移植代码。在所附光盘中,给出已通过FAA安全认证的μC/OSIIV2.52的全部源码以及可在PC机上运行的移植范例。本书可用做高等院校嵌入式实时系统课程教材或工程师培训教材,也可供嵌入式应用开发人员研究与使用。

作者简介

暂缺《嵌入式实时操作系统μC/OS-Ⅱ》作者简介

图书目录

前言1
     概述7
    
     第1章 初识μC/OSII 1
     1.00 安装 μC/OSII 1
     1.01 范例11
     1.02 范例210
     1.03 范例320
     1.04 范例430
     第2章 实时系统概念34
     2.00 前/后台系统34
     2.01 代码的临界段35
     2.02 资源36
     2.03 共享资源36
     2.04 多任务36
     2.05 任务36
     2.06 任务切换38
     2.07 内核38
     2.08 调度39
     2.09 不可剥夺型内核39
     2.10 可剥夺型内核40
     2.11 可重入函数42
     2.12 时间片轮番调度法44
     2.13 任务优先级44
     2.14 静态优先级44
     2.15 动态优先级44
     2.16 优先级反转44
     2.17 任务优先级分配47
     2.18 互斥条件49
     2.18.01 关中断和开中断49
     2.18.02 测试并置位操作50
     2.18.03 禁止,然后允许任务切换50
     2.18.04 信号量51
     2.19 死锁55
     2.20 同步56
     2.21 事件标志58
     2.22 任务间通信59
     2.23 消息邮箱59
     2.24 消息队列60
     2.25 中断61
     2.26 中断延迟62
     2.27 中断响应62
     2.28 中断恢复时间63
     2.29 中断延迟. 响应及恢复64
     2.30 中断处理时间66
     2.31 非屏蔽中断66
     2.32 时钟节拍67
     2.33 对存储器的需求69
     2.34 使用实时内核的优. 缺点70
     2.35 实时系统小结71
     第3章 内核结构72
     3.00 临界段, OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()73
     3.01 任务76
     3.02 任务状态78
     3.03 任务控制块(OS_TCB)80
     3.04 就绪表88
     3.05 任务调度91
     3.06 任务级的任务切换, OS_TASK_SW()92
     3.07 给调度器上锁和开锁96
     3.08 空闲任务97
     3.09 统计任务98
     3.10 μC/OSII中的中断103
     3.11 时钟节拍107
     3.12 μC/OSII初始化111
     3.13 μC/OSII的启动113
     3.14 获取当前μC/OSII的版本号115
     第4章 任务管理116
     4.00 建立任务, OSTaskCreate()117
     4.01 建立任务, OSTaskCreateExt()119
     4.02 任务堆栈122
     4.03 堆栈检验, OSTaskStkChk()125
     4.04 删除任务, OSTaskDel()128
     4.05 请求删除任务, OSTaskDelReq()132
     4.06 改变任务的优先级, OSTaskChangePrio()135
     4.07 挂起任务, OSTaskSuspend()138
     4.08 恢复任务, OSTaskResume()140
     4.09 获得任务的信息, OSTaskQuery()142
     第5章 时间管理144
     5.00 任务延时函数, OSTimeDly()144
     5.01 按时. 分. 秒延时函数, OSTimeDlyHMSM()146
     5.02 恢复延时的任务, OSTimeDlyResume()149
     5.03 系统时间, OSTimeGet()和OSTimeSet()150
     第6章 事件控制块152
     6.00 将任务置于等待事件的任务列表156
     6.01 从等待事件的任务列表中使任务脱离等待状态156
     6.02 在等待事件的任务列表中查找优先级最高的任务157
     6.03 空余事件控制块链表159
     6.04 初始化一个事件控制块, OS_EventWaitListInit()159
     6.05 使一个任务进入就绪态, OS_EventTaskRdy()161
     6.06 使一个任务进入等待某事件发生状态, OS_EventTaskWait()163
     6.07 由于等待超时而将任务置为就绪态, OS_EventTO()163
     第7章 信号量管理165
     7.00 建立一个信号量, OSSemCreate()166
     7.01 删除一个信号量, OSSemDel()168
     7.02 等待一个信号量, OSSemPend()171
     7.03 发出一个信号量, OSSemPost()173
     7.04 无等待地请求一个信号量, OSSemAccept()175
     7.05 查询一个信号量的当前状态, OSSemQuery()176
     第8章 互斥型信号量管理179
     8.00 建立一个互斥型信号量, OSMutexCreate()182
     8.01 删除一个互斥型信号量, OSMutexDel()185
     8.02 等待一个互斥型信号量(挂起), OSMutexPend()187
     8.03 释放一个互斥型信号量, OSMutexPost()191
     8.04 无等待地获取互斥型信号量(任务不挂起), OSMutexAccept()193
     8.05 获取互斥型信号量的当前状态, OSMutexQuery() 195
     第9章 事件标志组管理198
     9.00 深入事件标志组199
     9.01 建立一个事件标志组, OSFlagCreate()202
     9.02 删除一个事件标志组, OSFlagDel()204
     9.03 等待事件标志组的事件标志位, OSFlagPend()206
     9.04 置位或清0事件标志组中的事件标志, OSFlagPost()214
     9.05 无等待地获得事件标志组中的事件标志, OSFlagAccept()223
     9.06 查询事件标志组的状态, OSFlagQuery()226
     第10章 消息邮箱管理228
     10.00 建立一个邮箱, OSMboxCreate()229
     10.01 删除一个邮箱, OSMboxDel()231
     10.02 等待邮箱中的消息, OSMboxPend()234
     10.03 向邮箱发送一则消息, OSMboxPost()236
     10.04 向邮箱发送一则消息, OSMboxPostOpt()238
     10.05 无等待地从邮箱中得到一则消息, OSMboxAccept()240
     10.06 查询一个邮箱的状态, OSMboxQuery()241
     10.07 用邮箱作为二值信号量243
     10.08 用邮箱实现延时, 而不使用OSTimeDly()243
     第11章 消息队列管理245
     11.00 建立一个消息队列, OSQCreate()249
     11.01 删除一个消息队列, OSQDel()251
     11.02 等待消息队列中的消息, OSQPend()253
     11.03 向消息队列发送一则消息(FIFO), OSQPost()256
     11.04 向消息队列发送一则消息(LIFO), OSQPostFront()258
     11.05 向消息队列发送一则消息(FIFO或LIFO), OSQPostOpt()259
     11.06 无等待地从消息队列中获得消息, OSQAccept()262
     11.07 清空消息队列, OSQFlush()263
     11.08 获取消息队列的状态, OSQQuery()264
     11.09 使用消息队列读取模拟量的值267
     11.10 消息队列用做计数型信号量268
     第12章 内存管理270
     12.00 内存控制块271
     12.01 建立一个内存分区, OSMemCreate()272
     12.02 分配一个内存块, OSMemGet()275
     12.03 释放一个内存块, OSMemPut()277
     12.04 查询一个内存分区的状态, OSMemQuery()278
     12.05 使用内存分区279
     12.06 等待内存分区中的一个内存块281
     第13章 移植μC/OSII283
     13.00 开发工具286
     13.01 目录和文件286
     13.02 INCLUDES.H287
     13.03 OS_CPU.H287
     13.03.01 与编译器相关的数据类型289
     13.03.02 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()289
     13.03.03 OS_STK_GROWTH293
     13.03.04 OS_TASK_SW()293
     13.04 OS_CPU_C.C294
     13.04.01 OSTaskStkInit()294
     13.04.02 OSTaskCreateHook()298
     13.04.03 OSTaskDelHook()298
     13.04.04 OSTaskSwHook()299
     13.04.05 OSTaskStatHook()299
     13.04.06 OSTimeTickHook()299
     13.04.07 OSTCBInitHook()299
     13.04.08 OSTaskIdleHook()300
     13.04.09 OSInitHookBegin()301
     13.04.10 OSInitHookEnd()301
     13.05 OS_CPU_A.ASM301
     13.05.01 OSStartHighRdy()301
     13.05.02 OSCtxSw()302
     13.05.03 OSTickISR()304
     13.05.04 OSIntCtxSw()306
     13.06 测试移植代码307
     13.06.01 确保C编译器. 汇编编译器及链接器正常工作307
     13.06.02 验证OSTaskStkInit()和 OSStartHighRdy()函数311
     13.06.03 验证OSCtxSw()函数313
     13.06.04 验证OSIntCtxSw( )和 OSTickISR()函数316
     第14章 μC/OSII在80x86上的移植333
     14.00 开发工具335
     14.01 目录和文件336
     14.02 INCLUDES.H文件336
     14.03 OS_CPU.H文件337
     14.03.01 OS_CPU.H, 数据类型338
     14.03.02 OS_CPU.H, OS_ENTER_CRITICAL()及OS_EXIT_CRITICAL()338
     14.03.03 OS_CPU.H, 堆栈方向340
     14.03.04 OS_CPU.H和OS_TASK_SW()340
     14.03.05 OS_CPU.H, 时钟节拍频率340
     14.03.06 OS_CPU.H,浮点仿真341
     14.04 OS_CPU_C.C文件341
     14.04.01 任务堆栈初始化函数OSTaskStkInit()342
     14.04.02 浮点仿真任务栈初始化函数OSTaskStkInit_FPE_x86()344
     14.04.03 任务建立接口函数OSTaskCreateHook()350
     14.04.04 任务删除接口函数OSTaskDelHook()351
     14.04.05 任务切换接口函数OSTaskSwHook()351
     14.04.06 空闲任务接口函数OSTaskIdleHook()351
     14.04.07 统计任务接口函数OSTaskStatHook()351
     14.04.08 时钟节拍接口函数 OSTimeTickHook()352
     14.04.09 系统初始化开始接口函数OSInitHookBegin()352
     14.04.10 系统初始化结束接口函数OSInitHookEnd()352
     14.04.11 控制块初始化接口函数 OSTCBInitHook()353
     14.05 OS_CPU_A.ASM文件353
     14.05.01 OSStartHighRdy() 353
     14.05.02 OSCtxSw()355
     14.05.03 OSIntCtxSw()357
     14.05.04 OSTickISR()360
     14.06 内存占用366
     第15章 μC/OSII在带有硬件浮点运算单元的80x86上的移植372
     15.00 开发工具372
     15.01 目录和文件374
     15.02 INCLUDES.H文件375
     15.03 OS_CPU.H文件375
     15.03.01 OS_CPU.H, 数据类型376
     15.03.02 OS_CPU.H, OS_ENTER_CRITICAL()及OS_EXIT_CRITICAL()376
     15.03.03 OS_CPU.H, 堆栈方向376
     15.03.04 OS_CPU.H, OS_TASK_SW()377
     15.03.05 OS_CPU.H, 时钟节拍频率377
     15.03.06 OS_CPU.H, 浮点函数377
     15.04 OS_CPU_C.C文件378
     15.04.01 任务堆栈初始化函数OSTaskStkInit()378
     15.04.02 浮点处理单元初始化函数OSFPInit()380
     15.04.03 任务建立接口函数OSTaskCreateHook()381
     15.04.04 任务删除接口函数OSTaskDelHook()382
     15.04.05 任务切换接口函数OSTaskSwHook()384
     15.04.06 空闲任务接口函数OSTaskIdleHook()385
     15.04.07 统计任务接口函数OSTaskStatHook()385
     15.04.08 时钟节拍接口函数 OSTimeTickHook()385
     15.04.09 系统初始化开始接口函数OSInitHookBegin()386
     15.04.10 系统初始化结束接口函数 OSInitHookEnd() 386
     15.04.11 控制块初始化接口函数OSTCBInitHook() 386
     15.05 OS_CPU_A.ASM文件386
     15.05.01 OSStartHighRdy()387
     15.05.02 OSCtxSw()387
     15.05.03 OSIntCtxSw()390
     15.05.04 OSTickISR()393
     15.05.05 OSFPSave()394
     15.05.06 OSFPRestore()395
     15.06 内存占用396
     第16章 μC/OSII参考手册398
     第17章 μC/OSII配置手册509
     17.00 杂项509
     17.01 事件标志512
     17.02 消息邮箱512
     17.03 内存管理513
     17.04 互斥型信号量513
     17.05 消息队列514
     17.06 信号量515
     17.07 任务管理515
     17.08 时钟管理516
     17.09 函数概述517
     第18章 PC中的功能函数520
     18.00 字符显示520
     18.01 保存和恢复DOS的环境设置523
     18.02 程序运行时间的测量525
     18.03 其他函数525
     18.04 接口函数526
     18.05 参考文献544
    
     附录A C语言编程规约545
     A.01 文件头545
     A.02 文件包含546
     A.03 标志符命名法547
     A.04 缩写. 略语及助记符548
     A.05 注解550
     A.06 定义语句550
     A.07 数据类型551
     A.08 局部变量552
     A.09 函数原型552
     A.10 函数声明553
     A.11 缩进格式554
     A.12 语句和表达式556
     A.13 结构和联合557
     A.14 参考文献558
    
     附录B μC/OSII的使用许可证559
     B.01 用于学院和大学教学559
     B.02 用于商业目的559
     附录C μC/OSII速查手册560
     附录D 工具程序TO574
     附录E 参考文献576
     附录F 本书所附光盘578
     F.01 文件和目录579

本目录推荐