CH32V203C8T6 IAP 在线升级无法启动user app

去年7月份左右,已经成功完成了CH32V203C8T6通过串口连接4G模块下载更新固件。
但相同的代码,在更新后的MounRiver工具上,怎么新建代码测试也无法启动。

确认过:
1、IAP和USER(link.ld地址为0,直接烧录)程序都可以单独运行。

2、下面红色字的两行打印都是能成功输出的,但user app里面的main打印就没有,如果user app启动狗,则不停重启(不停打印下面两行红色字内容)


请问是什么问题?


芯片分区设计

0x08000000 - 0x08007800 : IAP - 30K

0x08007800 - 0x0800F800 : APP - 32K - 储存用户ROM内容

0x0800F800 - 0x08010000 : DAT - 2K -  用户数据


IAP的程序内设置:

【main.c】文件

写入起始位置:0x08007800
在下载完成后:执行以下函数,跳入用户APP的入口

void ROM_Jump2APP()

{

    printf("jump to APP\r\n");

    NVIC_EnableIRQ(Software_IRQn);

    NVIC_SetPendingIRQ(Software_IRQn);

    while(1);

}


【ch32v20x_it.c】文件
void SW_Handler(void) __attribute__((interrupt("WCH-Interrupt-fast")));

void SW_Handler(void)

{

    printf("start user APP\r\n");

    __asm("li  a6, 0x7800");

    __asm("jr  a6");

    while(1);

}



USER APP的程序内设置:

【link.ld】文件

FLASH (rx) : ORIGIN = 0x00007800, LENGTH = 64K

RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K


------------------------------------------
user app是默认新建的模板内容,仅修改link.ld文件地址。

您好,看地址的配置应该是没问题的,可以使用EVT的IAP例程交替测试一下,看是IAP有问题还是APP有问题。注意一下工程文件的配置,后续沟通可邮箱(lzs@wch.cn)沟通,可将工程发我具体看一下。


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