大家经常会遇到AC78xx芯片在进行烧写的时候提示各种错误,这里给大家提供一个keil下的简易排查思路:
1,确认芯片是否识别:
点击魔术棒,在Debug->Setting里面,在选择了正确的仿真器型号,有给芯片正确的供电,仿真器和芯片正确的连接情况下,我们应该要能够识别到芯片的内核。如果无法获取内核,那么可以排查供电,仿真器型号选择,仿真连接等是否正确,这些无误,那可以再次审查,芯片是否进入了休眠,程序是否将仿真口给配置成了其他功能。
2,检查读写保护:
一般能识别到芯片,又排除上述故障,那基本就是flash读写保护的问题,这个问题可以通过进仿真的方式确认。
因为此时无法烧录程序,所以我们需要进行一些配置,按下图的方式修改Flash Download,并点击OK。
修改完后,点击Debug按钮,因为此时已经去除了擦写flash的这些操作,所以点击Debug不是烧写程序,而是直接进入debug界面。
注:这里会弹一个No flash operation selected,忽略,直接点OK即可。
进入仿真后,直接通过memory窗口查看0x08040000地址处的值,和参考手册eflash章节的读写保护状态值进行比较:
上面是正常的芯片,没有任何的读写保护,如果有读写保护,应该能读出不一样的值。借此,可以判断自己的eflash有没有被读写保护。
最后,如果确认了是读写保护导致,那么只需要解除即可,解除的方法可以参考论坛里面的解除读写保护的帖子。
|