01 存儲器劃分
SWM181xB的Flash總大小為120K,其中前96K用于APP,后24K用于UserBoot,芯片上電先執行UserBoot,然后跳轉到APP。
SWM181xC的Flash總大小為248K,UserBoot在96K起始的24K處,若程序大小超過96K,則需要在Keil中做如下設置:
02 執行流程

B0接低時,上電后芯片直接執行APP。
B0接高時,上電后芯片檢查地址0x18020處內容:
若內容不是0x0B11FFAC,則執行ISP代碼,可通過串口燒錄APP。
若內容是0x0B11FFAC,則跳轉到UserBoot。
03 工程設置
UserBoot 和 APP
startup_SWM181.s中需要如下設置,確保程序的0x20、0x24、0x28三個地址處有正確取值:
DCD 0x0B11FFAC
DCD 0x6000
DCD SRAM_SWITCH

關于0x6000
UserBoot和APP中的0x6000分別指定了UserBoot和APP的大小為24k,若它們的大小不是24k,可修改對應值縮短代碼拷貝時長;設定值必須是0x1000的整數倍,且大于等于實際程序大小。如果對上電時間沒有苛刻要求,建議不要修改。
UserBoot
UserBoot的連接使用分散加載文件控制。
04 程序下載
UserBoot
可使用SWMProg、SYNWIT_ISP等可將代碼下載到指定位置的軟件下載。
APP——可使用Keil下載
下載時不要選全擦,否則會把之前下載的UserBoot擦掉。
使用其他工具給SWM181xC下載時需要注意:若程序大于96K需要避免下載工具將0x18000-0x1E000的UserBoot覆寫掉。
可以將APP和UserBoot的bin文件合并成一個然后再用批量工具燒錄。
05 升級ISP
檢查0x18020地址處內容并跳轉到UserBoot的工作其實是由ISP代碼完成的,舊版ISP代碼沒有此功能,因此需要給帶有舊版ISP代碼的芯片升級ISP。
06 跳轉前的清理工作
UserBoot程序中,跳轉到APP之前,需要執行以下清理操作:
(1)關閉UserBoot中開啟的外設中斷;
(2)關閉UserBoot中使用過的外設(給外設的控制寄存器恢復默認值);
比如如果UserBoot中使用了Timer中斷,在跳轉到APP之前沒有關閉Timer的話,那么進入APP之后這個Timer還會觸發中斷,而APP中沒有給這個Timer寫ISR的話,就會執行默認ISR,是個死循環。
注意事項:
下載UserBoot后,ISP程序無法再執行,若App中關閉了SWD,則芯片無法再通過JLink和ISP串口更新程序,只能通過UserBoot更新或擦除App。
責任編輯:haq
-
芯片
+關注
關注
463文章
54010瀏覽量
466045 -
存儲器
+關注
關注
39文章
7739瀏覽量
171674
原文標題:SWM181定制UserBoot操作指南
文章出處:【微信號:gh_ed4f95bde4df,微信公眾號:華芯微特32位MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
專為防逆流場景設計:西格電力硬件設備的 “定制化” 優勢,指令執行零延遲
TMDS181x 6Gbps TMDS重定時器:高清視頻傳輸的理想之選
定制灌封膠_特殊場景灌封膠定制化服務流程與案例
江蘇廣播電視總臺與索尼順利完成超高清全流程定制培訓
NVMe高速傳輸之擺脫XDMA設計28: TLP 事務處 理程序的執行流程
工業超聲波清洗機非標定制的一般流程
MES - 制造執行系統
單片機定制研發流程有哪些?選擇專業團隊是關鍵
HarmonyOS NEXT應用元服務布局優化ArkUI框架執行流程
XBLW-INA180/INA181電流檢測放大器的優質選擇
INA181 26V、雙向、350kHz電流檢測放大器技術手冊
SWM181定制UserBoot執行流程
評論