Skip to content

前言 ​

本项目是一个 RTOS 教学项目。用于简单的说明一个 RTOS 的实现原理,比如任务调度或者 IPC 是怎么实现的。

既然需要讲解 RTOS 那么我是基于那个 RTOS 来讲解了?我一开始想的是 FreeRTOS,因为这个最有名,而且用的人数不少,很多企业也认可。但是后来我发现 FreeRTOS 编写的太过复杂了,我很难说对其的每个功能实现都很了解。我能说我懂,但是具体各个模块的实现算法短时间内我难以掌握。作为一个原理讲解的说明或许过于复杂了。最终我打算基于我大三时学习 RTOS 编写的 Yuan-RTOS 来讲解。

为什么基于 Yuan-RTOS 来讲解?它有什么优秀的特性吗?如果谈实用性、稳定性和支持平台等,Yuan-RTOS 都不如 FreeRTOS,毕竟前者只是一个学生的个人项目,后者是一个成熟的商业开源项目。我之所以选择 Yuan-RTOS 是有如下几个理由:

  1. Yuan-RTOS 我很熟悉,我可以讲解各个部分我为什么这么设计,有什么理由。
  2. Yuan-RTOS 足够简单,只有最基础的功能,适合用来讲解原理。
  3. 推广我的 Yuan-RTOS 项目,希望大家多给我点星星

通过这项目能学到什么 ​

自信的说,阅读完这个项目后,你应该能明白一下的内容:

  1. Cortex-M 内核的基础功能
  2. RTOS 任务切换的原理
  3. RTOS 任务调度的算法
  4. RTOS 软件定时器的实现
  5. RTOS IPC 的实现
  6. RTOS 的移植