EMW5080 BootLoader更新方法
步驟一:劃分ECU系統的存儲空間在進行EMW5080 BootLoader的更新之前,需要先對ECU系統的存儲空間進行劃分。這是為了確保BootLoader程序和應用程序能夠正確地存儲和運行。通過合理
步驟一:劃分ECU系統的存儲空間
在進行EMW5080 BootLoader的更新之前,需要先對ECU系統的存儲空間進行劃分。這是為了確保BootLoader程序和應用程序能夠正確地存儲和運行。通過合理劃分存儲空間,可以有效避免沖突和錯誤。
步驟二:判斷ECU系統請求類型
在進行BootLoader更新時,需要判斷ECU系統接收到的是應用程序更新請求還是BootLoader更新請求。根據不同的請求類型,采取不同的更新方式。
步驟三:增量更新應用程序代碼區
如果ECU系統接收到的是應用程序更新請求,那么需要使用增量更新方式對應用程序代碼區進行更新。增量更新可以減少更新時間和存儲空間的占用,提高效率。
串口部分代碼說明
關于串口部分代碼,在本文中不做詳細解釋。請查閱相關型號的用戶手冊獲取更多信息。需要注意的是,在BootLoader中不能開中斷。因此,在串口接收方面,我們采取循環等待接收的方式,只有在需要接收新數據時才會接收串口消息。
修改鏈接文件
我們在IAR的安裝目錄下的STM8config文件夾中找到lnkstm8s003f3.icf文件。然后將其復制到BootLoader工程目錄下,并以文本方式打開該鏈接文件。對于APP應用程序,我們需要將其中的NearFuncCode、FarFuncCode和HugeFuncCode的起始地址均從0x8000修改為0x8400。這樣可以確保BootLoader和應用程序之間不會發生沖突。
對于BootLoader程序來說,鏈接文件可以不做修改。但是修改鏈接文件的好處是,當BootLoader程序大小超過設定值時(例如1KB),IAR在編譯鏈接時可以檢測出來。具體的修改方法請參考下圖示例。
重新編寫的EMW5080 BootLoader更新方法及相關代碼解析