Makefile+OpenOCD开发STM32

准备工作

平台:Windows11(Linux,MAC同理)

编译链(arm-none-eabi-gcc):Downloads | GNU Arm Embedded Toolchain Downloads -- Arm Developer

下载对应平台工具链并添加到环境变量,使用arm-none-eabi-gcc -v查看是否准备就绪

OpenOCD:Download OpenOCD for Windows (gnutoolchains.com)

生成工程

使用STM32CubeMX生成工程,生成方法

重点重点重点 :生成代码时Toolchain/IDE选择Makefile

编译

在生成工程的根目录会看到Makefile文件,在根目录打开终端并输入如下命令:

shell 复制代码
make -j12

打印空间信息即编译成功,否则日志中会报错

shell 复制代码
arm-none-eabi-size build/STM32H743.elf
   text    data     bss     dec     hex filename
  22908      24    2464   25396    6334 build/STM32H743.elf

下载

参考命令如下:

shell 复制代码
openocd.exe -f "interface/cmsis-dap.cfg" -f "target/stm32h7x.cfg" -c "program STM32H743-2740.hex" -c reset -c shutdown

配置文件在OpenOCD\share\openocd\scripts下可找到,第一个是调试器的配置文件,第二个是芯片的配置文件,可以合二为一

第三个是上一节编译出的hex文件

-c reset是下载成功后复位芯片

-c shutdown是执行完成后退出OpenOCD

成功日志如下:

C 复制代码
PS D:\OpenOCD-20231002-0.12.0\bin> .\openocd.exe -f "cmsis-dap.cfg" -f "stm32h7x.cfg" -c "program STM32H743-2740.hex" -c
 reset -c shutdown
Open On-Chip Debugger 0.12.0 (2023-10-02) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "swd". To override use 'transport select <transport>'.
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: JTAG supported
Info : CMSIS-DAP: Atomic commands supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 1 nRESET = 0
Info : CMSIS-DAP: Interface ready
Info : clock speed 1800 kHz
Info : SWD DPIDR 0x6ba02477
Info : [stm32h7x.cpu0] Cortex-M7 r1p1 processor detected
Info : [stm32h7x.cpu0] target has 8 breakpoints, 4 watchpoints
Info : gdb port disabled
Info : starting gdb server for stm32h7x.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
[stm32h7x.cpu0] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x080002b0 msp: 0x24000508
** Programming Started **
Info : Device: STM32H74x/75x
Info : flash size probed value 2048k
Info : STM32H7 flash has dual banks
Info : Bank (0) size is 1024 kb, base address is 0x08000000
Info : Padding image section 0 at 0x080038cc with 20 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x080038e0 .. 0x0801ffff
** Programming Finished **
shutdown command invoked
相关推荐
莎士比亚的文学花园5 小时前
stm32——平衡小车
stm32·单片机·嵌入式硬件
Hello_Embed6 小时前
STM32CubeIDE 创建第1个工程
stm32·单片机·嵌入式·ai编程
小麦嵌入式7 小时前
FPGA入门(一):手把手教你用 Vivado 创建工程并仿真
stm32·单片机·嵌入式硬件·mcu·fpga开发·硬件架构·硬件工程
czwxkn10 小时前
PCB设计-器件:2.电感
嵌入式硬件
佳木逢钺10 小时前
从零开始:基于STM32H750的硬件设计与软件开发完整流程详解
stm32·单片机·嵌入式硬件
Deitymoon12 小时前
ESP8266——透传
单片机·网络协议·tcp/ip
zhangrelay13 小时前
云课实践速通系列-基础篇汇总-必修-通识基础和专业基础-2026--工科--自动化、电气、机器人、测控等
linux·笔记·单片机·学习·ubuntu·机器人·自动化
Deitymoon14 小时前
ESP8266——UDP传输
单片机·网络协议·udp
踏着七彩祥云的小丑14 小时前
嵌入式——认识电子元器件——光电器件系列
单片机·嵌入式硬件
羽获飞14 小时前
从零开始学嵌入式之STM32——31.高级定时器
stm32·单片机·嵌入式硬件