|
|
虽然是微型内核,但RTOS的东西基本上也都要有,这里以ucos为参考,你实现也应该参考其中的代码。% u% [# C8 k x5 L6 X5 p
任务调度主要实现就是数据的压栈,出栈,现场状态保存/恢复,最高优先级线程调度,任务切换,这些都是由os_cpu_a.asm、os_cpu_c.c, os_core.c, os_task.c两个文件完成的,另外因为系统本身任务还需要时钟定时切换,所以os_time.c也是必须的
2 `! M$ @! c0 v. I, ~( p IPC通讯包含信号量,邮箱和消息队列等,因为你这是微型的,我建议只简化实现信号量就可以了,也就是参考os_sem.c( F' U; s6 i4 Y7 z
内存管理主要提供数据块的内部管理机制,理论上和上面联系不大,参考os_mem.c,另外可以参考别人总结的<简易0S设计>文档,基本吃透了写个微型内核没啥问题。2 p8 G3 _- p5 _( X8 f" F, x
8 `0 T- b# f- {+ k- p
/ x" @9 x0 [3 C
8. 简易0S设计.pdf
(374.41 KB, 下载次数: 0)
6 E% B- S9 ~ u, g |
|
|