如何仅使用Linux终端刷写stm32?

4

所以,有Archlinux发行版、stm32 mc和C代码。如何在没有任何IDE的情况下,只使用控制台来刷写stm32?


你能简要介绍一下吗? - Moumit
这通常是一个问题。这样做是真实的吗?人们通常如何做到这一点。 - Danial
这是可能的,但您没有提供足够的细节以获得有用的答案。 - user149341
什么细节?所有的stm32控制器都是以相同的方式烧录的。好的,实际上有两种方法,如果一种失败了,请尝试另一种。 - followed Monica to Codidact
2个回答

13
使用Texane stlink
  1. 按照README所述安装
  2. 如果需要,将您的固件转换为.bin格式
    arm-none-eabi-objcopy -O binary firmware.elf firmware.bin
  3. /opt/stlink/st-flash write firmware.bin 0x8000000
使用OpenOCD,如果您的开发板不受Texane支持:
  1. 从上面的链接获取并安装(忽略Eclipse部分)
  2. openocd/scripts/board中查找您的板描述文件,如果没有,请创建一个。
  3. openocd -d0 -f board/yourboard.cfg -c "init;targets;halt;flash write_image erase firmware.hex;shutdown"

5
如果您有USB转UART适配器,您可以使用stm32flash。基本上将USART1连接到适配器,将BOOT0拉高(板子上可能有跳线或按钮),然后上电/复位板子。然后您应该能够遵循stm32flash -h来查看要做什么。
一些STM32(例如STM32F042)内置了USB DFU bootloader,因此您也可以直接将MCU连接到USB并使用dfu-utils

一个示例Makefile可以在这里找到:https://github.com/dword1511/stm32-vserprog/blob/master/Makefile#L114 - Chi Zhang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接