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

flash操作为什么只能擦除不能写入??

flash操作为什么只能擦除不能写入??

我用的是JL3,ROM的地址是$ec00~$fbff,因为我要擦写64字节的flash,就要设置保护区为$ec40--$fbff,程序中也就修改了FLBPR。在prm文件中将默认的"ROM = READ_ONLY  0xEC00 TO 0xFBFF";  改写为“ROM = READ_ONLY  0xEC40 TO 0xFBFF;”。


这样在程序运行过程中,擦写 flash时,发现只能对$ec00--$ec3f可以擦除,但是不能写入数据。当然在对flash操作时,是在RAM里进行的。


如果在prm文件中改回默认的值"ROM= READ_ONLY  0xEC00 TO 0xFBFF;",结果发现在程序运行中可以对flash进行擦除,和正常写入。当然$ec00--$ec3f被改写了,程序第二次上电不能正常运行。


请问:是程序的错误吗?究竟该怎么样操作,才能对那64个字节正常的擦除和写入呢?


 


 

以前用到擦写flash,也是直接调用monitor ROM里的程序,但是这样做的话,会有个问题,就是写flash的时间过长,它是从$8c开始直到$ff共116个数据都写了进去,这样的话经过测试应该是在8,9个毫秒多了。 我只需要写4个数据到flash里去,且时间要小于5ms。所以才放弃调用monitor rom里的程序。
用汇编写程序做过测试,编译环境是mmevs08,可以正常擦写。用CW做,却只能擦,不能写。
真是奇怪
哦,可以指定写任意长度么?那是怎么操作的呢?
返回列表