Why ucosii
其实现在市面上占有率最高的·RTOS是freertos,freertos凭借它的完全开源 最最重要的免费市场占有率连年增加。
从单片机向操作系统过度过程中,我发现ucosii资料目前还是最多的,过去两个星期中我大概完全分析了ucosii的源代码(基于Cortex-M3平台的STM32F103),所以产生了写一系列博客记录自己学习过程的想法。
其实在这个过程中我是先看的ucosii,看了一大半后又结合freertos与SMC-RTOS来看的,自我感觉对比着看可以体会到不同RTOS的设计风格理念差异,对掌握RTOS还是又很大的帮助的。(SMC-RTOS是我一个学长去年自己写的一个RTOS,目前仅仅具有简单基于优先级抢占的任务调度、软件定时器、信号量、统计ucosii系统CPU占有率的功能,github 地址是 SMC-RTOS,大家可以去star一下,哈哈算个广告)
ucosii 文件夹介绍
- APP:主要是应用程序的相关代码,main函数就在其中,其实与OS Core 关系倒不大
- BSP:主要是板级信息的文件,跟具体硬件是相关的
- uC-CPU :跟CPU架构相关的代码,与移植息息相关。涉及任务调度具体行为,上下文切换等
- uC-LIB :跟CPU架构无关,跟OS Core也无关,只是ucosii实现了几个C的精简版的库函数
- uCOS-II->Ports:主要是移植相关的
- uCOS-II->Source:主要是ucosii内核代码了,涉及到就绪表,事件等待列表等
章节安排
主要按ucosii几个文件夹来分析,由易到难,最后会有必要会分析其中几个重要的结构体如 OS_TCB等。
准备ucosii之后再搞一个SMC-RTOS、freertos的专题博客,SMC-RTOS在我角度看来实在是精巧,至少相对与没有经过优化的ucosii在CM3上的移植。
源码获取
后续会上传
如果博客有那些地方记录有误或者读者想与我沟通,可以发邮件到我的邮箱3164683437@qq.com