CH571跳轉(zhuǎn)位置運(yùn)行如何操作

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.*))


  1. 一般IAP會寫的簡單,不開啟額外的功能,跳轉(zhuǎn)到app之前最好是要關(guān)閉中斷這些操作的。

  2. 0x88是用戶模式,不用修改,j 0x10000指向固定庫位置,對于571而言,flash是192k,庫只能放在這邊,所以不用修改,

  3. 不用標(biāo)志ImageFlag可以不保持。


mstatus.png


可以看一下mstatus寄存器描述,0x88代表開啟機(jī)器模式中斷,同時把MPIE置1(MPIE 更新為進(jìn)入異常和中斷前的 MIE 值,異常和中斷結(jié)束后,MPIE 用于恢復(fù) MIE)


手冊在哪下載的


您好,請參考青稞微處理器手冊:

QingKeV4_Processor_Manual.PDF - 南京沁恒微電子股份有限公司 (wch.cn)



只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频