Arm OpenOCD:仅在闪存擦除\u扇区后闪存写入\u图像

Arm OpenOCD:仅在闪存擦除\u扇区后闪存写入\u图像,arm,stm32f4discovery,openocd,Arm,Stm32f4discovery,Openocd,我在和基特玩。 我正在从加载一个简单的“闪烁led”程序。我设法编译了代码并加载了它。我加载了代码: 复位电路板后,程序加载并运行。但是,write_image命令只有在我使用以下命令擦除闪存后才能工作: flash erase_sector 0 0 11 如果我不清除闪存,即使我成功地写入图像,程序也不会运行(LED不会闪烁) 问题:为什么我需要在写入图像之前擦除\u扇区?为什么光写图像是不够的?看看写图像的帮助,我认为有一个擦除选项。写写,擦除擦除,如果你想写,你需要先擦除。谢谢。但为什么

我在和基特玩。 我正在从加载一个简单的“闪烁led”程序。我设法编译了代码并加载了它。我加载了代码:

复位电路板后,程序加载并运行。但是,
write_image
命令只有在我使用以下命令擦除闪存后才能工作:

flash erase_sector 0 0 11
如果我不清除闪存,即使我成功地
写入图像
,程序也不会运行(LED不会闪烁)


问题:为什么我需要在写入图像之前
擦除\u扇区
?为什么光写图像是不够的?

看看写图像的帮助,我认为有一个擦除选项。写写,擦除擦除,如果你想写,你需要先擦除。谢谢。但为什么用write_图像覆盖flash是不够的呢?如果“擦除”是必要的,为什么它甚至是一个选项(而不是默认行为)?这并不是说“写”写1,“擦除”写零:)更多地取决于擦除将其清除为1的部分,如果你想考虑的话,写入将写零。但是,如果一个字节的值是上次写入时的0xA,而现在您希望该字节是0x4,那么写入的0x4将保持为0xA。使您的程序无法运行。这是一个选项,因为这是两个独立的步骤,例如,您可以删除整个部分,然后分别编写页面。为什么不按设计使用该软件?
flash erase_sector 0 0 11