记录自己配置编译环境踩的坑

配置stm32的编译环境首先要了解主流的三大主流的编译器,armcc、iar和gcc for arm,其中armcc就是keil使用的编译器,可以在keil里面抄参数完成编译,但是armcc的使用需要授权,不是开源的,如果是有商业用途需要注意,而gcc for arm则是开源的,iar只在IDE中提供,不单独提提供编译器,所以常见的Linux移植是使用Makefile进行管理,提供GNU的工具链进行交叉编译。

编译过程中最重要的三个部分是makefile、.ld、startup.s,makefile对要编译的项目进行管理,.ld是内存分配的文件,相当于keil中的.sct文件,因为GNU工具链的汇编编译器的格式与ARMCC的汇编编译器不同,所以keil中的启动文件不能使用,需要找固件库里面的启动文件一般位于固件库的以下目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\gcc_ride7

内存分配文件和makefile可以通过stmcudemx生成,记得选对型号,makefile需要进行修改,更改需要编译的文件目录,配置宏定义,使其匹配对应芯片,如果忘记或者不知道此处可以抄keil生成的参数例如stm32f103c6t3的宏定义为-DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER,需要对应修改,将stmcudemx生成用于编译hal库的makefile更改为编译标准库,最后记得将导入的,s和.ld的名字更改使其能够对应上。

如果有问题欢迎讨论

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