【问题标题】:flash a ST board with STLINK and Linux用 STLINK 和 Linux 刷 ST 板
【发布时间】:2020-11-10 16:20:10
【问题描述】:

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

要使用 STLINK 闪存,您只需将二进制文件复制过去以闪存到 USB 阅读器(与 STLINK 关联);

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

mkdir /mnt/board
sudo mount /dev/sdx /mnt/board

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

$ ls /mnt/board/
DETAILS.TXT  MBED.HTM

==> 我能读懂 ST 板。

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

sudo cp mybinarytoflash.bin /mnt/board

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

但我有 2 个电源问题:

  • 有时,在将二进制文件复制到/mnt/board后,二进制文件的flash 到ST 板并没有立即进行。有时我们必须等待 30 秒以上。

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

非常感谢, 纪尧姆

【问题讨论】:

  • 也许你必须使用命令sync 告诉 Linux 立即将所有文件写入驱动器,而不是将它们保存在内部缓冲区中。
  • 这不是编程问题。
  • 嗨 P__J__。也许这不是一个纯粹的编程问题,但也许我将二进制文件复制到USB驱动程序(STLINK)的方法并不完美,并且有一种方法可以更好地复制。在 Windows 下,它工作得很好。使用 Linux 和我的方法,它不能完美地工作。

标签: linux command-line raspberry-pi stm32 stm32ldiscovery


【解决方案1】:

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

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

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

这个方案效果很好,刷机也很快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多