這是我的IAP升序,屏蔽Updata_Firmware()時(shí),跳轉(zhuǎn)兩個(gè)程序都是正常的,做了代碼搬運(yùn)就會(huì)出錯(cuò)。
熱門產(chǎn)品 :
CH641: PD及無(wú)線充電專用MCU
這是我的IAP升序,屏蔽Updata_Firmware()時(shí),跳轉(zhuǎn)兩個(gè)程序都是正常的,做了代碼搬運(yùn)就會(huì)出錯(cuò)。
搬運(yùn)代碼
CH582芯片
APP1代碼塊和APP2代碼塊地址都是固定的吧,檢查一下搬運(yùn)了代碼之后,指向的函數(shù)地址是否正確呢。
地址與我分區(qū)相同
我改了一下,只做區(qū)域讀寫,兩個(gè)地址的數(shù)據(jù)竟然是一樣的。
在編譯過(guò)程中,函數(shù)在codeflash中的地址已經(jīng)固定為A,代碼搬運(yùn)后實(shí)際保存在B。在調(diào)用函數(shù)時(shí),仍會(huì)在A處尋址,如果目的是調(diào)用在B中的函數(shù)這樣是不允許的。
我放棄了這個(gè)方案了,就是不能做傳統(tǒng)的flsh代碼覆蓋搬運(yùn)。