我寫了個(gè)IAP.用了flash的前16KB 08000000~08004000,有幾次我發(fā)現(xiàn)在電流不太充足的情況下,擦除08004000之后的數(shù)據(jù),會(huì)導(dǎo)致下次上電連IAP都進(jìn)不去.有沒(méi)有辦法解決?
神奇的是,觸發(fā)bug的時(shí)候,本次運(yùn)行不會(huì)有問(wèn)題,下次運(yùn)行才出現(xiàn)iap進(jìn)不去的現(xiàn)象
我寫了個(gè)IAP.用了flash的前16KB 08000000~08004000,有幾次我發(fā)現(xiàn)在電流不太充足的情況下,擦除08004000之后的數(shù)據(jù),會(huì)導(dǎo)致下次上電連IAP都進(jìn)不去.有沒(méi)有辦法解決?
神奇的是,觸發(fā)bug的時(shí)候,本次運(yùn)行不會(huì)有問(wèn)題,下次運(yùn)行才出現(xiàn)iap進(jìn)不去的現(xiàn)象
這是我擦除數(shù)據(jù)用的代碼,在電流不足的情況下執(zhí)行,會(huì)導(dǎo)致08000000~08004000的固件程序也出問(wèn)題
您好,有幾個(gè)點(diǎn)需要跟你確認(rèn)一下:1、電流不太足丟固件的情況下,此時(shí)MCU的供電電壓是多少以及是否穩(wěn)定;2、程序中系統(tǒng)主頻配置的大小是多少,若系統(tǒng)主頻超過(guò)100MHz時(shí),操作FLASH時(shí)需要將HCLK進(jìn)行2分頻,F(xiàn)LASH操作完成后再恢復(fù),具體可參考我們CH32V307 EVT的FLASH操作例程;3、看你這段代碼包含標(biāo)準(zhǔn)編程擦除方式以及快速編程擦除方式,程序中是否有進(jìn)行標(biāo)準(zhǔn)編程解鎖和快速編程解鎖。此外,在CH32V307 EVT中有對(duì)應(yīng)IAP例程,你可以參考一下。后續(xù)的問(wèn)題溝通可通過(guò)郵箱(lzs@wch.cn)和我溝通。
CH32V307 EVT:http://www.findthetime.net/downloads/CH32V307EVT_ZIP.html
把頻率降低到100MHz以下后,似乎就沒(méi)有問(wèn)題了,這是怎么回事,手冊(cè)上似乎沒(méi)怎么提到這個(gè),太坑了
您好,在CH32V307應(yīng)用手冊(cè)中有一段關(guān)于FLASH操作的介紹,當(dāng)主頻超過(guò)100MHz時(shí),需要先進(jìn)行2分頻,具體如下圖。關(guān)于這段介紹,可參考CH32V307應(yīng)用手冊(cè)第32章。應(yīng)用手冊(cè)下載鏈接如下:
http://www.findthetime.net/downloads/CH32FV2x_V3xRM_PDF.html
ch32V307跑程序千萬(wàn)別用144Mhz,手冊(cè)上默認(rèn)值已經(jīng)是2分頻了,大概率有些ic跑不了