使用CH559L芯片做了一個bootloader程序和用戶APP程序。
bootloader存儲在0--15KByte的空間; APP存儲在15-60KByte。在Keil 環(huán)境下,Bootloader程序off-chip code memory設(shè)置為0x00,APP程序off-chip code memory設(shè)置為0x3C04;
bootloader程序是利用自定義協(xié)議,通過串口傳輸數(shù)據(jù)。
現(xiàn)在情況:
1)先燒錄bootloader程序,再通過booloader燒錄APP程序,APP程序可以正常跳轉(zhuǎn),在APP里面點亮LED燈都正常。
但APP里面串口無法中斷,接收數(shù)據(jù)。
2)將APP程序程序off-chip code memory參數(shù)設(shè)置為0x00,再通過WCHISPTool.exe程序下載后,APP運行一切正常。
現(xiàn)在感覺APP差異就是off-chip code memory這個參數(shù)不同,為啥APP運行會有所差異?
哪位大俠能夠告知一下原因,
查看: 2825
回復(fù): 3
CH559L芯片從bootloader程序跳轉(zhuǎn)到APP后,串口不工作了,請教原因
熱門產(chǎn)品 :
CH592: RISC-V內(nèi)核BLE5.4無線MCU
在其他網(wǎng)站看到采用我上面那種思路做bootloader,似乎需要修改bootloader的startup.a51文件。
我是利用CH559L 例程中的IAP工程模板修改而來,工程中沒有引用startup.a51文件。
懷疑也是中斷向量沒有搞對,導(dǎo)致跳轉(zhuǎn)到APP后,不再響應(yīng)串口中斷了。
哪位大俠能給一個指導(dǎo)意見?
看到的是這篇文章:https://www.cnblogs.com/WayneKhouTech/p/12045834.html
您好,boot和用戶程序誰在前誰在后的,應(yīng)該影響的是中斷向量表覆蓋的問題(實際對應(yīng)位置填的到底是“boot”的表還是用戶程序的表),我們芯片中斷向量表始終在固定位置,也就是flash起始的那個位置(具體可以參看手冊),那個文章中提到的0x2000中斷向量表不適用于我們的芯片。
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號登錄