学习记录:RT-Thread 初始化机制

核心:RT-Thread 通过带优先级的宏定义,让初始化函数按序执行,解决依赖冲突问题。

一、核心逻辑

  • 所有初始化宏均基于 INIT_EXPORT(fn, "优先级") 封装,数字越小,初始化时机越早。
  • 严格遵循"硬件→软件→驱动→组件→环境→应用"的启动顺序,适配层间依赖关系。

二、6个关键初始化宏详情表

宏定义 优先级 核心作用 典型使用场景
INIT_BOARD_EXPORT(fn) "1" 板级硬件基础初始化 引脚配置、系统时钟初始化、外设底层使能
INIT_PREV_EXPORT(fn) "2" 纯软件预初始化 数据结构初始化、算法库预处理、无硬件依赖的配置
INIT_DEVICE_EXPORT(fn) "3" 硬件设备驱动初始化 I2C/SPI 总线驱动、传感器驱动、外设功能初始化
INIT_COMPONENT_EXPORT(fn) "4" 系统核心组件初始化 文件系统(DFS)、网络协议栈(LWIP)、GUI 库
INIT_ENV_EXPORT(fn) "5" 运行环境配置初始化 挂载存储分区、设置系统环境变量、初始化日志路径
INIT_APP_EXPORT(fn) "6" 上层应用业务初始化 创建应用线程、初始化业务逻辑、启动用户功能

三、使用注意事项表

注意点 具体说明
优先级不可随意修改 低优先级宏依赖高优先级宏的初始化结果,如驱动初始化(3)不能早于板级初始化(1)
函数导出格式 直接通过宏包裹初始化函数即可,例:INIT_DEVICE_EXPORT(my_uart_init),无需手动调用
避免跨阶段依赖 某阶段初始化函数不可调用后一阶段的接口,如板级初始化中不能操作未初始化的驱动
多函数同优先级执行顺序 同优先级的初始化函数,执行顺序与代码中导出的顺序一致
相关推荐
Freak嵌入式10 小时前
从慢到快:MicroPython 性能优化的完整步骤与实战案例
嵌入式
大辉狼_音频架构1 天前
AudioReach Plugin 机制问题解答
嵌入式·音视频开发
大辉狼_音频架构1 天前
AudioReach:Tinyalsa PCM Plugin 机制
嵌入式·音视频开发
feasibility.2 天前
从数字智能到物理智能体:深度解构具身智能时代的边缘计算、嵌入式实时系统与多形态智能体
人工智能·机器人·自动驾驶·嵌入式·无人机·具身智能·智能体
ajassi20002 天前
AI语音智能体开发日记(一)如何为“小智”服务器启用并调试 License 功能
笔记·ai·嵌入式·ai编程
ARM+FPGA+AI工业主板定制专家3 天前
国产化RK3576+FPGA架构|晶圆传输机器人高速定位+AI瑕疵检测一体化方案
fpga开发·架构·机器人·嵌入式·fpga·工控·机器人运控
Discipline~Hai3 天前
ARM03-蜂鸣器和中断
c语言·arm开发·单片机·嵌入式硬件·嵌入式
一杯原谅绿茶4 天前
安卓烧录工具PhonixCard-4.2.8下载
嵌入式
青衫嵌入式4 天前
FreeRTOS中断优先级配置不对也会HardFault?这次用一个血的教训讲明白
嵌入式
零涂毕业设计5 天前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled