【问题标题】:chip erase via SWD on M0+通过 M0+ 上的 SWD 进行芯片擦除
【发布时间】:2019-08-08 20:51:40
【问题描述】:

我想通过 SWD 刷写 M0+ 设备。 这是由主机处理器而不是程序员实现的。

我已经能够写入并验证到 RAM 但不能写入闪存。

它似乎与 M3/4 内核有点不同,所以它不适用于 M0+。

也许你们中的某个人可以帮助我使用兼容的序列来通过 M0+ 上的 SWD 进行芯片擦除和写入命令?

谢谢 丹尼尔

【问题讨论】:

  • swd与cortex-m对话,arm和cortex-m不是芯片,它们只是其中的一部分,购买了芯片厂商使用的ip。 ahb/axi 总线之外的任何东西都是芯片供应商的领域,尤其是闪存和闪存控制器。
  • 您使用的是什么芯片,尝试现有工具时发生了什么?

标签: arm cortex-m swd


【解决方案1】:

闪存擦除是特定于设备的。您通常不能只将值写入闪存,您需要使用闪存控制器先擦除一个块,然后重复执行写入/验证访问,直到值稳定。这个写入阶段通常也由控制器自动完成。

由于闪存通常是运行代码的地方,因此您还需要先将代码下载例程复制到 RAM 中,然后在闪存忙时从 RAM 执行。

所有访问都可以通过处理器或外部调试器执行。如果您想通过 SWD 执行访问,您的调试软件需要了解确切的目标设备、它的内存映射以及闪存控制器的要求。所有这些信息都应包含在您正在使用的设备的数据表中(并且将在某处得到制造商工具链的支持)。

如果您编写自己的闪存例程,请务必遵守规范。 Flash 是一个模拟组件,即使你不破坏芯片,你仍然很容易进入一个难以恢复的状态。

【讨论】:

    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2018-01-18
    • 2019-01-21
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多