• 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文件,在根目录打开终端并输入如下命令:

    make -j12
    
    • 1

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

    arm-none-eabi-size build/STM32H743.elf
       text    data     bss     dec     hex filename
      22908      24    2464   25396    6334 build/STM32H743.elf
    
    • 1
    • 2
    • 3

    下载

    参考命令如下:

    openocd.exe -f "interface/cmsis-dap.cfg" -f "target/stm32h7x.cfg" -c "program STM32H743-2740.hex" -c reset -c shutdown
    
    • 1

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

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

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

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

    成功日志如下:

    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 '.
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    Linux C语言无名信号量与有名信号量(无名使用 <semaphore.h>,有名信号量<sys/sem.h>)
    扩大减产,NAND Flash市场迎来涨价潮 | 百能云芯
    小白立创机械狗从零到成品总结
    两台linux虚拟机之间实现免密登录
    JUnit介绍
    java blob 转文件
    手把手教你前后分离架构(五) SpringBoot连接数据库
    Solaris 9 Sparc下安装整合Apache2和Tomcat5
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java宠物寄养平台设计03zp5
    凌玮科技IPO注册生效:曾踩雷理财损失2000万元,胡颖妮为董事长
  • 原文地址:https://blog.csdn.net/qq_36973838/article/details/136730214