標(biāo)題:
STM8S單片機EEPROM燒錄錯誤:Verify failed at address 0xXXXX
[打印本頁]
作者:
liumei
時間:
2014-5-1 02:49
標(biāo)題:
STM8S單片機EEPROM燒錄錯誤:Verify failed at address 0xXXXX
個人總結(jié):延遲21毫秒后再操作EEPROM,延遲20毫秒燒錄都會報錯。(STM8S003F3)
我上個月也出現(xiàn)了這樣的問題,對出現(xiàn)問題的的工程進行分析。
發(fā)現(xiàn),在main函數(shù)中直接解除EEPROM的鎖定,然后對特定的EEPROM地址進行賦值,只要賦的值不是0,就會報錯,
直接插入CLR或者LD指令操作EEPROM地址,發(fā)現(xiàn)CLR指令不會報錯,LD的會報錯。也就是說,
清零沒問題,賦值會有問題
。
今天,使用STVP下載的時候再次出現(xiàn)這樣的問題,對多處修改進行分析。發(fā)現(xiàn)原來是我用的配置初始化函數(shù)中ConfigInit(),
有類似這樣的語句*EEP_Config =ROM_Config(兩個都是結(jié)構(gòu)體,其中前面一個指向EEP,后一個在定義的時候帶有const)。
今天早上之前都沒有這個錯誤的,經(jīng)查出現(xiàn)錯誤的原因是:以前我是在菜單狀態(tài)機的第一個狀態(tài),在啟動
后一秒鐘調(diào)用
ConfigInit(),
而今天早上我是將ConfigInit()函數(shù)放到了第一個狀態(tài)的入口動作上,也就是說在菜單狀態(tài)機被初始化的時候,ConfigInit()函數(shù)就會被調(diào)用。
同時我是將初始化菜單狀態(tài)機的函數(shù),直接放在main函數(shù)中的,即
上電后馬上調(diào)用
ConfigInit()!
將ConfigInit()函數(shù)延后執(zhí)行后,程序下載恢復(fù)正常。
我才猜測是這樣的:
啟動后的一段時間內(nèi)不能對EEPROM進行賦值,要不然就會被報錯。
結(jié)合在STVP下載的時候,能看到LCD狂閃,推論如下:
STVP在下載的時候,程序是可以斷斷續(xù)續(xù)的運行的,而在期間如果執(zhí)行了賦值EEPROM的動作,那么STVP在隨后對EEPROM的
檢測的時候,發(fā)現(xiàn)并非全是0,就會將不是0的那個地址用下面的語句報錯:
Verify failed at address0xXXXX
希望能幫到以后遇到這個問題的人~~
作者:
linyuan8990
時間:
2014-7-25 18:29
為了贊一下樓主,申請了論壇賬號,今天也遇到了這個問題,糾結(jié)了很久,感謝樓主發(fā)帖。這個玩意應(yīng)該是STVP的問題了,程序本身可以正常運行。
作者:
linyuan8990
時間:
2014-7-25 18:29
為了贊一下樓主,申請了論壇賬號,今天也遇到了這個問題,糾結(jié)了很久,感謝樓主發(fā)帖。這個玩意應(yīng)該是STVP的問題了,程序本身可以正常運行。
作者:
尛舞ICC
時間:
2014-7-29 13:06
幫樓主頂一下 今天我也遇到了這個問題
作者:
5992230
時間:
2014-11-24 17:21
我今天也遇到這個問題,如果不延時,后面的初始化都進行不下去
作者:
luzhanghao
時間:
2017-8-7 10:44
我也遇到這個問題了,感謝樓主慷慨分享!
作者:
luzhanghao
時間:
2017-8-7 10:45
謝謝分享
作者:
llzzzz
時間:
2020-12-10 11:39
謝謝樓主 我的是207S8 22ms 有時候也會出問題 直接加到50ms延遲了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1