首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于EEPROM的擦写

0xA000处于分页地址区。当对此地址进行操作时,必须注意其分页,即PPAGE寄存器的值。
海纳百川  有容乃大
把映射到固定页的project也贴出来看看。
海纳百川  有容乃大
问题其实很简单。实际上你的程序对EEPROM的操作都是对的,只是你没有告诉编译器你的EEPROM在哪里,所以调试时无法正确显示。你只要在PRM文件中加上这么一句即可:

/* unbanked FLASH ROM */
ROM_4000 = READ_ONLY 0x4000 TO 0x6FFF;
EEPRO_RM = READ_ONLY 0x7000 TO 0x7FFF;
ROM_C000 = READ_ONLY 0xC000 TO 0xFEFF;

另外你说的上电后数据丢失,应该是由于再次调试连接时会将芯片全部擦除。你也可以选择不擦除EEPROM。
海纳百川  有容乃大
在调试界面的File->Configuration里,选择Load,选中“Automatically erase and program into FLASH and EEPROM”(打勾),然后按它下方的“Advanced...”按钮,就可以选择在编程时不擦除哪个部分了。

关于第二个问题,你的理解是对的。但EEPROM的映射地址是可以改变的。如果你愿意,完全可以用到全部的EEPROM空间。
海纳百川  有容乃大
CW4.5和CW4.6。
海纳百川  有容乃大
返回列表