在KEIL中使用来GCC来编译STM32的代码的设置

17 篇文章 1 订阅
15 篇文章 0 订阅

在KEIL中使用来GCC来编译STM32的代码的设置

  1. GCC 编译启动时INIT错误, 通过比较原来的项目的设置, 在MDK KEIL中的LINK页标签中,有一个STARTUP
    的复选框去掉,就可以了。具体的内容如下。

在这里插入图片描述

  1. 关于GCC的编译。先前有装一个GCC 4.8的编译器, 在D盘下,只要在文件夹目录(注意不是我们常用的设置)
    目录,有一个编辑器文件夹,不要使用ARMCC 编译器,而使用GCC的编译器。移植过程中,把一些包含文件放在
    设置的INCLUDE 标签页中指定。
    在这里插入图片描述

  2. 关天LIB文件, 在项目文件夹中, 有一些以LIB***.a 开头的静态库文件,这个需要在KEIL中的LINK标签中
    的MISC中指定,需要把文件名中的LIB去掉,同时在前面加上 -l*** 例如:库名为: libhdmirx.a 在标
    签中写成 -lhdmirx.a

在这里插入图片描述

在这里插入图片描述

这是实际的文件名

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,要在VSCode安装STM32CubeMX插件。在VSCode的“Extensions”菜单搜索安装即可。安装完成后,按下F1键,打开命令面板,输入“STM32”,选择“Initialize STM32 project”,输入项目的名称、路径、芯片型号等信息,插件会自动生成项目文件结构和代码模板。 然后,我们需要安装C/C++插件和ARM GCC插件。在VSCode的“Extensions”菜单搜索安装即可。安装完成后,在项目文件夹内新建一个名为“.vscode”的文件夹,在该文件夹内新建一个名为“c_cpp_properties.json”的文件,并输入以下内容: ```{ "configurations": [ { "name": "STM32", "includePath": [ "${workspaceFolder}/**", "${env:ARM_GCC}/arm-none-eabi/include", "${env:ARM_GCC}/lib/gcc/arm-none-eabi/9.2.1/include" ], "defines": [ "USE_HAL_DRIVER", "STM32F407xx" ], "compilerPath": "${env:ARM_GCC}/bin/arm-none-eabi-gcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-arm" } ], "version": 4 }``` 其,${env:ARM_GCC}是你安装的ARM GCC工具链的路径。如果你没有安装ARM GCC工具链,可以在ST官网下载并安装。在这里,我选择了ARM GCC 9.2.1版本。修改defines的芯片型号为你自己使用的芯片型号。 最后,在VSCode的“File”菜单选择“Open Folder”,打开项目文件夹,选择“New File”创建一个名为“Makefile”的文件,并输入以下内容: ``` TARGET = main MCU_FAMILY = STM32F4xx MCU_MODEL = STM32F407VGTx BUILD_DIR = build SRC_DIR = src INC_DIR = inc CC=arm-none-eabi-gcc LD=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy CFLAGS = -g -Wall -Werror -std=c11 -D$(MCU_MODEL) -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffreestanding -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -I $(INC_DIR) LDSCRIPT = $(MCU_MODEL).ld LDFLAGS = --specs=nano.specs -T $(LDSCRIPT) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map -Wl,--gc-sections -Wl,--print-memory-usage CSOURCES = $(wildcard $(SRC_DIR)/*.c) OBJS = $(addprefix $(BUILD_DIR)/,$(notdir $(CSOURCES:.c=.o))) all : $(BUILD_DIR)/$(TARGET).bin $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c -o $@ $< $(BUILD_DIR)/$(TARGET).elf: $(OBJS) $(LD) $(LDFLAGS) $^ -o $@ $(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf $(OBJCOPY) -O binary $< $@ clean: rm -rf $(BUILD_DIR)/* .PHONY: clean ``` 其,TARGET为生成的二进制文件名;MCU_FAMILY为芯片家族类型;MCU_MODEL为芯片型号;BUILD_DIR为生成的二进制文件路径;SRC_DIR为源代码路径;INC_DIR为头文件路径。修改以上的变量为你的实际应用。 到这里,我们的环境就设置好了。之后,我们就可以在src文件夹下进行源代码编写,命令行使用“make”编译生成二进制文件,并用ST-Link工具下载到芯片运行了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值