背景,在某次用flash模拟eeprom时,突然发现程序不跑了,怀疑是擦写flash时将code区擦除了,遂开始一系列测试,打算将芯片中的读出来查看。
1、设置keil工程
(1)将硬件调试中的Load Application at Startup 去掉勾选
(2)将flash 配置中的芯片擦写改为不要擦写,将Program 、Verify、 Reset and Run等的勾选去掉。
2、进入芯片仿真,并点击全速运行
(注意,此处必须点击全速运行,否则memory中的数据会不准,实测是启动区的编码有差异)
3、打开命令窗,输入保存memory区命令
(1)打开命令窗
(2)输入保存memory命令
命令: SAVE C:\Users\Administrator\Desktop\Debug\DATA3.txt 0x00000000,0x00006750
其中save是命令码,之后是路径,在之后是要保存数据memory的起始地址,推荐起始地址设置为代码区的起始地址,方便分析。
4、读取文件
从实测来看,如果读取出来的是code区的代码,此文件会与keil编译生成的hex文件保持一致,可以以此为依据判断代码是否有被擦写