Stlink: STM32F103 不闪

创建于 2017-01-25  ·  11评论  ·  资料来源: stlink-org/stlink

你好,

我正在尝试使用 STM32F407 探索板通过 SWD 刷新 STM32F103 板。 不幸的是,它不仅适用于 STM32F103 板。

  • [x] 编程器/板卡类型:Stlink/v2
  • [x] 操作系统:Mac OS X
  • [x] Stlink tools version stlink: stable 1.2.0 (bottled), HEAD, Poured from bottle on 2015-10-04
  • [x] Stlink 命令行工具名称: st-flash
  • [x] 目标芯片(和可选板):例如 STM32F103C

输出:

st-flash write prog.bin 0x8000000
2017-01-24T18:44:14 INFO src/stlink-common.c: Loading device parameters....
2017-01-24T18:44:14 INFO src/stlink-common.c: Device connected is: F1 High-density device, id 0x10036414
2017-01-24T18:44:14 INFO src/stlink-common.c: SRAM size: 0x10000 bytes (64 KiB), Flash: 0 bytes (0 KiB) in pages of 2048 bytes

正如你所看到的,它给出了一些意想不到的东西,比如
Flash: 0 bytes (0 KiB) in pages of 2048 bytes

st-info --probe
Found 1 stlink programmers
 serial: 303030303030303030303031
openocd: "\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x31"
  flash: 0 (pagesize: 2048)
   sram: 65536
 chipid: 0x0414
  descr: F1 High-density device

有谁知道如何解决它。
先感谢您。

generadocumention omacOS programmestlinkv2 staturesolved targestm32f1

最有用的评论

嗨,我在 openocd 终端会话上使用以下命令成功解锁了 stm32 bluepills:

重置暂停
闪存库
stm32f1x mass_erase 0
stm32f1x 解锁 0

之后,该设备已准备好再次进行编程。

所有11条评论

使用 ST Link Utility解决

董事会是_写保护_

感谢您的报告,我想我会将其添加到文档中,这样其他人就不会因此而失败。

嗨,你能帮我吗? 如何禁用写保护? 我正在使用 Mac OSX。 官方的 St-link 实用工具仅适用于 Windows,对吗?

您可能可以先进行批量擦除,然后我认为写保护已被清除。 或者使用一些 openocd 命令(它具有比 texane/stlink 更多的功能)。

感谢您的快速答复。 我已经尝试擦除闪存,它有效。 但是,问题仍然存在。 我将尝试使用一些 windows 计算机来看看会发生什么。 :\

你在 README 中看到过这个吗?
https://github.com/texane/stlink/commit/0f9e4990ba0cdc295875b219b354fdf42f30a9aa

使用 OpenOCD 时,您可能会调用monitor stm32f1x unlock 0命令(未经测试)。 请参阅http://openocd.org/doc/html/Flash-Commands.html。

我已经运行了 ST-LINK 实用程序(在 Windows 上),然后我去了 Target > Option Bytes... > Disable Read Out Protection(组合框)。 完成,问题解决。

我可以通过以下链接找到有关使用 openOCD 禁用读取保护的线索: http :

嗨,我在 openocd 终端会话上使用以下命令成功解锁了 stm32 bluepills:

重置暂停
闪存库
stm32f1x mass_erase 0
stm32f1x 解锁 0

之后,该设备已准备好再次进行编程。

@jeroavf谢谢! 这对我有用, --probe现在返回65536 (看起来我得到了为数不多的 64kb 模型之一)以及正确闪烁。

有趣的是,在执行mass_erase步骤时,它甚至认为它是 128kb,但没关系。

STM32 flash size failed, probe inaccurate - assuming 128k flash
flash size = 128kbytes

谢谢,我能够使用 Windows ST-Link 实用程序对一些 STM32F437 进行完整的芯片擦除,现在这又可以在 linux st-link 上运行了 :-)

此页面是否有帮助?
0 / 5 - 0 等级