【发布时间】:2017-11-29 12:12:22
【问题描述】:
我想使用 openocd 将特定值写入闪存中的地址。
地址是0x0003FFF0。我要写入的值是0xFFFFC000。
要删除我使用的那个地址:
flash erase_address 0x0003FFF0 2048
但收到错误消息address range 0x0003fff0 .. 0x0003ffff is not sector-aligned
为了解决这个问题,我运行了 flash info 0 以找到要开始的地址,然后运行 flash erase_address 0x38000 2048 并且成功了。
最后将值写入我试过的闪存:
reset halt
mww 0x0003FFF0 0xFFFFC000
但出现此错误:
SWD ack not OK: 4 FAULT
SWD IDCODE 0x2ba01477
【问题讨论】:
-
你能显示
mww之前的代码吗? -
@RingØ 现在更新了,只是一个
reset halt -
这是一个微控制器,非常特定于芯片(cortex-m3 不是芯片,除了调试器通信以获取芯片特定外围设备的 blob 之外,根本没有真正的相关性)。所以首先没有理由期望从openocd闪烁工作,一旦我们从并行到串行闪存全部结束(芯片特定,以前不一定)。那么您使用的是什么芯片,什么 openocd 版本以及您使用什么命令行和/或 openocd 脚本来获取访问权限?
-
很少有 µC 将允许使用
mww直接写入闪存。这就是为什么 openOCD 有特殊的闪存写入命令的原因。
标签: c arm gdb cortex-m3 openocd