可移植性:绝大部分uC/OS的源码是用移植性很强的ANSI C写的,和微处理器硬件相关的那部分是用汇编语言写的,汇编语言写的部分已经压到最低限度。
可固化:uC/OS是为嵌入式应用而设计的,用户可以通过固化手段将uC/OS嵌入到产品中成为产品的一部分。
可裁减:uC/OS系统由多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这样,通过目标模块之间的按需组合,可以减少产品中的uC/OS所需的存储空间,这种裁减性是靠条件编译实现的。
占先式:uC/OS完全是占先式的实时内核,即uC/OS总是运行就绪条件下优先级最高的任务。
多任务:uC/OS可以管理64个任务,每个任务的优先级必须是不同的,其中系统占用8个,应用程序最多可以有56个任务。
可确定性:全部uC/OS的函数调用与服务的执行时间是可知的,即uC/OS系统服务的执行时间不依赖于应用程序任务的多少。
任务栈:uC/OS允许每个任务有不同的堆栈空间,以便压低应用程序对RAM的需求。
系统服务:uC/OS有多个相对独立的、短小精炼的目标模块组成,这些模块有:任务管理、时间管理、任务间的通信与同步、内存管理。其中:任务管理提供建立任务、删除任务、请求删除任务、任务的堆栈检查、改变任务的优先级、挂起任务、恢复任务和任务信息查询的系统调用;时间管理提供任务延时、取消任务延时和查询系统时间的系统调用;任务间通信与同步提供基于信号量、邮箱和消息队列机制的系统调用;内存管理提供内存分区的建立、分配、释放和查询的系统调用。
中断管理:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。
稳定性和可靠性:uC/OS自1992年以来已经有好几百个商业应用。
|