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
}
]
}