ZYNQ7045 系統升級實現方法(multiboot)

1.實現原理框圖
在這裏插入圖片描述
系統分爲6個部分組成:
fsbl:原始fsbl
googen_image:由3塊組成分別爲fsbl、bit、u-boot
update_image:由3塊組成分別爲fsbl、bit、u-boot
kernel_google:原始kernel
kernel_update:更新kernel
update_flag:更新標識
2.實現原理
flash存儲格式及地址分配如上圖所示
位於0x0位置的fsbl啓動判斷update_flag標識是否有效,如果無效則跳轉到位置爲0x100000的googen_image處,依次執行fsbl、加載bit、啓動boot後跳轉到位置爲0xf00000的原始kernel中;
如果有效則跳轉到位置爲0x700000的update_image處,依次執行fsbl、加載bit、啓動boot後跳轉到位置爲0x2200000的更新kernel中
通過該方法可實現不斷電更新bit和kernel功能
3.操作方法
a.板子初始狀態
通過jtag依次將fsbl、googen_image、kernel_google分別下載到地址0x0、0x100000、0xf00000處;
b.啓動系統
通過網絡接收更新文件update_image、kernel_update或者只接收其中一個,原始kernel接收更新文件後,依次下入地址:0x700000、0x2200000,如果只更新一個,只把文件寫入相應的地址,寫完之後向0x3c00000寫入更新標識
c.更新文件
輸入reboot命令,即可實現跳轉,即運行update_image裏面的bit,運行更新的kernel,或者只運行其中一個
4.結論
該方法可實現不斷電更新zynq的bit和系統,目前已在項目中使用
注意
googen_image、update_image:可使用bootgen命令生成
可參考xapp1175

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章