CH32V307VCT6的USB IAP升级固件跳转用户APP.BIN后无法运行

如题,我用的是例程中的IAP示例,使用的是通过使用转换后的APP.BIN文件拷贝到U盘后,插入USB中通过IAP读取后写入FLASH的方式升级自己的固件bin,但是按照例程,把IAP例程下载到芯片后,运行如下,但是一直这样停止了,image.png这些枚举 验证 ,插入U盘触发升级动作后下载,看起来都正常,尝试手动reset,运行了IAP程序如图,但是只输出了这些信息:image.png而并没有执行我的固件BIN程序freeRTOS的打印输出,也就是没有执行用户的程序去运行,但是IAP例程我是没有改动的,例如中断处经调试也确实进入了

void SW_Handler(void)

{

    __asm("li  a6, 0x06000");

    __asm("jr  a6");


    while(1);

}

原来的定义如下

/* APP CODE ADDR Setting */

#define DEF_APP_CODE_START_ADDR           0x08006000                             /* IAP Flash Operation start address, user code start address */

#define DEF_APP_CODE_END_ADDR             0x08030000                             /* IAP Flash Operation end address, user code end address */

我不知哪里出了问题,多次手动reset依然是只输出了IAP程序中的USER CODE!信息而并没有我的用户运行程序信息,请问还要修改哪里才能跳转到真正的用户程序入口去执行,谢谢。

您好,注意IAP和APP保持工程配置的一致,比如ld文件和FLASH和RAM的配置,APP文件中除了FLASH起始地址需要修改之外,注意RAM的大小要和IAP工程中配置的一致,此外启动文件要选择D8C.s那个启动文件。后续若有问题,可邮箱(lzs@wch.cn)和我具体沟通一下。


只有登录才能回复,可以选择微信账号登录