去年7月份左右,已經成功完成了CH32V203C8T6通過串口連接4G模塊下載更新固件。
但相同的代碼,在更新后的MounRiver工具上,怎么新建代碼測試也無法啟動。
確認過:
1、IAP和USER(link.ld地址為0,直接燒錄)程序都可以單獨運行。
2、下面紅色字的兩行打印都是能成功輸出的,但user app里面的main打印就沒有,如果user app啟動狗,則不停重啟(不停打印下面兩行紅色字內容)
請問是什么問題?
芯片分區(qū)設計
0x08000000 - 0x08007800 : IAP - 30K
0x08007800 - 0x0800F800 : APP - 32K - 儲存用戶ROM內容
0x0800F800 - 0x08010000 : DAT - 2K -? 用戶數(shù)據(jù)
IAP的程序內設置:
【main.c】文件
寫入起始位置:0x08007800
在下載完成后:執(zhí)行以下函數(shù),跳入用戶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文件地址。