前言
本项目是一个 RTOS 教学项目。用于简单的说明一个 RTOS 的实现原理,比如任务调度或者 IPC 是怎么实现的。
既然需要讲解 RTOS 那么我是基于那个 RTOS 来讲解了?我一开始想的是 FreeRTOS,因为这个最有名,而且用的人数不少,很多企业也认可。但是后来我发现 FreeRTOS 编写的太过复杂了,我很难说对其的每个功能实现都很了解。我能说我懂,但是具体各个模块的实现算法短时间内我难以掌握。作为一个原理讲解的说明或许过于复杂了。最终我打算基于我大三时学习 RTOS 编写的 Yuan-RTOS 来讲解。
为什么基于 Yuan-RTOS 来讲解?它有什么优秀的特性吗?如果谈实用性、稳定性和支持平台等,Yuan-RTOS 都不如 FreeRTOS,毕竟前者只是一个学生的个人项目,后者是一个成熟的商业开源项目。我之所以选择 Yuan-RTOS 是有如下几个理由:
- Yuan-RTOS 我很熟悉,我可以讲解各个部分我为什么这么设计,有什么理由。
- Yuan-RTOS 足够简单,只有最基础的功能,适合用来讲解原理。
- 推广我的 Yuan-RTOS 项目,希望大家多给我点星星
通过这项目能学到什么
自信的说,阅读完这个项目后,你应该能明白一下的内容:
- Cortex-M 内核的基础功能
- RTOS 任务切换的原理
- RTOS 任务调度的算法
- RTOS 软件定时器的实现
- RTOS IPC 的实现
- RTOS 的移植