本文记录一下rtthread实时操作系统内核的学习过程,以便加深理解。
内核介绍
内核是操作系统的核心,主要是负责线程、通信、时钟、中断、内存等,rtthread内核的架构如下图所示
可以看出内核也是围绕着这几个功能写的,它位于硬件层的上边,主要包括对象管理(把设备抽象成对象进行管理),调度器(负责线程间的调度),线程管理(线程的创建等),通信,时钟管理(心跳等),内存管理(线程占用内存大小等)
rtturead内核间的调度主要是优先级的全抢占式的多线程调度算法。
时钟管理以时钟节拍为最小时钟单位
内核启动流程
rtthread内核启动流程主要
主要是记住入口函数startup.s
这个汇编函数,然后通过不同的编译器进入startup()这个函数,在这个函数中初始化一系列的设备,然后最后再初始化三个线程,idle、timer、和main线程,然后进入主线程执行应用层代码。注意在应用初始化函数中调用了application_init()
初始化函数来初始化内存堆的大小,内存堆的讲解参考内存堆我的理解是动态的分配内存,并且返回指针用来操纵这片内存空间。