登录/注册

rt-thread启动过程

更多

RT-Thread 的启动过程可分为硬件初始化、内核启动和应用启动三个阶段,以下是详细流程(以 ARM Cortex-M 平台为例):


1. 硬件初始化阶段

(1) 复位向量执行

(2) 复位中断函数 (Reset_Handler)


2. 内核启动阶段 (rtthread_startup())

(1) 硬件抽象层初始化 (rt_hw_board_init())

(2) 内核组件初始化

rt_components_board_init();    // 板级自动初始化(标注为 INIT_BOARD_EXPORT 的函数)
rt_components_init();          // 系统级自动初始化(INIT_PREV_EXPORT 等)

(3) 调度器与线程初始化


3. 应用启动阶段

(1) 主线程入口 (main_thread_entry)

(2) 进入多线程运行


关键机制说明

(1) 自动初始化技术

(2) 主线程与用户 main()


启动流程图

上电复位
    │
    ▼
Reset_Handler(初始化时钟/RAM)
    │
    ▼
rtthread_startup()
    ├─ rt_hw_board_init()          // 硬件抽象层
    ├─ rt_show_version()           // 打印 RT-Thread 版本
    ├─ rt_system_timer_init()      // 系统定时器
    ├─ rt_system_scheduler_init()  // 调度器初始化
    ├─ rt_application_init()       // 创建主线程(入口:main_thread_entry)
    ├─ rt_system_timer_thread_init() // 定时器线程
    ├─ 启动调度器(切换到主线程)
    │
    ▼
main_thread_entry()
    └─ main()  // 用户代码入口
        ├─ 创建线程/信号量等
        ├─ 挂载文件系统
        └─ 启动网络协议栈
            ▼
            多线程运行(调度器接管系统)

常见适配示例

rt_hw_board_init() 中需实现:

此设计保证了 RT-Thread 的跨平台性,开发者只需适配硬件相关层(如 BSP),即可快速移植到新芯片。

开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动

亲爱的RT-Thread开发者我们很高兴地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread开

2024-10-29 08:06:58

RT-Thread v5.0.2 发布

RT-Thread 代码仓库地址: ●  https://github.com/RT-Thread/rt-thread

2023-10-10 18:45:01

基于RT-Thread Studio学习

前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。

2023-05-15 11:00:38

RT-Thread文档_RT-Thread SMP 介绍与移植

RT-Thread文档_RT-Thread SMP 介绍与移植

资料下载 刘燕 2023-02-22 18:31:34

RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

资料下载 佚名 2023-02-22 18:23:17

RT-Thread文档_RT-Thread 简介

RT-Thread文档_RT-Thread 简介

资料下载 张览秀 2023-02-22 18:22:24

RT-Thread学习笔记 --(6)RT-Thread线程间通信学习过程总结

前两篇文章总结了RT-Thread多线程以及多线程同步的学习过程,关于前两篇学习总结,可以查看之前的文章。

资料下载 龙献益 2022-01-25 18:50:59

嵌入式RT-Thread应用与开发

嵌入式RT-Thread应用与开发说明。

资料下载 姚小熊27 2021-04-06 14:12:00

RT-Thread学习笔记 RT-Thread的架构概述

RT-Thread 简介 作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然而,随着你的深入接触,你会逐渐发现 RT-Thread

2022-07-09 11:27:42

RT-Thread记录(二、RT-Thread内核启动流程)

在前面我们RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程.

2022-06-20 00:30:33

RT-Thread全球技术大会:POSIX FILE select的调用过程

在上午RT-Thread全球技术大会,RT-Thread开发者详细介绍了POSIX FILE select的调用过程。如下图:

2022-05-28 10:56:52

RT-Thread全球技术大会:RT-Thread测试用例集合案例

RT-Thread全球技术大会:RT-Thread测试用例集合案例           审核编辑:彭静

2022-05-27 16:34:46

RT-Thread全球技术大会:在RT-Thread上编写测试用例

RT-Thread全球技术大会:在RT-Thread上编写测试用例           审核编辑:彭静

2022-05-27 16:28:36

RT-Thread全球技术大会:Kconfig在RT-Thread中的工作机制

RT-Thread全球技术大会:Kconfig在RT-Thread中的工作机制               审核编辑:彭静

2022-05-27 14:49:12

RT-Thread全球技术大会:萤石研发团队使用RT-Thread的技术挑战

RT-Thread全球技术大会:研发团队使用RT-Thread的技术挑战         审核编辑:彭静

2022-05-27 11:36:17

7天热门专题 换一换
相关标签