RTThread的初始化宏(备忘录)
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():
rt_hw_xxx_init() /* xxx device init*/
INIT_COMPONENT_EXPORT():
做点啥呢?
INIT_APP_EXPORT():
finsh_system_init() /* finsh app init*/
INIT_EXPORT(fn, level):
好吧,它是上面哪些宏的展开
借用官方的一张图
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)
但是这个没启用
本文来自博客园,作者:当最后一片树叶落下,转载请注明原文链接:https://www.cnblogs.com/Rabbit-susu/p/17366572.html