使用CH32V20xEVT.ZIP中的IAP示例程序CH32V20x_IAP編譯完下載進(jìn)入官方的CH32V203C8T6-R0評(píng)估板,在WIN10下使用WCHMcuIAP_WinAPP.exe進(jìn)行下載,按照軟件默認(rèn)選擇了編譯完APP的hex文件,發(fā)現(xiàn)下載成功,但是APP不運(yùn)行。
折騰了兩天,最終發(fā)現(xiàn)使用HEX格式的app被下載到了0x800A000處,而不是IAP之前默認(rèn)的0x8005000處,APP能運(yùn)行才怪呢。但是看芯片端iap程序沒發(fā)現(xiàn)什么大問題,考慮到這個(gè)IAP一切都靠事先約定,芯片端的IAP代碼就是直接執(zhí)行,問題很可能出現(xiàn)在PC端的WCHMcuIAP_WinAPP.exe上,苦于沒有源碼,沒有通信協(xié)議說明,只能打算重寫整套工具。
突然腦子一動(dòng),會(huì)不會(huì)PC端這個(gè)程序解析HEX文件出錯(cuò)了呢,再次打開下載文件選擇框,改選bin格式文件,點(diǎn)程序下載,然后居然APP運(yùn)行起來了!
把FLASH內(nèi)容dump出來對(duì)比,果然是HEX文件下載的出了問題
使用HEX文件下載完5000偏移處的內(nèi)容截圖
A000偏移處內(nèi)容截圖
改用BIN文件來下載,5000偏移處內(nèi)容截圖,顯然已經(jīng)是固件的中斷向量表內(nèi)容
而A000偏移處則恢復(fù)了空白