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