勘智K210-打包Kfpkg韌體及其使用
K210 的韌體包主要有兩種格式: .bin 和 .kfpkg , .kfpkg 可以包含多個.bin檔案或者模型檔案。
本文主要介紹如何製作kfpkg檔案及其使用。
燒錄 .bin 或者 .kfpkg 檔案
燒錄.bin 和 .kfpkg 檔案只需要使用kflash 進行燒錄就可以了,兩者使用起來沒什麼區別。
建立自己的 .kfpkg 檔案
.bin 檔案是韌體內容,作為引數傳給燒錄軟體,軟體會預設燒錄到flash 開
頭,完成後重啟即可執行;
但是有時候我們需要燒錄其它二進位制檔案到flash ,比如燒錄 模型、檔案系統或者自己定義的其它資料,這時需要指定燒錄的地址,光是 .bin(二進位制)檔案燒錄工具不知道我們想把資料燒錄到flash 的哪裡,打包一個.kfpkg 格式的檔案則是為了實現這個目的。
kfpkg由3部分組成:
比如我們想同時下載名為XXX.bin 的韌體,以及YYY.bin 的其它檔案到Flash 的0xA00000 地址,則需要寫一個 flash-list.json 檔案,內容如下:
{ "version": "0.1.0", "files": [ { "address": 0, "bin": "XXX.bin", "sha256Prefix": true }, { "address": 0x00A00000, "bin": "YYY.bin", "sha256Prefix": false } ] }
注意sha256Prefix選項, 韌體需要校驗,所以為true, 而其它資料(比如模型資料)不需要,所以為false。
最後,將這三個檔案( XXX.bin , YYY.bin , flash-list.json )壓縮成zip檔案,然後改字尾名為.kfpkg 即可被燒錄工具識別,並按照指定地址燒錄到flash。
當然,具體的檔案個數看自己的需求了。
注意:
如果你手頭現在已經有一個 kfpkg 檔案,它是可以使用kflash 直接下載到開發板的,下載到哪些地址在檔案中已經指定了,不需要再次打包。比如:
有一個只包含模型face.kmodel 的檔案 model.kfpkg , 有些使用者錯誤地認為這個檔案應該和韌體firmware.bin 一起被放到一個新的new.kgpkg 裡面,這樣的做法是錯誤的!!
正確的做法是:
• 可以直接使用kflash 先下載firmware.bin ,然後再下載model.kfpkg ,
firmware.bin 會下載到地址0x00000 , 而模型檔案會下載到model.kfpkg 裡面指定的地址
• 或者先將model.kfpkg 以zip 格式解壓,得到face.kmodel ,然後按照上面的方法把firmware.bin 和face.kmodel 檔案一起打包成一個new.kfpkg 檔案,然後使用 kflash下載這個new.kfpkg ,韌體和模型會按順序下載到flash。