linux - 用 STLINK 和 Linux 刷 ST 板
问题描述
我正在尝试通过 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 闪烁,呈绿色。二进制文件正在闪烁。
但我有两个主要问题:
有时,将二进制文件复制到/mnt/board后,不会立即将二进制文件闪存到 ST 板。有时我们必须等待 30 秒以上。
我的第二个问题,就是刷完之后ST板没有RESET。当我使用装有 Windows 的计算机执行此过程时,ST 板在闪烁后被重置。我需要对/dev/sdx或其他东西做些什么吗?
非常感谢,纪尧姆
解决方案
我找到了一个新的解决方案,使用一个工具来驱动 STLINK 作为探针:
安装 STLINK 工具:
sudo apt-get install stlink-tools
- 闪光灯:
sudo st-flash write <file_to_flash>.bin 0x08000000
- 重置:
sudo st-flash reset
该解决方案完美运行,并且闪烁很快。
推荐阅读
- javascript - 汗水警报仅删除第一行 asp.net core html jquery
- javascript - v12 不会删除机器人的反应,但 v13 会删除机器人的反应 (discord.js)
- kotlin - 如何从 Firestore 中获取文档,其中数组字段与 Kotlin 中的字符串匹配?
- php - 加载数据 infile 不在 php 中执行
- javascript - 错误:React 中的“超过最大更新深度”错误
- java - SpotBugs 警告:使用 keySet 迭代器而不是 entrySet 迭代器效率低下
- android - React-native 0.65 (targetSdk=30) android build 由于 react-native-reanimated 而失败
- java - Spring Boot MVC 2.5.3 验证显然不起作用
- json - 从 Json 获取值并使用 powrshell 在 XML 文件中更新?
- neo4j - 如何在足球比赛传球的neo4j中创建边缘