首页>参考读物>电子电工>电子工程

μC/OS-Ⅱ嵌入式系统设计
作者 : 丁山 著
出版日期 : 2016-08-10
ISBN : 978-7-111-53867-7
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 342
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书主要介绍基于Cortex-M微控制器的μC/OS-Ⅱ嵌入式系统设计,内容包括:实时操作系统内核基础、任务管理、任务调度、系统启动与初始化、中断和时间管理、事件管理、消息管理、内存管理、移植方式及其在Cortex-M微控制器上的移植方法。最后对轻量级TCP/IP-μC/TCP-IP协议栈设计进行概要介绍。

图书特色

不同于其他从概念入手的书籍,本书从实现的角度全面诠释操作系统的基本概念。
本书立足实战,是唯一一本结合CAN总线讲解嵌入式操作系统应用的书籍。
本书有配套Cortex-M4硬件实验平台完整的开发实例及源代码,具有很强的操作性。

封底
本书基于ARM Cortex-M4系列微处理器,详细地介绍了嵌入式实时操作系统μC/OS-Ⅱ内核的任务管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的设计原理。为帮助读者理解书中的内容以进行嵌入式系统设计,本书介绍了使用集成开发环境CCS6.0,并附加了大量实例。还介绍了μC/OS-Ⅱ的移植方法。最后,以CAN总线为例介绍了嵌入式系统设计等相关内容。
本书中程序实例具有典型性,随书收录了本书例题的源代码,可供读者参考和学习。此外,本书还配有免费的教学课件,选用本书作为教材的教师和学生可从华章网站www.hzbook.com下载。
本书可作为高等院校电子信息类、计算机科学与技术等专业高年级本科生和研究生的教材,也可以作为从事μC/OS-Ⅱ嵌入式系统设计的工程技术人员的参考用书。
本书特色
本书既介绍了嵌入式实时操作系统的原理,还给出了嵌入式系统设计的实例,宜教宜学。
源代码丰富,本书结合ARM Cortex-M4系列微处理器开发板,开发了很多实例,可作为嵌入式系统开发的基础。
本书内容丰富,叙述浅显易懂,有助于读者快速掌握设计嵌入式系统的必要知识。


丁 山 东北大学计算机科学与工程学院副教授,1989年本科毕业于东北工学院(现东北大学)计算机专业,2003年博士毕业于日本名古屋工业大学电气信息工学专业。主要研究方向是嵌入式与实时系统构成,以及嵌入式与实时调度算法。

图书前言

