uC/OS 和其后续版本 uC/OS-II 是专为嵌入式计算机应用精心打造的软件解决方案。它们的大部分核心是用高效、灵活的C语言编写的,这使得它们在各种硬件平台上具有很好的兼容性。为了实现高度的可移植性,μC/OS-II 的设计者们特别关注了与CPU硬件的紧密集成部分。
uC/OS-III 是一款公开源码、结构精简的实时操作系统,特别适合商业应用,但需要用户购买授权。这款内核起源于1992年,由美国嵌入式系统专家Jean J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊连载文章中推出,同时将μC/OS的源代码分享在杂志的BBS上。
uC/OS-II是一个基于优先级的可抢占型硬实时操作系统内核,其核心目标是实现多任务协作。为了在运行时切换任务,目标CPU需要有能力改变程序计数器(PC),但直接操作PC目前大部分CPU并不支持。不过,大部分CPU允许通过JMP或CALL这样的指令间接修改PC,这是uC/OS-II多任务机制的基础。
μC/OS-II的结构被划分为五个主要模块:核心、任务处理、时间管理、任务同步与通信,以及CPU接口。首先,核心部分,即OSCore.c,是操作系统的心脏,负责初始化、运行、中断处理和基本功能的维护。这部分涉及操作系统启动、中断退出前的准备工作、定时机制、任务调度和事件管理等关键操作。
uC/OS-II是一个采用可剥夺型实时多任务内核的操作系统。这种内核的特点是,无论何时,一旦有优先级最高的任务进入就绪状态,它都会立即抢占正在运行的低优先级任务的处理器资源,从而实现高效的任务切换。这种抢占式调度策略使得系统能够快速响应高优先级任务的需求。
1、在标准的ANSI C编程中,内存管理主要依赖于malloc和free函数,用于动态分配和释放内存。然而,在嵌入式实时系统环境下,频繁地调用这些函数可能导致内存碎片问题。此外,malloc和free的执行时间并非总是确定的,这在实时性要求高的系统中可能造成不便。uC/OS-II内存管理策略有所不同,它采用了分区式管理方法。
2、严格来说,uC/OS-III的核心功能主要集中在实时内核上,包括任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本操作。它并不提供输入输出管理、文件系统或网络服务,但这并不妨碍其高度的灵活性。由于其良好的可扩展性和源代码开放性,用户可以根据需求自行添加或扩展这些非核心功能。
3、μC/OS-III的核心包括OSCore.c,负责初始化、运行、中断处理等,维持系统基本运作。OSTask.c处理任务创建、删除等操作,它是以任务调度为基本单元,对任务管理至关重要。OSTime.c则负责最小时间单位timetick,进行任务延时操作。任务同步与通信部分通过信号量、邮箱等实现任务间协作和资源访问。
1、在1992年5月和6月期Embedded SystemProgramming 杂志上发表了最初的RTOS,名为μCOS。到1992年底,写成了介绍μC/OS的书,1999年出版了介绍μC/OS-Ⅱ的书,该书第2版于2002年出版。2000年还出版了.Embedded System Buliding Block一书。Jean J.L,abrosse先生长期从事嵌入式系统的开发研究。
2、嵌入式实时操作系统μC/OS-II是一本由任哲编著的专业书籍,深入解析该操作系统的核心原理及其实际应用。这本书的出版信息表明,它由北京航空航天大学出版社发行,出版日期为2009年10月1日,采用了16开的开本,印制质量为胶版纸。ISBN号码为9787811249323,装订形式为平装。
3、王田苗的著作主要围绕嵌入式系统设计和实例开发展开,他以ARM架构的微处理器和μC/OS嵌入式操作系统为核心,为读者提供了深入浅出的学习资源。