在进行CH32F103到CH32V103的移植中,原先程序有做IAP。在切换到RISC-V之后指令不知如何转换,主要的疑问有:
1.ld文件中ROM起始地址0x00000000,改成0x08000000是否也可以,官方的规格书说两个程序的启动地址一样,怎么解释
2..RISC-V没有__set_MSP指令,怎么在进行跳转时?
Jump_To_Application = (pFunction)(*(vu32*)(APP_BASE + 4));
__set_MSP(*(vu32*)APP_BASE);
Jump_To_Application();
3.RISC-V没有中断向量重新映射指令,咋整?
NVIC_SetVectorTable(。。。)
如果在程序中要擦除FLASH地址20K后的数据,地址应该设置为0x08005000,关于USBWakeUp_IRQHandler函数,USBHD唤醒能响应该中断。
可以参考下面,CH32V103 IAPdemo可见附件,LD文件中FLASH起始地址需设置成0,编译器会自动加0x08000000,得到解决
(下载次数: 24, 2021-5-18 21:02 上传)
iar实在是用不习惯