KTool es la versión mejorada de Kendryte Kflash.py Utility.
Es compatible con kflash.py , pero presenta muchas características y mejora nuevas.
Las fuentes completas del ISP mejorado en la segunda etapa están disponibles en el directorio SRC/ISP de este repositorio.
Más información sobre las instrucciones de ISP e construcción de la segunda etapa están disponibles en el directorio de compilación .
IO16 bajo y afirmando el pin de reinicio .IO16 es bajo, K210 ejecuta el ISP de la primera etapa de ROM .0x805E0000 ) y lo ejecuta.kflash.py , se admiten las mismas opciones de línea de comando (pero se agregan más)kflash.py siempre escribe 64k trozos y la dirección de firmware debe estar alineada de 64 kb )kflash.py admite esta función, pero la carga a SRAM se realiza en 115200 baudios, lo que lo hace poco práctico para firmwares más grandes ) | Argumento | Descripción |
|---|---|
-h--help | Mostrar mensaje de ayuda y salida |
-v--version | Versión de impresión y salida |
-p PORT--port PORT | Puerto de comunicación utilizado para conectarse a la placa K210 Si no se da, la detección automática de puertos está excavada |
-b BAUDRATE--baudrate BAUDRATE | UART Baudrate utilizado para la comunicación con ISP de segunda etapa . La comunicación con el ISP de la primera etapa siempre se realiza en 115200 BD.Valor predeterminado: 115200 |
-l ISP_BIN--bootloader ISP_BIN | Nombre de archivo binario ISP de segunda etapa . El binario ISP externo generalmente se usa solo para las pruebas. Si no se da, se usa binario ISP interno (recomendado) |
-k KEY--key KEY | Clave AES en Hex, si necesita cifrar el firmware. No hay documentación sobre cómo funciona, probablemente requiere una programación de la memoria K210 OTP , el firmware flotado con esta opción no comenzará Si no se da, no se usa el reclamo AES |
-t--terminal | Abrir emulador terminal (predeterminado: miniterm ) después de finalizar la operaciónValor predeterminado: False |
-n--noansi | No use colores ANSI, recomendado cuando los colores ANSI no son compatibles con (por ejemplo en el símbolo del sistema de Windows) Valor predeterminado: False |
-B BOARD--Board BOARD | Seleccione el tablero al que está intentando conectarse Diferentes tableros tienen diferentes requisitos de restablecimiento para el cargador de arranque . Si no se le da, la detección automática de la placa está excavada, lo que generalmente funciona bien Apoyado: ḋan , bit , trainer , kd233 , goE , goDValor predeterminado: None |
--verbose | Aumentar la verbosidad de salida; predeterminado: False ; no utilizado |
-S--Slow | Modo de descarga lenta; predeterminado: False ; no utilizado |
firmware | El único argumento posicional , generalmente dado después de todos los demás argumentos Nombre del archivo que contiene firmware u otros datos que se flotan a K210 SPI Flash Nombre del archivo de firmware que se cargará a K210 SRAM y ejecutado No se necesita para la operación de borrado, opcional para la operación de lectura El archivo puede contener firmware/datos binarios , archivo ELF de firmware o paquete KFPKG (ver más abajo) |
| Argumento | Descripción |
|---|---|
-a ADDRESS--address ADDRESS | Dirección flash en la que se escribirá el firmware/datos para las operaciones de escritura flash Dirección flash a partir de la cual se leerán los datos para las operaciones de lectura flash entero, se puede dar como número decimal o hexadecimal Valor predeterminado: 0 |
-E--erase | Borrar todo el chip de flash ¡Ten cuidado! |
-L--rdlen | La duración de los datos a leer de Flash entero, se puede dar como número decimal o hexadecimal Valor predeterminado: 0 |
-R--read | Lea los datos de la dirección flash especificada por --addressLos datos se guardarán en el nombre firmware especificado en la línea de comandospredeterminado: "flash_dump.bin" |
--swapendian | Intercambia endianess al escribir los datos. Puede ser necesario al escribir algún tipo de datos, por ejemplo, imagen del sistema de archivos Valor predeterminado: False |
-s--sram | Descargar firmware a K210 SRAM y BOOT La carga es realizada por el ISP de la segunda etapa y se puede realizar en cualquier BAUDRATE respaldado por la Junta Valor predeterminado: Falsekflash.py admite esta función, pero la carga a SRAM se realiza en 115200 baudios, por lo que es poco práctico para firmwares más grandes |
--termbdr BAUDRATE | UART Baudrate utilizado para el emulador terminal Valor predeterminado: 115200 |
--nosha | Flash sin prefijo de firmware y sufijo SHA Utilizado al parpadear datos que no son firmware ejecutable Valor predeterminado: False |
-T--onlyterm | No realice ninguna operación, solo inicie el emulador terminal Valor predeterminado: False |
--reset | Restablecer la placa antes de ejecutar el emulador de terminal, usado solo con la opción --onlytermValor predeterminado: False |
El paquete KFPGK es un archivo ZIP que contiene varios archivos binarios de firmware o datos y un archivo JSON que describe su contenido.
Es conveniente usarlo cuando se deben flashear múltiples archivos en diferentes direcciones flash y con diferentes opciones.
ktool.py puede procesar este archivo, desempaquetar el contenido y realizar las operaciones necesarias.
El paquete debe contener el archivo JSON llamado flash-list.json que describe qué archivos se deben flashear y cómo.
Los siguientes objetos deben estar presentes para describir cada archivo en el objeto files :
| Llave | Descripción del valor |
|---|---|
address | entero ; Dirección flash en la que se escribirá el contenido del archivo |
bin | cadena ; Nombre del archivo que contiene firmware/datos a flashear |
sha256Prefix | booleano Si true flash con el prefijo de firmware y el sufijo SHA (flash el firmware ejecutable)Si ḟalse flash sin firmware prefijo y sufijo SHA (datos) |
swap | booleano , se puede omitir , si no está presente, los valores predeterminados a falseSi true , intercambie endianess al escribir los datos.Puede ser necesario al escribir algún tipo de datos, por ejemplo, imagen del sistema de archivos |
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
}
]
}