谢谢斑竹!
按照您给的提示,先在设置选项中将“EEPROM”打勾,用slab先写入,然后读出,结果正确,再恢复原来程序,一路顺风,一切OK!
昨天忙了半天,先编写的“类EEPROM”擦除、写入、读出程序始终不工作,反复核对查验,程序应该没错,但就是不工作。
后来没法子,去掉“MOV FLASHCON,#01H”指令,将读写地址由 0-1FFH改为800H-0C00H, 一切正常,一次通过,再改回去,又不能正常工作!:L
今天,按照您给的提示,先在设置选项中将“EEPROM”打勾,用slab先写入,然后读出,结果正确,再恢复原来程序,一切正常!
这么简单的程序写错的概率几乎为0, Keil uVision3 是为SH88F2051新装的,一次都没运行过,中间调试过程中,Keil uVision3 退出再进入过好几回,出错可能性有以下几点:
1. 计算机中某个关键变量被干扰改写,引发出错,不过由于Keil uVision3 退出再进入过好几回,这种出错可能性的概率几乎为0。
2. Keil uVision3或中颖的Keil插件有点小BUG, 联机时必须先用slab写入一次“类EEPROM”,才能正常工作。根据实时仿真原理,这种出错可能性的概率也几乎为0。
3. 这片SH88F2051芯片中大奖,由于某种突发的电磁干扰或出厂时的缺陷,使得支持“类EEPROM”正常读写的某一个控制位被改写,使的俺劳命伤财,始终无法调通“类EEPROM”擦除、写入、读出程序,当用slab写入一次“类EEPROM”时,slab对控制“类EEPROM”正常读写的某一个控制位进行了重新刷新设置,故以后一切操作均恢复正常,这种可能性和出现的概率最大。
4. 如以上的可能性为0, 那另一种可能性就是,碰到鬼了~~~ :lol
综上,得出一个经验教训,在实在调试不通调试不出时,可更换一下硬件芯片,尽管硬件芯片损坏出错的概率几乎为0, 但是, 不等于您不会中大奖中头彩。:P
|