[MCU] 沁恒CH32F103到CH32V103移植的IAP问题

火辣西米秀   2021-5-18 20:58 楼主

 

在进行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(。。。)

 

 

 

 

回复评论 (2)

如果在程序中要擦除FLASH地址20K后的数据,地址应该设置为0x08005000,关于USBWakeUp_IRQHandler函数,USBHD唤醒能响应该中断。

可以参考下面,CH32V103 IAPdemo可见附件,LD文件中FLASH起始地址需设置成0,编译器会自动加0x08000000,得到解决

IAP_CH32V103-软复位进.zip (1.13 MB)
(下载次数: 24, 2021-5-18 21:02 上传)

点赞  2021-5-18 21:03

iar实在是用不习惯

点赞  2021-5-19 16:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复