代码清单:arm-none-eabi.cmake # 编译工具链; # 请确保已经添加到环境变量; # 如果使用的是 linux 环境,需要将后面的 '.exe' 移除; SET(CMAKE_C_COMPILER "arm-none-eabi-gcc.exe") SET(CMAKE_CXX_COMPILER "arm-none-eabi-g++.exe") SET(AS "arm-none-eabi-as.exe") SET(AR "arm-none-eabi...
BINARY = main PREFIX = arm-elf CC = $(PREFIX)-gcc LD = $(PREFIX)-ld OBJCOPY = $(PREFIX)-objcopy OBJDUMP = $(PREFIX)-objdump CFLAGS= -O2 -mcpu=cortex-m3 -mthumb -nostartfiles -I inc/ LDSCRIPT =stm32f103VET6.ld LDFLAGS = -T $(LDSCRIPT) OBJS = stm32f10x_gpio.o stm32f10x_rc...
因为C文件调用某个写在CPP的函数是会报错的,因为C++支持重载而C不支持。因此需要把一些可能会在C文件调用的函数的声明用extern “C”{}限制,否则在链接那一步会报错在C文件里调用的这个函数找不到。 在上面main.cpp中,SysTick_Callback()是我在定义的一个弱函数,他会在SysTick中断中被调用,这里就是因为在mai...
3. 解压下载的压缩包到C:\~Arm_Development_Toolchains,文件内容如下; 4. 将目录C:\~Arm_Development_Toolchains\w64devkit\bin,添加到系统环境变量; 5. 验证安装结果。打开命令行窗口,依次输入命令:make -v和gcc -v;应该得到如下结果; 6. 如果出现错误,请检查是否正确配置环境变量。 4. 安装Ninja Ninja和Ma...
编译器:如GCC(GNU Compiler Collection),实现代码转换为机器语言。 调试器:ST-Link或JTAG工具,用于程序调试和闪存编程。 配置完适合STM32开发的环境后,开发者可以开始撰写第一个程序,通常为闪烁LED的简单示例,来验证配置是否正确。 三、核心库和驱动程序
成功编程STM32不仅需要掌握相关语言,还得结合功能强大的开发环境和工具。例如,Keil MDK、IAR Embedded Workbench以及基于开源GCC编译器的STM32CubeIDE等。这些IDE为STM32的编程提供了语法高亮、代码调试、项目管理以及库函数的快速调用等功能,有助于提高开发效率。
需要注意的是,下载的arm-elf-gcc编译器先看一下版本,听说只有4.2以上的才支持stm32.然后测试下编译器是否管用,随便写个c文件,用arm-elf-gcc -o2 -c hello.c -o hello.o测试下,成功生成hello.o说明环境搭建成功了。然后看一下make工具是否管用,make -v查看一下。
之前从网上下载了一份用GCC开发stm32的程序,也是用的stm32的库函数编程,启动文件是startup_stm32f10x_hd.s,链接脚本文件是从gcc_ride7中拷贝出的stm32f10x_flash_extsram.ld,做了些简单修改。但是编译了一下,出现了一大堆的错误。于是干脆不用这些文件,从网上查资料,自己写启动文件和链接脚本。仔细看了下star...
命令gcc -M main.c out: main.o:main.c defs.h 若不需要依赖关系中不考虑标准头文件时 使用gcc -MM main.c 9. := 与 += 区别 := --> 立即展开 += --> 立即展开或延迟展开 对于所有条件语句均采用立即展开 10. 将make输出的错误信息输出到文件1.txt ...
插件功能Chinese (Simplified) Language Pack for Visual Studio Code中文(简体)语言包Comment TranslateVSCode 注释翻译C/C++C / C ++的语言支持,语法智能感知、加亮及调试功能,当然需要系统安装 arm-none-eabi-gcc编译器Cortex Debug提供 jlink、stlink等调试接口功能ARMarm汇编语言支持vscode-icons文件图标,可快速查看...