ktool
1.0.0
Ktool是Kendryte Kflash.py實用程序的增強版本。
它與kflash.py兼容,但引入了許多新功能和增強功能。
該存儲庫的SRC/ISP目錄中可用增強的第二階段ISP的全部來源。
有關第二階段ISP和構建說明的更多信息可在構建目錄中提供。
IO16低並斷言重置PIN來重置為引導加載程序ISP模式(從K210 ROM運行)。IO16較低,則K210從ROM執行第一階段的ISP 。0x805E0000 )並執行它。kflash.py兼容,支持相同的命令行選項(但添加了更多)kflash.py總是寫64k塊,固件地址必須為64KB )kflash.py支持此功能,但在115200 baud上加載到SRAM,使其對較大的固件不切實際) | 爭論 | 描述 |
|---|---|
-h--help | 顯示幫助消息和退出 |
-v--version | 打印版本和退出 |
-p PORT--port PORT | 通信端口用於連接到K210板 如果沒有給出,自動端口檢測將被視為 |
-b BAUDRATE--baudrate BAUDRATE | UART BAUDRATE用於與第二階段ISP通信。與第一階段ISP的通信始終以115200 BD進行。默認值: 115200 |
-l ISP_BIN--bootloader ISP_BIN | 第二階段ISP二進製文件名。 外部ISP二進制通常僅用於測試。 如果沒有給出,則使用內部ISP二進制(建議) |
-k KEY--key KEY | 如果您需要加密固件,則AES密鑰。 沒有有關其工作原理的文檔 如果沒有給出,則不使用AES encription |
-t--terminal | 操作完成後開放終端仿真器(默認值: miniterm )默認值: False |
-n--noansi | 請勿使用ANSI顏色,當不支持ANSI顏色時建議使用 (例如,在Windows命令提示中) 默認值: False |
-B BOARD--Board BOARD | 選擇您要連接的板 不同的板我對引導加載器的要求有不同的重置。 如果未給出自動董事會檢測,則通常會效果很好 受支持: ḋan , bit , trainer , kd233 , goE , goD默認值: None |
--verbose | 增加輸出冗長;默認值: False ;未使用 |
-S--Slow | 慢下載模式;默認值: False ;未使用 |
firmware | 唯一的位置論點,通常在所有其他參數之後給出 包含固件或其他要閃爍到K210 SPI Flash的文件的名稱 將加載到K210 SRAM並執行的固件文件的名稱 擦除操作不需要,可選的讀取操作 該文件可能包含二進制固件/數據,固件精靈文件或KFPKG軟件包(請參閱下文) |
| 爭論 | 描述 |
|---|---|
-a ADDRESS--address ADDRESS | 將為flash寫入操作編寫固件/數據的閃存地址 閃存地址將從中讀取數據以讀取flash讀取操作 整數,可以作為十進製或十六進制 默認值: 0 |
-E--erase | 擦除整個閃光芯片 小心! |
-L--rdlen | 從Flash讀取的數據長度 整數,可以作為十進製或十六進制 默認值: 0 |
-R--read | 讀取來自--address指定的閃存地址的數據數據將保存到命令行中指定的 firmware名稱默認值: "flash_dump.bin" |
--swapendian | 編寫數據時交換endianess。 編寫某種數據時可能有必要,例如文件系統圖像 默認值: False |
-s--sram | 將固件下載到K210 SRAM並引導 加載是由第二階段ISP完成的,可以在董事會支持的任何Baudrate上執行 默認值: Falsekflash.py支持此功能,但是在SRAM上加載是在115200 Baud完成的,使其對較大的固件變得不切實際 |
--termbdr BAUDRATE | 用於終端模擬器的UART BAUDRATE 默認值: 115200 |
--nosha | 沒有固件前綴和SHA後綴的閃光燈 刷新不是可執行固件的數據時使用的 默認值: False |
-T--onlyterm | 不要執行任何操作,只啟動終端仿真器 默認值: False |
--reset | 在運行終端仿真器之前重置板,僅與--onlyterm Option一起使用默認值: False |
KFPGK軟件包是一個包含多個固件或數據二進製文件的郵政編碼,以及一個描述其內容的JSON文件。
當必須在不同的閃存地址和不同選項上閃爍多個文件時,使用它很方便。
ktool.py可以訪問此文件,解開內容並執行必要的操作。
該軟件包必須包含名為flash-list.json的JSON文件,該文件描述了要閃爍哪些文件以及如何進行。
必須存在以下對像以描述files對像下的每個文件:
| 鑰匙 | 價值描述 |
|---|---|
address | 整數;將寫文件內容的閃存地址 |
bin | 細繩;包含要閃爍的固件/數據的文件的名稱 |
sha256Prefix | 布爾 如果具有固件前綴和SHA後綴的 true Flash(閃爍可執行固件)如果沒有固件前綴和SHA後綴(數據) ḟalse flash |
swap | 布爾值,可能會省略,如果不存在默認為false如果 true ,請在編寫數據時交換endianess。編寫某種數據時可能有必要,例如文件系統圖像 |
flash-list.json的示例 {
"version": "0.1.0",
"files": [
{
"address": 0,
"bin": "MicroPython.bin",
"sha256Prefix": true,
"swap": false
},
{
"address": 5242880,
"bin": "MicroPython_lfs.img",
"sha256Prefix": false,
"swap": true
}
]
}
{
"version": "0.1.1",
"files": [
{
"address": 0,
"bin": "bootloader_lo.bin",
"sha256Prefix": true
},
{
"address": 4096,
"bin": "bootloader_hi.bin",
"sha256Prefix": true
},
{
"address": 16384,
"bin": "config.bin",
"sha256Prefix": false
},
{
"address": 20480,
"bin": "config.bin",
"sha256Prefix": false
}
]
}