CH571跳转位置运行如何操作
根据例程参考需要调用jumpApp,jumpApp中设定的地址为需要转到运行的地址
#define IMAGE_A_START_ADD 0x1000 #define jumpApp ((void (*)(void))((uint32_t *)IMAGE_A_START_ADD))
需要请教的第一个问题是:IAP中跳转到APP之前是否需要关各种外设或者中断什么的?
APP程序中ld文件修改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位置是否需要修改此数值?
另外,如果不通过变量标志ImageFlag,ld文件中是否不需要以下变量保持?
KEEP(*(.ImageFlag)) KEEP(*(.ImageFlag.*))