RTThread的初始化流程
方便后续查找.
一.初始化接口
初始化顺序 | 接口 | 描述 |
---|---|---|
1 | INIT_BOARD_EXPORT(fn) | 硬件的初始化,此时调度器还未启动 |
2 | INIT_PREV_EXPORT(fn) | 主要是用于纯软件的初始化、没有太多依赖的函数 |
3 | INIT_DEVICE_EXPORT(fn) | 外设驱动初始化相关,比如网卡设备 |
4 | INIT_COMPONENT_EXPORT(fn) | 组件初始化,比如文件系统或者LWIP |
5 | INIT_ENV_EXPORT(fn) | 系统环境初始化,比如挂载文件系统 |
6 | INIT_APP_EXPORT(fn) | 应用初始化,比如GUI应用 |
官方默认的初始化有:
INIT_BOARD_EXPORT():
INIT_PREV_EXPORT():
INIT_DEVICE_EXPORT():
rtc_hw_rtc_init()
INIT_COMPONENT_EXPORT():
INIT_APP_EXPORT():
finsh_system_init
INIT_EXPORT():
好吧,它是上面宏的调用
借用官方的一张图
Finsh的一些宏指令:
序号 | 宏接口 | 宏定义 |
---|---|---|
1 | FINSH_FUNCTION_EXPORT(name, desc) | FINSH_FUNCTION_EXPORT_CMD(name, name, desc) |
2 | FINSH_FUNCTION_EXPORT_ALIAS(name, alias, desc) | FINSH_FUNCTION_EXPORT_CMD(name, alias, desc) |
3 | MSH_CMD_EXPORT(command, desc) | |
上面这些宏函数,只实现了MSH_CMD_EXPORT() |
/*是有实现的*/
#define MSH_FUNCTION_EXPORT_CMD(name, cmd, desc) {...}
/*常用命令*/
#define MSH_CMD_EXPORT(command, desc) MSH_FUNCTION_EXPORT_CMD(command, command, desc)
#define MSH_CMD_EXPORT_ALIAS(command, alias, desc) MSH_FUNCTION_EXPORT_CMD(command, alias, desc)
其它
还有一个EXPORT宏用来向外声明函数:
RTM_EXPORT(fn)
但是这个没启用