1. 程式人生 > 其它 >勘智K210-打包Kfpkg韌體及其使用

勘智K210-打包Kfpkg韌體及其使用

技術標籤:嵌入式ai

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。