说在前面
freertos的代码结构并不友好,但是它有很多的宏定义开关,内核能裁剪到最小,所以分析它的代码也能从根子里面找到系统是怎么写出来的,从而能更好的掌握这个操作系统。
代码结构
与操作系统内核相关的代码有几个文件:croutine.c,event_groups.c,list.c,queue.c,tasks.c,stream_buffer.c,timers.c,而内存管理的代码则放在文件夹portable/MemManag下,分为heap1.c、heap2.c、heap3.c、heap4.c,heap5.c。另外为了支持内核的一些临界段操作,还需要添加port.c文件。如果是第一次查看其内核源码,还是比较排斥这种做法的。
从task.c入手
大致浏览一下它的文件,可以从task.c中分析每个文件的基本结构。
它有宏定义静态分配和动态分配,然后是创建create,删除delete。event_groups.c与queue.c和stream_buffer.c等遵循这样的操作。
task.c归根揭底是对任务的相关操作,而任务包括创建,删除,挂起,切换。就这几个词就能把这个文件想做的事情归纳出来。
看到有人开始收费讲rtos相关视频,可是rtos相比linux-0.11难度级别降低很多,rtos更多的是细节的处理,这篇就慢慢更新吧。
閱讀更多 wityuan 的文章