从20世纪70年代单片机出现起,随着各式各样的嵌入式微处理器、微控制器的大规模使用,嵌入式系统已经广泛应用于消费电子、有线、移动通信、汽车、医疗、工业控制、航空航天以及国防等领域的民用和军用电子设备中。在当前嵌入式芯片市场上,ARM芯片是嵌入式微处理器中的佼佼者,是很多数字电子产品的核心。ARM处理器的优势就在于体积小、功耗低、价格低廉,并且还能提供优异的性能,确实是众多嵌入式设备的首选。ARM将在低端微控制器市场逐步取代传统的8位/16位单片机。其中ARM的Coretex-M系列是经过优化的专门针对低端控制应用的处理器核,与传统的单片机相比,它的处理能力更加优秀,并且其价格还非常便宜。
芯片处理能力的提高能够将嵌入式操作系统应用于嵌入式系统设计,μC/OS-Ⅱ很适合开发那些对系统要求不是很苛刻,且RAM和ROM有限的Coretex-M系列处理器。μC/OS-Ⅱ是在μC-OS的基础上发展起来的,是美国嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-Ⅱ能管理256个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。μC/OS-Ⅱ是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,适合于广大的嵌入式系统开发人员和爱好者入门学习,以及供高校教学和科研。本书以介绍嵌入式系统开发的核心——嵌入式实时操作系统μC/OS-Ⅱ为重点,并结合具体实验例程,有助于读者深入理解和掌握嵌入式实时操作系统,内容涵盖了嵌入式实时操作系统的相关领域。
本书力求全面、实用,并对例题做出了详细的分析和解释,这样既可以帮助读者学习理解知识和概念,降低学习难度,又具有启发性,帮助读者更加轻松、迅速地理解和掌握本书内容。
本书由11章组成,各章具体内容如下:
第1章主要对嵌入式实时操作系统进行概述,介绍嵌入式实时操作系统概念、体系结构、功能及特点、发展趋势以及嵌入式实时操作系统的实时性和可靠性等概念,并且讲解制约实时性的几个约束条件。最后对TI公司推出的用于开发DSP的集成开发环境CCS(Code Composer Studio)进行介绍,以便为后续调试程序做准备。
第2章介绍了嵌入式硬件系统的组成、主流的嵌入式微处理器ARM系列和MIPS系列、总线、嵌入式系统存储器结构及输入/输出接口和设备。本章还对ARM的体系结构和基于ARM v7体系结构的Cortex-M4处理器进行了详细介绍。
第3章介绍了嵌入式实时内核的基础知识,主要从三个方面进行了介绍。首先在内核概要部分,重点阐述了μC/OS-Ⅱ内核的相关特点,具体涉及微内核、多任务操作系统等相关概念。接着具体介绍内核的主要功能,其中包括任务管理、同步与通信管理、中断管理、时间管理、对共享资源的互斥管理、内存管理、I/O管理、出错管理、用户扩展管理、电源管理共10种主要功能,其中同步与通信管理又涉及信号量、互斥信号量、事件标志组、消息邮箱和消息队列等多种机制,这些机制高效全面地实现了任务与任务、任务与中断服务程序之间的同步与通信功能。最后主要对内核的性能指标进行了阐述,国际上常见的实时操作系统有很多,例如VxWorks、μC/OS-Ⅱ等不同内核的实时操作系统。因此要评价这些操作系统的好坏,应重点对实时性进行评价。
第4章主要对任务的存储结构进行介绍,其中包括任务代码、任务控制块和任务堆栈。任务堆栈用来实现任务切换、函数调用等基本功能。任务控制块用来存储任务的基本信息,包括任务堆栈的位置、任务优先级、任务状态等。μC/OS-Ⅱ系统采用双向链表的形式管理任务控制块,包括已经被任务使用的任务块链表和未被使用的空任务块链表。为了快速找到系统中优先级最高的就绪任务,μC/OS-Ⅱ采用任务就绪表管理当前系统中所有处于就绪状态的任务。
第5章对任务的创建、删除、挂起以及恢复等任务管理功能进行介绍,并且讲解了任务调度的基本原理;最后详细分析了μC/OS-Ⅱ操作系统的初始化和启动过程。
第6章主要介绍了μC/OS-Ⅱ的中断处理过程和时钟管理,并讲解了μC/OS-Ⅱ的中断管理和中断服务程序的结构;μC/OS-Ⅱ的系统时钟及实现方法;时间管理服务包括延时、取消及延时等操作。
第7章通过阐述时间管理的数据结构、事件管理程序、信号量结构、信号量管理程序、互斥信号量结构、互斥信号量管理程序、事件标志组结构,以及事件标志组管理程序,介绍了μC/OS-Ⅱ实时多任务操作系统的事件管理机制,并给出了相应的信号量、互斥信号量和事件标志组的具体应用实例,方便读者的学习与理解。
第8章介绍了消息管理的相关内容。μC/OS-Ⅱ中存在多种通信机制,除了信号量等事件管理外,μC/OS-Ⅱ实时操作系统内核中还包括消息邮箱和消息队列通信机制。本章通过对消息邮箱的数据结构、消息邮箱管理程序、消息队列结构、消息队列管理程序的阐述,详细介绍了管理消息传递的过程。
第9章主要对μC/OS-Ⅱ的动态内存管理方法和内存管理中提供的服务进行了介绍。μC/OS-Ⅱ通过定义一个二维数组,在内存中划分了一个内存分区,并将分区又分成了大小相同的内存块,组建空闲内存块链表。操作系统通过内存控制块对每一个内存分区进行管理。μC/OS-Ⅱ操作系统内存管理服务包括创建内存分区、申请内存块、释放内存块、查询内存分区的状态、读取内存分区名称的有效长度和设置内存分区名称。
第10章介绍了采用TI公司的TM4C123GH6PM微控制器的TM4C123G LaunchPad开发板对μC/OS-Ⅱ的移植步骤。该章详细介绍了如何修改与处理器相关的三个文件。移植完成后如何进行测试,以保证操作系统正确运行。
第11章以控制器局域网络CAN为例介绍如何设计一个嵌入式系统。本章主要介绍CAN模块的相关知识,然后介绍Tiva微控制器CAN总线功能,包括CAN的初始化和配置、CAN数据的收发、CAN位速率的控制、CAN的中断处理以及CAN的测试模式。最后给出实例加深读者对CAN的理解。
本书内容全面、重点突出。书中对知识点的介绍循序渐进、由浅入深。书内所有示例均可运行通过,本书还配有免费的电子课件,欢迎选用本书作为教材的老师登录www.hzbook.com本书页面下载。
对参加本书编写、校对以及程序测试工作的研究生金驰和黄瑞峰的支持,在此表示感谢!
由于作者水平有限,书中难免有错误和不足之处,恳请各位专家和读者批评指正。

丁山
2016年4月

上架指导

嵌入式

封底文字

本书基于ARM Cortex-M4系列微处理器,详细地介绍了嵌入式实时操作系统μC/OS—Ⅱ内核的任务的管理和调度、系统时钟和节拍服务、时间管理、中断、任务的通信和同步、内存的设计原理。为帮助读者理解书中的内容以进行嵌入式系统设计,本书介绍了使用集成开发环境CCS6.0并附加了大量实例。还介绍了μC/OS—Ⅱ的移植方法。最后,还以CAN总线为例介绍了嵌入式系统设计等相关内容。
本书内容丰富,叙述浅显易懂,程序实例具有典型性,随书收录了本书的例题的源代码,可供读者参考和学习,本书配有免费的教学课件,选用本书作为教材的教师和学生可从www.hzbook.com下载。
本书可作为高等院校电子信息类、计算机科学与技术等专业的高年级学生和研究生的教材,也可以作为学习μC/OS-Ⅱ嵌入式系统设计的工程技术人员的参考用书。

本书特色
教学与科研相结合,介绍了嵌入式实时操作系统的原理,也给出嵌入式系统设计的实例,能够实现教学与科研两个目的。
源代码丰富,本书结合ARM Cortex-M4系列微处理器开发板,开发很多实例,可作为嵌入式系统开发的基础。
本书内容丰富,叙述浅显易懂,图文并茂,能够使学生能够掌握设计嵌入式系统的必要的知识,并配有免费的教学课件。

作者简介

丁山 著:暂无简介

图书目录

