RT_Thread 启动流程

本文从MDK_ARM的main()函数出发,探讨RT_Thread操作系统启动过程。首先从startup_stm32f103xe.s汇编代码开始,接着进行RT_Thread系统初始化,包括硬件初始化、内核对象初始化、main线程创建以及定时器线程和调度器启动。rtthread_startup()作为RT_Thread的统一入口,其内部详细流程包括系统硬件配置、内核对象初始化等四个关键步骤。
摘要由CSDN通过智能技术生成

一般了解一份代码大多数从启动部分开始,同样这里也是采用这种方式,先寻找启动的源头。以MDK_ARM为例。
MDK_ARM的用户程序入口为main()函数,位于main.c文件中。系统启动后先从汇编代码startup_stm32f103xe.s开始运行,然后跳转到C代码,进行RT_Thread系统功能初始化,最后进入用户程序入口main()。
为了在进入main()之前完成RT_Thread系统功能初始化,我们使用了MDK扩展功能$sub$$和$super$$main可以给main添加$sub$$的前缀符号作为新功能函数$sub$$main,这个$sub$$main可以先调用一些需要补充在main之前的功能函数(这里添加RT_Thread系统初始化功能),在调用$super$$main转到main()函数执行,这样可以让用户不用去管main()之前的初始化。
关于$sub$$和$super$$扩展的使用,详见如下:RT-Thread编程高阶用法
下面我们来看看在这段代码:
/*$sub$$main 函数*/

int $sub$$main(void)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值