(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文件保持一致,可以以此为依据判断代码是否有被擦写
你如果硬件MCU用的是AT892051的话,KEIL中CPU类型选AT89C51就可以了.因为你打开AT89C51的头文件的话,你会发现其中的资源要比你硬件AT892051要丰富的多.
当然,头文件可以完全自己写,或者在其他头文件中修改或添加.
其实用什么样的头文件都没有关系,只要你使用的名称所定义的寄存器地址和你所用硬件MCU的寄存器地址对应就可以.
如果有什么疑问的话,可以和我交流,个人邮箱:
ppt1845@163.com
这是我的一个工程文件,其中带有黄色钥匙标志的是必须要有的,core_cm3.c是内核文件、system_stm32f10x.c里面配置了整个系统的时钟、startup文件就是一个启动文件了,其他的应用层的文件自己根据需要添加就可以了。请采纳答案,支持我一下。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)