使用 STLINK 和 Linux 烧录 ST 板

gui*_*tou 2 linux command-line stm32 raspberry-pi stm32ldiscovery

我正在尝试通过 STLINK 连接器从 Linux 在命令行中刷新 ST 板(STM32 发现套件 STM32L072)。

要使用 STLINK 进行闪存,您只需将要闪存的二进制文件复制粘贴到 USB 读卡器(与 STLINK 关联)中即可;

为此,使用dmesg,我找到了/dev/sdx。然后我挂载/dev/sdx

mkdir /mnt/board
sudo mount /dev/sdx /mnt/board
Run Code Online (Sandbox Code Playgroud)

使用ls命令我可以读取 ST 板的文件夹:

$ ls /mnt/board/
DETAILS.TXT  MBED.HTM
Run Code Online (Sandbox Code Playgroud)

==>我可以读ST板。

现在我可以将二进制文件复制到 ST 板上。复制后应该自动完成刷新:

sudo cp mybinarytoflash.bin /mnt/board
Run Code Online (Sandbox Code Playgroud)

我们可以看到 STLINK 的 LED 呈绿色闪烁。二进制文件正在闪烁。

但我有两个主要问题:

  • 有时,将二进制文件复制到/mnt/board后,不会立即将二进制文件刷新到 ST 板。有时我们必须等待 30 秒以上。

  • 我的第二个问题是,刷机后,ST板没有RESET。当我在装有Windows的计算机上执行此过程时,ST板在闪烁后重置。我需要对/dev/sdx或其他东西做一些事情吗?

非常感谢你,纪尧姆

gui*_*tou 8

我找到了一个新的解决方案,使用工具来驱动 STLINK 作为探针:

安装 STLINK 工具: sudo apt-get install stlink-tools

  • 闪光sudo st-flash write <file_to_flash>.bin 0x08000000
  • 重置sudo st-flash reset

该解决方案工作完美,闪烁速度很快。