概述
为了巩固对RTOS以及ARM Cortex-M的理解,打算从零写一个操作系统(内核)。相关知识背景:C语言精通;能写简单的汇编;使用过主流的RTOS;看过一些Linux内核相关的书籍。
计划实现的功能:
- 线程管理:这里没有使用RTOS中常用的“任务”这一名称,而是借用Linux等操作系统中的线程这一名称,原因是想做一个可动态管理,数量无限制的线程管理机制。
- 调度:基本调度策略为:不同优先级抢占调度,相同优先级时间片轮转。
- 线程同步与通讯:互斥量,信号量,消息队列,邮箱。
- 中断后半部
此RTOS跑在STM32F1的一块开发板上,使用Keil作为IDE。
因为我时间有限,上面列出的功能最后不一定全部能实现。
工程目录结构
首先给这个RTOS起个名字,叫做HYYOS,所有OS相关的代码都放到这个目录里面,且内部目录安排如下:
1 | hyyos |
这个工程的目录结构如下:
1 | hyyos_dev |
