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里面,把系统时钟初始化去掉,随便写个电灯,就可以了。

这样一个工程就配置好啦。

经验分享 程序员 微信小程序 职场和发展