RT-Thread OS启动流程

RT-Thread  OS启动流程,详细步骤

内核基础 (rt-threyad.org)

startup_stm32f103xe.S做的事情:

1. 复制数据的初始化从flash到sram

2.初始化bss段

3.初始化时钟

4.跳转到entry()函数中去执行rtthread_startup()函数

rtthread_startup()函数做的事情:

1.关闭硬件中断

2.板级初始化:需在该函数内部进行系统堆的初始化

3.打印 RT-Thread 版本信息

4.定时器初始化

5.调度器初始化

6.信号初始化

7.创建一个用户 main 线程

8.定时器线程初始化

9.空闲线程初始化

10.启动调度器rt_system_scheduler_start();

启动调度器之前,系统所创建的线程在执行 rt_thread_startup() 后并不会立马运行,它们会处于就绪状态等待系统调度;待启动调度器之后,系统才转入第一个线程开始运行,根据调度规则,选择的是就绪队列中优先级最高的线程。

rt_hw_board_init() 中完成系统时钟设置,为系统提供心跳、串口初始化,将系统输入输出终端绑定到这个串口,后续系统运行信息就会从串口打印出来。

main() 函数是 RT-Thread 的用户代码入口,用户可以在 main() 函数里添加自己的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值