首页 » 互联网 » 一文读懂RT-Thread启动流程_函数_初始化

一文读懂RT-Thread启动流程_函数_初始化

雨夜梧桐 2025-01-22 01:09:27 0

扫一扫用手机浏览

文章目录 [+]
小编

RT-Thread 启动流程是指 RT-Thread 操作系统从上电到运行用户程序的过程,它涉及到汇编代码、C 代码和内核对象的初始化和调度

汇编代码部分:系统上电后,首先进入汇编代码 startup_stm32f103xe.s 这个文件,这个文件紧张卖力对芯片进行必要的初始化,如时钟、中断向量表等,然后跳转到用户 flash 区域运行用户代码。
用户 flash 区域的第一个地址是栈起始地址,第二个地址是复位向量地址,系统会自动加载这两个地址到 MSP 和 PC 寄存器,并实行复位向量地址指向的函数。
这个函数会调用 SystemInit 函数和 __main 函数,前者完成一些硬件干系的初始化,后者完成一些 C 措辞干系的初始化,如清零 BSS 段、拷贝 DATA 段等。
C 代码部分:汇编代码部分实行完毕后,系统会进入 C 代码部分,也便是 $Sub$$main 函数。
这个函数是 RT-Thread 对 main 函数的一个补丁,它会先关闭所有中断,然后调用 rtthread_startup 函数。
这个函数是 RT-Thread 的核心启动函数,它会依次完成以下几个步骤12:调用 rt_system_heap_init 函数,初始化系统内存堆。
调用 rt_system_scheduler_init 函数,初始化系统调度器。
调用 rt_system_timer_init 函数,初始化系统定时器。
调用 rt_system_timer_thread_init 函数,初始化系统定时器线程。
调用 rt_thread_idle_init 函数,初始化系统空闲线程。
调用 rt_application_init 函数,创建用户主线程,并设置其入口函数为 $Super$$main 函数。
调用 rt_system_scheduler_start 函数,启动系统调度器,并切换到优先级最高的就绪线程实行。
用户主线程部分:当系统调度器切换到用户主线程时,它会实行 $Super$$main 函数。
这个函数是 RT-Thread 对 main 函数的另一个补丁,它会先打开所有中断,然后调用用户自己定义的 main 函数。
在 main 函数中,用户可以根据自己的需求进行各种操作和配置。

一文读懂RT-Thread启动流程_函数_初始化 一文读懂RT-Thread启动流程_函数_初始化 互联网

一文读懂RT-Thread启动流程_函数_初始化 一文读懂RT-Thread启动流程_函数_初始化 互联网
(图片来自网络侵删)

相关文章

无损HIFI播放器知足你抉剔耳朵_音质_播放器

听歌的好处确实很多,这也是很多人喜好听歌的缘故原由。而听歌讲究的便是音质,一首歌的音质好不好直接决定了这首歌的品质,以是挑选一款好...

互联网 2025-01-22 阅读0 评论0

一文读懂RT-Thread启动流程_函数_初始化

小编RT-Thread 启动流程是指 RT-Thread 操作系统从上电到运行用户程序的过程,它涉及到汇编代码、C 代码和内核对象...

互联网 2025-01-22 阅读 评论0