[LiteOS移植]目标芯片STM32F1 修改Makefile

网友投稿 681 2022-05-30

什么是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软件能找到他们并编译,修改后如下图所示。

[LiteOS移植]目标芯片STM32F1 修改Makefile

将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中的图形化界面进行配置并自动修改即可。

轻量级操作系统 LiteOS IoT

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:随便讲讲Python图像处理库PIL的使用
下一篇:程序员之路:Linux文件搜索_彭世瑜_新浪博客
相关文章