前言

本系列文章主要讲解SKRTOS_sparrow的基本原理及代码,在讲解原理的同时会指导读者完成一个小型的RTOS,支持内存管理、任务管理、线程间通信等功能。

笔者之前在一些平台更新了基本教程,现在的版本为重制版。

重制原因如下:

1.之前考虑受众原因,文章内容尽量浅显易懂,并且搭配代码讲解与实验内容,但很多地方并没有讲解详细。

2.之前的教程有很多地方并不系统,也并不全面。

重制版是在原先RTOS编写的基础上加入大量的理论讲解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
classDiagram

ThreadManager <-- MemoryManager
Scheduler <-- CriticalSection
Scheduler <-- ThreadManager
Scheduler <-- systick
Scheduler <-- PendSV
class ThreadManager {
+创建线程()
}
class MemoryManager {
+申请内存()
+释放内存()
}
class Scheduler {
+调度器()
+任务延时()
+选择优先级最高的任务()
}
class CriticalSection {
+进入临界区()
+退出临界区()
}
class systick {
+时钟计数
}
class PendSV {
+上下文切换
}

框架

简要介绍本系列教程基本框架。

重制版教程侧重讲解原理,将会搭配多个操作系统的相关源码进行讲解,主要讲解内存、arm架构、调度、IPC等方面。

内存

原理方面会讲解操作系统中的内存模型、常见的内存管理算法,如伙伴算法,slab,best-fit,first-fit等算法,并讲解堆、栈等内存段。

arm架构

将联系arm权威手册详细讲解arm架构。

调度

将会详细讲解上下文切换全过程,包括中断、硬件等部分,并讲解多种调度算法。

IPC

之前的博客关于IPC都是一笔带过,本系列将会详细讲解IPC机制。