我想通过 SWD 刷新 M0+ 设备。这是由主机处理器而不是程序员实现的。
我已经能够写入并验证到 RAM 但不能写入闪存。
它似乎与 M3/4 内核有点不同,因此它不适用于 M0+。
也许你们中的某个人可以帮助我使用兼容的序列来通过 M0+ 上的 SWD 进行芯片擦除和写入命令?
谢谢丹尼尔
闪存擦除是特定于设备的。您通常不能只将值写入闪存,您需要使用闪存控制器先擦除一个块,然后重复执行写入/验证访问,直到值稳定。这个写入阶段通常也由控制器自动化。
由于闪存通常是运行代码的地方,因此您还需要首先将代码下载例程复制到 ram 中,并在闪存繁忙时从 RAM 执行。
所有访问都可以通过处理器或外部调试器执行。如果您想通过 SWD 执行访问,您的调试软件需要了解确切的目标设备、它的内存映射以及闪存控制器的要求。所有这些信息都应包含在您正在使用的设备的数据表中(并且将在某处由制造商的工具链支持)。
如果您编写自己的闪存例程,请务必遵守规范。Flash 是一个模拟组件,即使您不破坏芯片,您仍然可能很容易进入难以恢复的状态。