CAN引導加載程序可通過CAN接口對MAXQ7665A微控制器進行編程。引導加載程序還可幫助設計人員更新/修改已在現場部署的產品的用戶應用程序代碼。
CAN引導加載程序提供了一種寫入、讀取和擦除程序閃存的預定義部分的方法,該部分通常保存用戶應用程序代碼。用戶應用代碼位于MAXQ0A的4000x0至7x7665FFF處。
兩個單獨編譯的模塊,CAN引導加載程序和用戶應用程序代碼,在MAXQ程序存儲器中運行。這些代碼段是單獨存在的,彼此完全未知。這些模塊通過已知的內存空間相互通信。?
本應用筆記的讀者應該熟悉MAXQ7665A處理器(64kB程序閃存)、CAN控制器和用于MAXQ的IAR嵌入式工作臺。
MAXQ7665A的CAN引導加載程序代碼和用戶應用代碼示例(ZIP)均提供。
MAXQ7665A CAN引導加載程序
與IAR cstartup模塊一樣,CAN引導加載程序通過JTAG端口構建并加載到程序存儲器的下部0x0000。此代碼在位置0x55FFF地址處搜索標志值 0x7AB。如果代碼找到該標志,CAN引導加載程序將在0x4000跳轉到用戶應用程序代碼。如果未找到此標志,CAN引導加載程序將調用函數enter_loader( )并等待傳入的CAN報文。
此時,全局中斷被禁用,因為在代碼初始化期間清除了IC(中斷和控制)寄存器中的IGE位。因此,CAN引導加載程序輪詢IIR(中斷識別)寄存器和本地CAN標志以處理任何傳入的消息。CAN 引導加載程序使用消息中心 1 來處理傳入消息;消息中心 2 用于處理傳出消息。(有關這些特定命令,請參閱附錄 A 中的 CAN 引導加載程序協議。
接下來的幾個步驟解釋了CAN引導加載程序和用戶代碼的加載順序。還顯示了CAN引導加載程序的操作和用戶代碼。
步驟1:將CAN引導加載程序加載到程序存儲器的下部(圖1)。
圖1.CAN引導加載程序通過JTAG端口加載。
使用CAN引導加載程序在MAXQ7665A中加載用戶應用代碼
修改 IAR 鏈接器文件 (.xcl) 和 IAR cstartup 模塊,以便用戶應用程序代碼駐留在地址 0x4000 并從地址執行。Maxim在此處提供了修改后的鏈接器和修改后的cstartup文件(ZIP)。CAN引導加載程序加載用戶應用程序代碼,之后主機系統發送“加載完成”命令(0x07)。當CAN引導加載程序收到加載完成命令時,它會將0x55AB置于代碼空間中的0x7FFF。
步驟 2:加載用戶應用程序代碼(圖 2)。
圖2.用戶應用程序代碼現在通過CAN引導加載程序加載。CAN引導加載程序檢查0x7FFF(字)地址的有效標志:(0x55AB)。如果該標志無效,CAN引導加載程序代碼將循環并等待傳入消息。收到有效消息后,CAN引導加載程序會響應一條消息。在此狀態下,可以在0x4000加載用戶應用程序代碼。
步驟 3:重置后,用戶應用程序最終加載并運行(圖 3)。
圖3.CAN引導加載程序檢查0x7FFF(字)地址的有效標志:0x55AB。如果該標志有效,則代碼將跳轉到0x4000以運行用戶應用程序代碼。
重新加載/更新用戶應用程序代碼
可能需要將新的用戶應用代碼重新加載/更新到MAXQ7665A中。為了適應這種情況,可以通過調用函數 EnterLoader( ) 從用戶應用程序代碼中輸入 CAN 引導加載程序。此時,CAN引導加載程序等待CAN報文。圖 4 說明了該過程。
圖4.流程圖顯示了當有效標志0x55AB設置為0x7FFF字節地址時如何調用CAN引導加載程序。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7649瀏覽量
152097 -
處理器
+關注
關注
68文章
19406瀏覽量
231163 -
控制器
+關注
關注
112文章
16445瀏覽量
179427
發布評論請先 登錄
相關推薦
評論