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

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),无需手动调用
避免跨阶段依赖某阶段初始化函数不可调用后一阶段的接口,如板级初始化中不能操作未初始化的驱动
多函数同优先级执行顺序同优先级的初始化函数,执行顺序与代码中导出的顺序一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值