内容简介
μC/OS-Ⅲ是源码公开的商用嵌入式实时操作系统内核,由著名的μC/OS-Ⅱ发展而来。μC/OS-Ⅲ针对以ARM Cortex为代表的新一代CPU,面向带有可用于优先级查表的硬件指令(如,前导零计算指令)的CPU的嵌入式应用。μC/OS-Ⅲ允许利用这类高端CPU的特殊硬件指令来实现高效的任务调度算法,而无须使用μC/OS-Ⅲ的软件任务调度算法,而且μC/OS-Ⅲ支持时间片轮转调度算法。从核心任务调度算法的改变来看,μC/OS-Ⅲ已经是一个全新的嵌入式RTOS内核。从μC/OS算起,该内核已有20余年应用史,在诸多应用领域得到了广泛的认可。
《嵌入式实时操作系统μC/OS-3》在保留对实时操作系统基本概念阐述的基础上,详细讲解μC/OS-Ⅲ相比μC/OS-Ⅲ所做的大量扩展与改进,如同时支持时间片轮转调度算法和基于优先级的可剥夺型任务调度算法;用系统任务来处理中断队列以缩短关中断时间;以时间节拍任务来管理时钟节拍从而彻底实现硬实时;以直接向任务发信号方式简化任务间通信与同步等,特别是新增加的在线测试与调试功能,使应用开发更为方便。《嵌入式实时操作系统μC/OS-3》描述的源代码以及原文电子书可从Micriμm公司的官方网站上免费下载。
《嵌入式实时操作系统μC/OS-3》可用作高等院校嵌入式实时系统课程或工程师培训的教材,特别是那些以ARM Cortex、PowerPC、MIPS等高端CPU为实验平台的教学课程;也可供嵌入式应用开发人员研究与应用。
作者简介
Jean Labrosse,Jean Labrosse于1999年创立了Micriμm公司,他经常为波土顿和硅谷的嵌入式系统大会以及其他行业的会议提供讲座和报告。同时,他是两本嵌入式设计经典书籍的作者:μC/OS-ⅡThe Real-Time Kerne和Embedded Systems Building Blocks,Complete and Ready-to-UseModules in C.Jean Labrosse先生在加拿大魁北克省舍布鲁克大学获得电子工程学土学位和硕士学位。
本书翻译团队属清华大学工程物理系核系统控制与应用教研室,主要研究领域包括嵌入式系统、核电子学、数字电路等。2000年,该团队将实时内核μC/OS介绍到国内,先后翻译出版了《嵌入式实时操作系统μC/OS-Ⅱ》及其第2版,积极倡导并促进实时内核在同内嵌入式领域的推广和应用。团队自1994年开始开展飞思卡尔系列微控制器的科研、教学和培训工作,其系列教材和配套教辅设备被国内多所高校采用。结合自身专业特点,团队针对分布式同步控制、高可靠安全控制、高速数据采集、微弱信号测量等技术开展了长期研究,并在欧洲核子中心的LHCb试验、大亚湾中微子试验等大型科学试验以及列车信号自动控制等场合取得实际应用。在翻译团队的照片中,前排左起依次为曾鸣、宫辉、邵贝贝、龚光华、杜强,后排左起依次为吕海艇、薛涛、潘维滨、黄土琛、谌浦江、岳晓光。
内页插图
目录
第1章 概述
1.1 前后台系统
1.2 实时内核
1.3 RTOS(实时操作系统)
1.4 μC/OS-Ⅲ
1.5 μC/OS、μC/OS-Ⅱ、μC/OS-Ⅲ特性比较
1.6 关于本书
1.7 μC/Probe调试软件工具
1.8 本书的常用约定
1.9 各章内容
第2章 目录与文件
2.1 应用代码
2.2 CPU
2.3 板级支持包(BSP)
2.4 μC/OS-Ⅲ与CPU无关的源代码
2.5 μC/OS-Ⅲ与CPU相关的源代码
2.6 μC/CPU与CPU相关的源代码
2.7 μC/LIB可移植的库函数
2.8 小结
第3章 初识μC/OS-Ⅲ
3.1 单任务应用程序
3.2 有内核对象参与的多任务应用程序
第4章 临界段代码
4.1 关中断
4.1.1 测量中断关闭时间
4.2 给调度器上锁
4.2.1 测量调度器锁定时间
4.3 μC/OS-Ⅲ的某些功能会导致临界段代码长度增加
4.4 小结
第5章 任务管理
5.1 任务优先级的分配
5.2 栈空间大小的确定
5.3 任务栈溢出检测
5.4 任务管理函数
5.5 任务管理的内部原理
5.5.1 任务状态
5.5.2 任务控制块TCB
5.6 系统内部任务
5.6.1 空闲任务(OS_IdleTask()、os_core.c)
5.6.2 时钟节拍任务(OS_TickTask()、os_tick.c)
5.6.3 统计任务(OS_StatTask()、os_stat.c)
5.6.4 定时任务(OS_TmrTask()、os_tmr.c)
5.6.5 中断服务管理任务(OS_IntQTask()、os_int.c)
5.7 小结
第6章 任务就绪表,
6.1 优先级
6.2 就绪任务列表
6.3 向就绪任务列表中增加任务
6.4 小结
第7章 任务调度
7.1 可剥夺型调度
7.2 调度点
7.3 时间片轮转调度
7.4 调度的实现细节
7.4.1 0SSched()
7.4.2 0SIntExit()
7.4.3 0S_SchedRoundRobin()
7.5 小结
第8章 任务切换,
8.1 0SCtxSw()
8.2 0SIntCtxSw()
……
第9章 中断管理
第10章 任务挂起表
第11章 时间管理
第12章 定时器管理
第13章 资源管理
第14章 任务同步
第15章 消息传递
第16章 同时等待多个内核对象
第17章 存储管理
第18章 移植μC/OS-Ⅲ
第19章 程序运行时的各类统计信息
附录A μC/OS-Ⅲ参考手册
附录BμC/OS-Ⅲ配置手册
附录C 从μC/OS-Ⅱ迁移到μC/OS-Ⅲ
附录D MISRA-C:2004μC/OS-Ⅲ
附录E 参考文献
附录F μC/OS-Ⅲ许可政策
前言/序言
μC/OS-Ⅲ是什么?
μC/OS-Ⅲ是一个可裁剪、可固化、可剥夺型的实时内核,管理任务的数目不受限制。μC/OS-Ⅲ是第三代内核,可提供现代实时内核所能提供的所有服务,如资源管理、任务间同步、任务间通信等。然而,μC/OS-Ⅲ还能提供许多其他实时内核所没有的独特功能,如在系统运行时做性能测试,向任务直接发信号量或消息,以及同时等待多个内核对象等。为什么要出新版的μC/OS?
μC/OS系列实时内核最早于1992年推出,经过这么多年,根据成千上万μC/OS用户的反馈意见已经做了大量的改进。
μC/OS-Ⅲ是用户反馈意见和设计者经验的融合。μC/OS-Ⅲ摒弃了μC/OS-Ⅲ中那些很少使用的功能,而增加了一些新的、更有效的功能和服务。也许用户最一致的要求就是增加时间片轮转调度,这在μC/OS-Ⅲ中是不可能做到的,而现在它已成为μC/OS-Ⅲ的一个新功能。μC/OS-Ⅲ还提供了一些其他的功能,使当今一些新处理器的能力得到更好的发挥。μC/OS-Ⅲ是针对32位处理器开发和设计的,当然,它依然能很好地支持16位处理器,甚至一些8位处理器。这本书有哪些新内容?μC/OS-Ⅲ一书主要讲述μC/OS-Ⅱ产品自身,而对实时操作系统(RTOS)只做了简单的介绍。
智能嵌入式系统的核心驱动:深入浅出μC/OS-3实时操作系统 在当今科技飞速发展的时代,嵌入式系统已渗透到我们生活的方方面面,从智能家电到汽车电子,从工业自动化到医疗设备,无处不有其身影。而支撑这些复杂智能嵌入式系统高效、可靠运行的关键,往往在于其底层的心脏——实时操作系统(RTOS)。本书,将带您深入探索μC/OS-3,一款在嵌入式领域享有盛誉的实时内核,揭示其设计理念、核心机制及其在构建强大、响应迅速的嵌入式系统中的重要作用。 为何选择μC/OS-3? 许多开发者在面临嵌入式项目时,都会面临一个选择:是自行开发一个简易的实时调度器,还是引入一个成熟的RTOS?虽然简单的项目或许可以简化处理,但当系统复杂度增加,需要管理多个并发任务,并对时间响应有严格要求时,一个功能完善、经过验证的RTOS就显得尤为重要。μC/OS-3以其高度的可靠性、极小的代码占用空间、优秀的实时性能以及跨平台的特性,成为众多嵌入式开发者信赖的选择。 本书并非仅仅停留在对μC/OS-3 API的简单罗列,而是致力于从根本上理解RTOS的设计哲学。我们将从实时操作系统的基本概念入手,例如任务、优先级、中断、同步与通信机制等,为读者构建起坚实的理论基础。在此之上,我们将深入剖析μC/OS-3内核的每一个核心组件,包括: 任务管理: 深入理解任务的创建、删除、挂起、恢复等生命周期管理,以及μC/OS-3特有的任务调度算法,例如优先级抢占式调度,以及不同优先级任务如何协同工作,确保关键任务得到及时响应。我们将探讨上下文切换的细节,以及其对系统性能的影响。 时间管理: 实时性是RTOS的生命线。本书将详细讲解μC/OS-3的时间管理机制,包括系统时钟节拍的配置与作用,任务的延时与定时功能,以及如何利用这些机制来精确控制任务执行的时间。 任务间通信与同步: 在多任务环境中,任务之间如何安全高效地共享数据和协调动作是至关重要的。μC/OS-3提供了丰富的通信与同步原语,包括: 信号量 (Semaphores): 无论是二元信号量用于互斥访问,还是计数信号量用于资源计数,我们将深入理解其工作原理,并通过实例展示如何在临界区保护、资源分配等方面有效利用它们。 互斥锁 (Mutexes): 针对优先级反转问题,μC/OS-3提供的互斥锁机制,例如优先级继承(Priority Inheritance)和优先级天花板(Priority Ceiling),将得到详细的解析,帮助读者理解如何避免和解决这些棘手的并发问题。 消息队列 (Message Queues): 学习如何使用消息队列实现任务间一对多的数据传递,以及其在事件驱动和数据缓冲等场景下的应用。我们将探讨消息队列的发送与接收机制,以及消息缓冲区的管理。 事件标志组 (Event Flags): 掌握如何使用事件标志组来同步多个任务,使其能够根据特定的事件集合进行等待和响应,极大地提高了系统的灵活性和响应速度。 邮箱 (Mailboxes): 了解邮箱与消息队列的区别,以及何时适合使用邮箱进行一对一的消息传递。 中断管理: 嵌入式系统的响应能力很大程度上依赖于其中断处理能力。本书将详述μC/OS-3的中断服务程序(ISR)的设计原则,以及如何将其与RTOS内核高效地集成,确保中断响应的及时性和内核调度的平滑过渡。我们将讨论中断嵌套、中断延迟等关键概念。 内存管理: 资源受限的嵌入式系统对内存的管理要求极高。μC/OS-3提供了灵活的内存管理方案,包括内存块管理(Memory Block Management)和内存池管理(Memory Pool Management),本书将深入分析这些机制,指导读者如何高效地分配和释放内存,避免内存碎片,提高系统稳定性。 错误处理与诊断: 任何复杂的系统都可能出现错误。μC/OS-3内置了强大的错误检测和报告机制,本书将引导读者理解这些机制,学会如何通过错误代码来诊断系统问题,并提供相应的调试技巧。 实践出真知:代码示例与应用场景 理论知识的掌握离不开实际的实践。本书将贯穿丰富的代码示例,这些示例都将基于μC/OS-3的实际运行环境,例如使用常见的嵌入式开发板。我们将通过具体的项目案例,例如: 简单的LED闪烁控制: 理解任务创建和基本时间管理。 基于按钮的事件响应: 学习中断处理与任务同步。 传感器数据采集与处理: 演示任务间通信和数据缓冲。 多设备协同工作: 展示如何使用信号量和互斥锁来管理共享资源。 这些示例将帮助读者将书本上的知识转化为实际的开发能力,理解如何在真实的嵌入式应用场景中灵活运用μC/OS-3的各项功能。 面向的读者群体 本书适合以下人群阅读: 嵌入式系统开发者: 无论是初学者还是有经验的工程师,本书都能帮助您深入理解μC/OS-3,并将其应用于实际项目中。 计算机科学与工程专业的学生: 本书为学习操作系统原理、实时系统设计提供了一个绝佳的实践平台。 对嵌入式实时系统感兴趣的技术爱好者: 本书将以通俗易懂的方式,揭开实时操作系统的神秘面纱。 本书的独特价值 与市面上许多RTOS书籍不同,本书更侧重于“理解”而非“调用”。我们不只是告诉您如何使用API,更重要的是解释“为什么”要这样做,以及“这样做”背后的原理。通过深入剖析μC/OS-3的设计思想,读者将能够举一反三,不仅能熟练运用μC/OS-3,更能将其设计理念迁移到其他RTOS或自主 RTOS 的开发中。 结语 智能嵌入式系统的时代已经到来,而μC/OS-3正是驱动这些系统高效运转的关键引擎之一。本书将是您掌握μC/OS-3、踏入高性能嵌入式系统开发世界的得力助手。通过本书的学习,您将能够构建出更加稳定、可靠、响应迅速的嵌入式系统,为您的项目注入强大的生命力。让我们一起,用μC/OS-3解锁嵌入式开发的无限可能!