/* init threads and start scheduler */
rt_system_thread_init();
/* never reach here */
return ;
}
[/code:1]
初始化做的第一件事就是把BSS段清零,然后是硬件相关的一些初始化:启用CPU的cache,中断初始化,设置串口等。接下来的是内核各个模块初始化:系统节拍归零,对象系统初始化,定时器系统初始化,如果使用了动态内存管理,把实际的内存空间传递给页管理器进行管理,初始化调度器。而设置空闲线程钩子及启动finsh都是可选的。以上这些完成后调用rt_hw_interrupt_umask(INTGLOBAL)把系统的中断打开,调用rt_system_thread_init初始化线程管理器然后就开始进行线程调度了,RT-Thread操作系统开始运行!