前言
第1章 绪论  1
1.1 嵌入式实时操作系统概要  1
1.2 嵌入式实时操作系统  2
1.2.1 体系结构  3
1.2.2 功能及特点  5
1.2.3 分类介绍  7
1.3 嵌入式系统实时性的概念  9
1.4 约束条件  11
1.4.1 时间约束  11
1.4.2 优先约束  12
1.4.3 资源约束  13
1.5 搭建开发环境  14
1.5.1 CCS 6.0的安装  14
1.5.2 利用CCS 6.0新建工程  18
本章小结  21
练习与思考题  21
第2章 嵌入式硬件系统  22
2.1 嵌入式系统的硬件构成  22
2.2 嵌入式微处理器概述  23
2.2.1 嵌入式微处理器的存储体系结构  23
2.2.2 嵌入式微处理器的指令集  24
2.2.3 主流的嵌入式微处理器  25
2.3 总线  26
2.4 存储器  28
2.5 输入/输出接口和设备  28
2.6 ARM系列  28
2.6.1 ARM 指令集体系结构的演变   29
2.6.2 ARM产品系列  33
2.7 ARM Cortex-M4系列处理器  41
2.7.1 ARM Cortex-M4处理器的特点  41
2.7.2 Cortex-M4处理器的结构  42
2.7.3 Cortex-M4的操作模式和特权级别  46
2.7.4 Cortex-M4的寄存器组  47
2.7.5 Cortex-M4的异常处理  51
2.7.6 Cortex-M4的存储器映射  55
2.8 TM4C123GH6PM微控制器  57
2.8.1 TM4C123GH6PM微控制器的电气特性与封装  57
2.8.2 TM4C123GH6PM微控制器的特性  58
2.8.3 TM4C123GH6PM微控制器的结构  59
2.9 TM4C123GH6PM实验板卡  61
2.10 RGB LED点亮实验  65
2.10.1 建立新的CCS工程  65
2.10.2 源代码解析  70
本章小结  72
练习与思考题  72
第3章 嵌入式实时内核  73
3.1 内核概要  73
3.1.1 μC/OS-Ⅱ的内核  73
3.1.2 调度算法  74
3.1.3 不可剥夺型内核  74
3.1.4 可剥夺型内核  75
3.1.5 数据类型的重定义与宏定义  76
3.2 内核功能  77
3.2.1 任务管理  77
3.2.2 同步与通信管理  78
3.2.3 中断管理  81
3.2.4 时间管理  82
3.2.5 对共享资源的互斥管理  83
3.2.6 内存管理  84
3.2.7 I/O管理  85
3.2.8 出错管理  86
3.2.9 用户扩展管理  86
3.2.10 电源管理  87
3.3 内核性能测试实例  87
3.3.1 概述  87
3.3.2 中断时序图  88
3.3.3 中断延迟时间  89
3.3.4 内核最大关中断时间  90
3.3.5 中断响应时间  92
3.3.6 中断恢复时间  95
3.3.7 非屏蔽中断  97
3.3.8 中断处理时间  98
3.3.9 任务切换时间  98
3.3.10 任务响应时间  103
3.3.11 系统调用的执行时间  103
3.3.12 有关时间确定性的测试  104
3.3.13 嵌入式实时内核的存储开销  105
本章小结  105
练习与思考题  106
第4章 任务管理的数据结构  107
4.1 任务及其存储结构  107
4.2 任务状态  108
4.3 任务生成代码实例  109
4.4 任务的优先级  111
4.5 系统任务  111
4.6 任务堆栈  115
4.6.1 任务堆栈的创建  115
4.6.2 任务堆栈的增长方向  115
4.6.3 任务堆栈的初始化  116
4.7 任务控制块  116
4.7.1 任务控制块的结构  117
4.7.2 任务控制块链表  119
4.7.3 任务控制块的初始化  121
4.8 任务就绪表  123
4.8.1 任务就绪表的结构  123
4.8.2 任务就绪表的操作  126
4.9 临界段  131
本章小结  132
练习与思考题  132
第5章 任务管理  133
5.1 创建任务  133
5.1.1 用OSTaskCreate创建任务  133
5.1.2 用OSTaskCreateExt创建任务  135
5.2 删除任务  137
5.3 请求删除任务  143
5.4 挂起和恢复任务  144
5.4.1 任务挂起  145
5.4.2 任务恢复  146
5.5 任务优先级别的修改  148
5.6 任务TCB信息的获取  151
5.7 任务堆栈检查  152
5.8 任务调度  154
5.8.1 μC/OS-Ⅱ的调度算法  154
5.8.2 μC/OS-Ⅱ的任务级调度  154
5.8.3 任务级任务切换函数OS_TASK_SW( )  157
5.9 μC/OS-Ⅱ的初始化和多任务的启动  161
5.9.1 μC/OS-Ⅱ的初始化  161
5.9.2 μC/OS-Ⅱ的多任务启动  167
5.10 任务级调度实例  168
5.10.1 程序功能说明  168
5.10.2 程序实现及源代码解析  169
5.10.3 CCS工程导入  172
本章小结  173
练习与思考题  173
第6章 中断与时钟  174
6.1 μC/OS-Ⅱ的中断管理  174
6.1.1 μC/OS-Ⅱ的中断管理过程  174
6.1.2 进入中断处理函数  175
6.1.3 退出中断处理函数  176
6.1.4 中断级任务切换函数  177
6.2 μC/OS-Ⅱ的时钟  178
6.2.1 系统时钟中断服务程序  178
6.2.2 时钟节拍服务函数  179
6.3 μC/OS-Ⅱ的时间管理  181
6.3.1 任务延时函数  182
6.3.2 按时分秒延时函数  182
6.3.3 取消任务的延时函数  184
6.3.4 获取系统时间函数  185
6.3.5 设置系统时间函数  185
6.4 中断管理实例  186
6.4.1 程序功能说明  186
6.4.2 程序实现及源代码解析  186
本章小结  188
练习与思考题  188
第7章 任务同步机制与通信方式  189
7.1 任务同步与事件管理  189
7.1.1 任务之间的关系  189
7.1.2 同步与通信  190
7.1.3 临界区  191
7.1.4 信息传递  191
7.2 事件管理的数据结构  192
7.2.1 事件  192
7.2.2 事件控制块ECB  193
7.2.3 事件等待组和事件等待表  194
7.2.4 事件控制块空闲链表  196
7.2.5 事件管理程序  196
7.3 信号量  199
7.3.1 信号量概述  199
7.3.2 数据结构  200
7.3.3 信号量的操作  201
7.3.4 应用举例  209
7.4 互斥信号量  214
7.4.1 任务优先级的反转现象  215
7.4.2 互斥型信号量概述  216
7.4.3 数据结构  217
7.4.4 互斥信号量的操作  217
7.4.5 应用举例  228
7.5 事件标志组  232
7.5.1 事件标志组概述  232
7.5.2 事件标志组的数据结构  233
7.5.3 事件标志组的操作  236
7.5.4 事件标志组管理实例  249
本章小结  255
练习与思考题  255
第8章 消息管理  256
8.1 消息邮箱  256
8.1.1 消息邮箱概述  256
8.1.2 消息邮箱的数据结构  257
8.1.3 消息邮箱的操作  257
8.1.4 消息邮箱实例  265
8.2 消息队列  267
8.2.1 消息队列概述  267
8.2.2 消息队列的数据结构  268
8.2.3 消息队列的操作  270
8.2.4 消息队列实例  278
本章小结  281
练习与思考题  281
第9章 内存管理  282
9.1 μC/OS-Ⅱ的内存管理机制  282
9.2 内存控制块  282
9.2.1 内存分区  283
9.2.2 内存控制块的结构  283
9.2.3 内存控制块的初始化  283
9.3 创建内存分区  285
9.4 申请一个内存块  287
9.5 释放一个内存块  288
9.6 查询内存分区的状态  289
9.7 读取内存分区名称的有效长度  290
9.8 设置内存分区名称  291
9.9 内存管理应用实例  292
9.9.1 程序功能说明  292
9.9.2 程序实现及源代码分析  292
本章小结  296
练习与思考题  296
第10章 μC/OS-Ⅱ的移植  297
10.1 移植说明  297
10.2 移植详解  298
10.2.1 工程的建立和目录结构  298
10.2.2 板级支持包  298
10.2.3 文件os_cpu.h的编写  298
10.2.4 文件os_cpu_c.c的编写  300
10.2.5 文件os_cpu_a.asm的编写  303
10.3 测试μC/OS-Ⅱ  309
本章小结  310
练习与思考题  310
第11章 CAN总线应用设计  311
11.1 CAN协议概述  311
11.1.1 CAN总线的特点  311
11.1.2 CAN协议报文的帧类型  312
11.2 Tiva微控制器的CAN接口  314
11.2.1 CAN模块内部结构  314
11.2.2 信号描述  315
11.3 功能说明  316
11.3.1 初始化和配置  316
11.3.2 数据收发  317
11.3.3 位速率的控制  323
11.3.4 中断处理  324
11.3.5 测试模式  325
11.4 应用举例  326
本章小结  331
练习与思考题  332

教学资源推荐
作者: (美)Sergio Franco 著
作者: (美)Matthew N. O. Sadiku,Sarhan M. Musa,Charles K. Alexander著
作者: 陈士英 郭烔杰 编著
作者: (美)杰夫瑞 S.比斯利(Jeffrey S.Beasley );乔纳森 D.海默(Jonathan D. Hymer);加里 M.米勒(Gary M.Miller)著
参考读物推荐
作者: [美]斯图尔特·萨瑟兰(Stuart Sutherland) 当·米尔斯(Don Mills) 著
作者: [美] 丹尼尔R.托马尔(Daniel R. Tomal)阿拉姆 S.亚建尼(Aram S. Agajanian) 著
作者: 胡尔佳 编著