Zephyr應用筆記:mcuboot載入程式簡單介紹
本文對mcuboot(version 1.1.0)做一個簡單介紹供參考,Github地址:https://github.com/runtimeco/mcuboot
以下內容都是針對(version 1.1.0)做介紹:
目前支援三種作業系統:
Zephyr
Mynewt
RIOT
映象跳轉方式支援兩種:
1、兩塊映象區域image_0和image_1;
2、三塊映象區域image_0、image_1和scratch;
兩種方法都是app永遠在image_0地址執行;
第1種情況的基本思路:
執行在image_0,如果需要升級app,則將app儲存於image_1,重啟裝置,mcuboot檢測到image_1有映象,step1:擦除image_0,step2:將image_1的內容搬運到image_0,step3:跳轉到image_0地址啟動程式;
第2種情況的基本思路:
執行在image_0,如果需要升級app,則將app儲存與image_1,重啟裝置,mcuboot檢測到image_1有映象,step1:image_0內容搬運到scratch中,step2:擦除image_0,step3:將image_1的內容搬運到image_0,step4:跳轉到image_0地址啟動程式;
對比兩種方式各有優缺點:
第一種方式:
優點:映象只有兩個區域,對FLASH要求較低,映象程式可以大一點;
缺點:如果升級一個錯誤的映象則程式將無法執行,即裝置會變磚,只能通過例如ST-LINK等工具重新刷韌體;
第二種方式:
優點:即使升級的映象有問題,那麼還可以恢復到原來的韌體,穩定性更強;
缺點:映象有三個區域,對FLASH要求較高,映象程式小的可以用這種方式;
2018年3月8日
本文對mcuboot(version 1.1.0)做一個簡單介紹供參考,Github地址:https://github.com/runtimeco/mcuboot
以下內容都是針對(version 1.1.0)做介紹:
目前支援三種作業系統:
Zephyr
Mynewt
RIOT
映象跳轉方式支援兩種:
1、兩塊映象區域image_0和image_1;
2、三塊映象區域image_0、image_1和scratch;
兩種方法都是app永遠在image_0地址執行;
第1種情況的基本思路:
執行在image_0,如果需要升級app,則將app儲存於image_1,重啟裝置,mcuboot檢測到image_1有映象,step1:擦除image_0,step2:將image_1的內容搬運到image_0,step3:跳轉到image_0地址啟動程式;
第2種情況的基本思路:
執行在image_0,如果需要升級app,則將app儲存與image_1,重啟裝置,mcuboot檢測到image_1有映象,step1:image_0內容搬運到scratch中,step2:擦除image_0,step3:將image_1的內容搬運到image_0,step4:跳轉到image_0地址啟動程式;
對比兩種方式各有優缺點:
第一種方式:
優點:映象只有兩個區域,對FLASH要求較低,映象程式可以大一點;
缺點:如果升級一個錯誤的映象則程式將無法執行,即裝置會變磚,只能通過例如ST-LINK等工具重新刷韌體;
第二種方式:
優點:即使升級的映象有問題,那麼還可以恢復到原來的韌體,穩定性更強;
缺點:映象有三個區域,對FLASH要求較高,映象程式小的可以用這種方式;
2018年3月8日