[LiteOS移植]目标芯片STM32F1 修改Makefile
什么是Makefile
Makefile是一个名为GNU-Make软件所需要的脚本文件,该脚本文件可以指导Make软件控制arm-gcc等工具链去编译工程文件最终得到可执行文件,几乎所有的Linux发行版都内置了GNU-Make软件,VScode等多种IED也内置了Make程序。
你见到的xxx.mk文件或者Makefile都统称为Makefile脚本文件。
Makefile脚本文件的语法学习可以参考:
https://www.gnu.org/software/make/manual/make.html (GNU make官方文档)
https://seisman.github.io/how-to-write-makefile/overview.html (跟我一起写Makefile 陈皓)
SDK和工程中的Makefile结构
https://bbs.huaweicloud.com/blogs/195973 请参考这篇博客。
修改Makefile脚本文件
一共有三个Makefile文件需要进行修改,分别为targets\STM32F103RC\GCC\Makefile、 targets\STM32F103RC\GCC\project.mk和targets\STM32F103RC\.config
修改Makefile
STM32F103不支持硬件浮点运算,并且为m3内核,我们需要修改第83行,将CPU = -mcpu=cortex-m4修改为CPU = -mcpu=cortex-m3,85行FPU变量后的值删除,87行FLOAT-ABI变量后的值删除,如下图所示。
修改project.mk
将HAL_DRIVER_SRC变量后我们没有使用的库文件路径删除,并将STM32L4修改为STM32F1,如果不确定有没有使用可以选择保留不影响使用,这里我移除了IIC、SPI等相关的库文件路径,注意:“\”为接续符,最后是没有接续符的。
将HARDWARE_SRC变量后的路径删除,因为我们没有使用LCD和一些该目录下代码所对应的硬件,如果你使用了外设(OLED、网卡、DHT11等等),你可以把他们的初始化代码所在路径添加到这里,让make软件能找到他们并编译,修改后如下图所示。
将HAL_DRIVER_SRC_NO_BOOTLOADER变量后的路径删除,我们并未使用DMA、RNG,修改后如下图所示。
将后的USER_SRC变量后的$(TARGET_DIR)/Src/Huawei_IoT_QR_Code.c、$(TARGET_DIR)/Src/spi.c 、$(TARGET_DIR)/Src/i2c.c 删除,system_stm32l4xx修改为system_stm32F1xx,stm32l4xx_it修改为stm32F1xx_it,添加上$(TARGET_DIR)/Src/stm32f1xx_hal_msp.c,如果你也有其他的用户逻辑代码可以添加在这里,修改后如下图所示。
将HAL_DRIVER_INC变量后的路径中的L4修改为F1,如下图所示。
移除HARDWARE_INC变量后的路径,修改后如下图所示。
将C_DEFS后的STM32L431xx修改为STM32F103xx如下图所示。
未提及的地方均不用修改。
修改.config
.config暂不用修改,可以等后期全部一直完成后,通过IoT Link Studio中的图形化界面进行配置并自动修改即可。
- 点赞
- 收藏
- 关注作者
评论(0)