RT-Thread Nano 移植原理-启动流程
RT-Thread Nano 移植原理本片文档介绍 Nano 移植原理,针对的是不同 MCU 的移植,如 Cortex M,RISC-V,或者是其他 MCU 的移植。移植过程主要分为两个部分:libcpu 移植与板级移植,在讲解移植之前,本文档对 RT-Thread Nano 的启动流程与移植目录结构先进行说明。启动流程RT-Thread 启动流程如下所示,在图中标出颜色的部分需要用户特别注意(黄色表示 libcpu 移植相关的内容,绿色部分表示板级移植相关的内容)。
https://www.rt-thread.org/document/site/tutorial/nano/nano-port-principle/figures/startup1.png
RT-Thread 启动代码统一入口为rtthread_startup() ,芯片启动文件在完成必要工作(如初始化时钟、配置中断向量表、初始化堆栈等)后,最终会在程序跳转时,跳转至 RT-Thread 的启动入口中。RT-Thread 的启动流程如下:
[*]全局关中断,初始化与系统相关的硬件。
[*]打印系统版本信息,初始化系统内核对象(如定时器、调度器)。
[*]初始化用户 main 线程(同时会初始化线程栈),在 main 线程中对各类模块依次进行初始化。
[*]初始化软件定时器线程、初始化空闲线程。
[*]启动调度器,系统切换到第一个线程开始运行(如 main 线程),并打开全局中断
页:
[1]