Ktool é a versão aprimorada do utilitário kendryte kflash.py .
É compatível com Kflash.py , mas apresenta muitos novos recursos e aprimoramento.
Fontes completas do ISP aprimoradas do 2º estágio estão disponíveis no diretório SRC/ISP deste repositório.
Mais informações sobre o ISP do segundo estágio e as instruções de construção estão disponíveis no diretório de compilação .
IO16 Low e afirmando o pino de redefinição .IO16 estiver baixo, o K210 executa o 1º estágio ISP da ROM .0x805E0000 ) e o executa.kflash.py , as mesmas opções de linha de comando são suportadas (mas mais são adicionadas)kflash.py sempre escreve 64k pedaços e o endereço do firmware deve estar alinhado de 64kb )kflash.py suporta essa função, mas o carregamento para o SRAM é feito em 115200 baud, tornando -o impraticável para os firmes maiores ) | Argumento | Descrição |
|---|---|
-h--help | Mostrar mensagem de ajuda e saída |
-v--version | Versão de impressão e saída |
-p PORT--port PORT | Porta de comunicação usada para se conectar à placa K210 Se não for dado, a detecção automática de portas é tocada |
-b BAUDRATE--baudrate BAUDRATE | Uart Baudrate usado para comunicação com o 2º estágio ISP . A comunicação com o 1º estágio ISP é sempre realizada em 115200 BD.Padrão: 115200 |
-l ISP_BIN--bootloader ISP_BIN | 2º estágio ISP Nome do arquivo binário. O binário do ISP externo geralmente é usado apenas para teste. Se não for dado, o binário interno do ISP é usado (recomendado) |
-k KEY--key KEY | Aes chave em hexadecimal, se você precisar criptografar o firmware. Não há documentação sobre como funciona, provavelmente requer alguma programação da memória K210 OTP , o firmware flash com esta opção não será iniciado Se não for dado, nenhuma engenharia de AES é usada |
-t--terminal | Emulador de terminal aberto (padrão: miniterm ) após a operação ser concluídaPadrão: False |
-n--noansi | Não use cores ANSI, recomendado quando as cores ANSI não são suportadas (por exemplo, no prompt de comando do Windows) Padrão: False |
-B BOARD--Board BOARD | Selecione a placa à qual você está tentando se conectar Diferentes placas têm uma redefinição diferente para os requisitos do carregador de inicialização . Se não receber, a detecção automática do conselho é tocada, o que geralmente funciona bem Apoiado: ḋan , bit , trainer , kd233 , goE , goDPadrão: None |
--verbose | Aumentar a verbosidade da saída; padrão: False ; não usado |
-S--Slow | Modo de download lento; padrão: False ; não usado |
firmware | O único argumento posicional , geralmente dado depois de todos os outros argumentos Nome do arquivo que contém firmware ou outros dados a serem exibidos no K210 SPI Flash Nome do arquivo de firmware a ser carregado no K210 SRAM e executado Não é necessário para a operação de apagar, opcional para operação de leitura O arquivo pode conter firmware/dados binários , arquivo elf de firmware ou pacote kfpkg (veja abaixo) |
| Argumento | Descrição |
|---|---|
-a ADDRESS--address ADDRESS | Endereço flash no qual o firmware/dados será escrito para operações de gravação flash Endereço flash do qual os dados serão lidos para operações de leitura flash número inteiro, pode ser dado como número decimal ou hexadecimal Padrão: 0 |
-E--erase | Apague todo o chip flash Tenha cuidado! |
-L--rdlen | A duração dos dados a serem lidos no flash número inteiro, pode ser dado como número decimal ou hexadecimal Padrão: 0 |
-R--read | Leia os dados do endereço flash especificado por --addressOs dados serão salvos no nome firmware especificado na linha de comandopadrão: "flash_dump.bin" |
--swapendian | Troque o endiano ao escrever os dados. Pode ser necessário ao escrever algum tipo de dados, por exemplo, imagem do sistema de arquivos Padrão: False |
-s--sram | Faça o download do firmware para K210 SRAM e inicialização O carregamento é feito pelo ISP do segundo estágio e pode ser realizado em qualquer Baudrate suportado pelo Conselho Padrão: Falsekflash.py suporta essa função, mas o carregamento para o SRAM é feito em 115200 baud, tornando -o impraticável para signos maiores |
--termbdr BAUDRATE | Uart Baudrate usado para emulador de terminal Padrão: 115200 |
--nosha | Flash sem prefixo de firmware e sufixo SHA Usado quando piscar dados que não são executáveis firmware Padrão: False |
-T--onlyterm | Não execute nenhuma operação, apenas inicie o emulador de terminal Padrão: False |
--reset | Redefinir a placa antes de executar o emulador de terminal, usado apenas com opção --onlytermPadrão: False |
O pacote KFPGK é um arquivo zip contendo vários arquivos binários de firmware ou dados e um arquivo JSON que descreve seu conteúdo.
É conveniente usá -lo quando vários arquivos devem ser exibidos em diferentes endereços flash e com diferentes opções.
ktool.py pode processar esse arquivo, descompactar o conteúdo e executar as operações necessárias.
O pacote deve conter o arquivo JSON chamado flash-list.json que descreve quais arquivos devem ser exibidos e como.
Os seguintes objetos devem estar presentes para descrever cada arquivo do objeto files :
| Chave | Descrição do valor |
|---|---|
address | Inteiro ; Endereço flash no qual o conteúdo do arquivo será escrito |
bin | corda ; Nome do arquivo que contém firmware/dados a ser piscado |
sha256Prefix | booleano Se true flash com prefixo de firmware e sufixo SHA (Flash o firmware executável)Se ḟalse Flash Flash sem prefixo de firmware e sufixo SHA (dados) |
swap | booleano , pode ser omitido , se não estiver presente, os padrões para falseSe for true , troque a endianess ao escrever os dados.Pode ser necessário ao escrever algum tipo de dados, por exemplo, imagem do sistema de arquivos |
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
}
]
}