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