在使用JLink下载时,在KEIL软件中,可以选择擦除选取而不是整个芯片,KEIL调用的是JLinkARM.dll
来完成这个工作的。
使用JFlush下载时,也有 erase sectors选项,经过测试试验,这个选项不起作用。
因此,决定使用JLink commander的命令行来试试。在官网查询有erase 命令,并且支持选取,最后试验无果。
最后发现是格式和JLink版本导致的没有效果。老版本的JLink不支持擦除选取,因此JFlush不支持擦除选取应该也是这么个原理。
下载最新的JLink,使用如下命令。注意:选区的大小格式有要求,我用的Nordic的芯片,Flash擦除只能是按页擦除,必须是4K的整数倍,否则会操作失败
erase 0x38000,0x57FFF
老版本的JLink则不支持擦除选取,只能erase chip,擦除整片芯片。