CH571跳轉(zhuǎn)位置運(yùn)行如何操作
根據(jù)例程參考需要調(diào)用jumpApp,jumpApp中設(shè)定的地址為需要轉(zhuǎn)到運(yùn)行的地址
#define?IMAGE_A_START_ADD????0x1000 #define?jumpApp??????????????((void?(*)(void))((uint32_t?*)IMAGE_A_START_ADD))
需要請教的第一個問題是:IAP中跳轉(zhuǎn)到APP之前是否需要關(guān)各種外設(shè)或者中斷什么的?
APP程序中l(wèi)d文件修改FLASH初地址和長度
FLASH?(rx)?:?ORIGIN?=?0x00001000,?LENGTH?=?44K
對比啟動文件也有不同
li?t0,?0x88 csrs?mstatus,?t0 la?t0,?_vector_base ori?t0,?t0,?1 csrw?mtvec,?t0 la?t0,?main csrw?mepc,?t0 j?0x10000
需要請教的第二個問題是:0x88,0x10000這兩個地址是什么含義,修改APP位置是否需要修改此數(shù)值?
另外,如果不通過變量標(biāo)志ImageFlag,ld文件中是否不需要以下變量保持?
KEEP(*(.ImageFlag)) KEEP(*(.ImageFlag.*))