前言 RT-Thread的自动初始化机制,挺好用的,但是,bsp中模拟器simulator,不支持。 研究了一下自动初始化机制,发现,可以让pc的模拟器,也可以实现自动初始化 研究过程 运行bsp的模拟器,使用vs2019。 发现:INIT_BOARD_EXPORT INIT_COMPONENT_EXPORT,没有效果 分析代码发现默认不支持PC端的模拟器: /* initialization export */ #ifdef RT_USING_COMPONENTS_INIT typedef int (*init_fn_t)(void); #ifdef _MSC_VER /* we do not support MS VC++ compiler */ #define INIT_EXPORT(fn, level) #else 经过一番的搜索、验证分析,发现,自动初始化机制如下: 需要使用section(段、节),让编译器把函数指针,放在里面 __attribute__((section(x))) 在VS2019上不支持(_MSC_VER) 找到基于VS2019 _MSC_VER的section操作,即可实现自动初始化 MSH_CMD_EXPORT,支持模拟器的section的操作,用于导出MSH CMD函数 基于VS201