μc/os-ii读做“micro c o s 2”,意为“微控制器操作系统版本2”。μc/os-ii是源码公开的著名实时内核,可用于各类8位、16位和32位单片机或dsp。从μc/os算起,该内核已有10多年应用史,在诸多领域得到广泛应用。
μc/os-ii是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。μc/os-ii使用ansi c语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。至今,从8位到64位,μc/os-ii已在超过40种不同架构的微处理器上运行。
μc/os-ii特点
提供源代码:购买作者撰写的《嵌入式实时操作系统μc/os-ii》一书即可获得μc/os-iiv2.52版本的所有源代码,购买此书的其它版本可以获得相应版本的全部源代码。
可移植性(portable):μc/os-ii的源代码绝大部分是使用移植性很强的ansi c写的,将与微处理器硬件相关的汇编语言使用量压缩到最低的限度,以使μc/os-ii便于移植到其它微处理器上。目前,μc/os-ii已经被移植到多种不同架构的微处理器上。
可固化(rommable):只要具备合适的软硬件工具,就可以将μc/os-ii嵌入到产品中成为产品的一部分。
可剪裁(scalable):μc/os-ii使用条件编译实现可剪裁,用户程序可以只编译自己需要的(μc/os-ii的)功能,而不编译不要需要的功能,以减少μc/os-ii对代码空间和数据空间的占用。
可剥夺(preemptive):μc/os-ii是完全可剥夺型的实时内核,μc/os-ii总是运行就绪条件下优先级最高的任务。
多任务:μc/os-ii可以管理64个任务,然而,μc/os-ii的作者建议用户保留8个给μc/os-ii。这样,留给用户的应用程序最多可有56个任务。
可确定性:绝大多数μc/os-ii的函数调用和服务的执行时间具有确定性,也就是说,用户总是能知道μc/os-ii的函数调用与服务执行了多长时间。
任务栈:μc/os-ii的每个任务都有自己单独的栈,使用μc/os-ii的占空间校验函数,可确定每个任务到底需要多少栈空间。
系统服务:μc/os-ii提供很多系统服务,例如信号量、互斥信号量、时间标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。
中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
稳定性与可靠性:μc/os-ii是μc/os的升级版,μc/os自1992年以来已经有数百个商业应用。μc/os-ii与μc/os的内核是一样的,只是提供了更多的功能。2000年7月,μc/os-ii在一 个航空项目中得到了美国联邦航空管理局对商用飞机的、符合rtca do – 178b标准的认证。这表明,该操作系统的质量得到了认证,可以在任何应用中使用。