CubeMX 生成RTThread v3.1.3工程 Makefile环境搭建
准备工具
-
CubeMX(需要java环境) Vscode(在里面安装LoTlink插件,也就是华为的lietos插件) Jlink(版本新一点比较好)
建立CubeMX工程
新建一个裸机工程 点击这个选项,如果没有安装RTThread软件包,先点击Manage那个安装, 具体怎么安装看这个 选择RTThread软件包,两个选项,一个内核,一个shell,只勾选内核,就是Nano版本。 然后配置其他工程选项 首先是接管NVIC中断 去掉这三个中断处理函数 接着常规配置其他的选项 注意:如果选用了shell,就要开启一个串口,具体实现可以看官方给的文档
最后生成cubeMX工程
VsCode搭建工程环境
先点击左下角的home(没有就去安装LoT link插件) 选择导入GCC工程 选择CubeMX生成的工程根目录 导入Makefile文件 选择硬件型号(也可以进入工程以后再更改) 修改这个汇编文件的后缀,把S改成s(我已经修改好了) (因为 .S 和 .s 的含义不一样,具体原因自己百度)
紧接着配置Makefile文件 添加这个汇编文件到编译命令当中
# ASM sources ASM_SOURCES = startup_stm32f411xe.s Middlewares/Third_Party/RealThread_RTOS_RT-Thread/libcpu/arm/cortex-m4/context_gcc.s
再配置这个部分
# float-abi #FLOAT-ABI = -mfloat-abi=hard FLOAT-ABI = -mfloat-abi=soft
剩下的事情就很简单了 为Rtthread初始化滴答定时器,直接调用这两个函数: void HAL_Init(void); void SystemClock_Config(void);
void HAL_Init(void);
void SystemClock_Config(void);
/**
* This function will initial your board.
*/
void rt_hw_board_init()
{
HAL_Init();
SystemClock_Config();
/* System Clock Update */
SystemCoreClockUpdate();
/* System Tick Configuration */
_SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
/* Call components board initial (use INIT_BOARD_EXPORT()) */
#ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init();
#endif
#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
#endif
}
修改启动文件 因为是GCC环境下,所以要这样配置:
紧接着到main里面,把系统时钟初始化去掉,随便写个电灯,就可以了。
这样一个工程就配置好啦。
