KTool est la version améliorée de l'utilitaire Kendryte Kflash.py .
Il est compatible avec kflash.py mais introduit de nombreuses fonctionnalités et amélioration.
Des sources complètes du FAI amélioré en 2ème étape sont disponibles dans le répertoire SRC / ISP de ce référentiel.
Plus d'informations sur les instructions ISP et Build en 2e étape sont disponibles dans le répertoire de construction .
IO16 bas et en affirmant la broche de réinitialisation .IO16 est faible, K210 exécute le FAI de 1ère étape de ROM .0x805E0000 ) et l'exécute.kflash.py standard, les mêmes options de ligne de commande sont prises en charge (mais plus sont ajoutés)kflash.py écrit toujours 64k morceaux et l'adresse du micrologiciel doit être alignée sur 64 Ko )kflash.py prend en charge cette fonction, mais le chargement à SRAM est effectué à 115200 bauds, ce qui le rend impraticable pour les grandes firmwares ) | Argument | Description |
|---|---|
-h--help | Afficher le message d'aide et la sortie |
-v--version | Version imprimée et sortie |
-p PORT--port PORT | Port de communication utilisé pour se connecter à la carte K210 Si cela n'est pas donné, la détection automatique des ports est détenue |
-b BAUDRATE--baudrate BAUDRATE | UART BAUDRATE utilisé pour la communication avec le FAI à 2e étape . La communication avec le FAI de 1ère étape est toujours effectuée à 115200 BD.Par défaut: 115200 |
-l ISP_BIN--bootloader ISP_BIN | Nom du fichier binaire ISP de 2e étape . Le binaire ISP externe est généralement utilisé uniquement pour les tests. Si cela n'est pas donné, le binaire ISP interne est utilisé (recommandé) |
-k KEY--key KEY | CLÉES AES EN HEX, si vous avez besoin de crypter le firmware. Il n'y a pas de documentation sur son fonctionnement, cela nécessite probablement une programmation de la mémoire OTP K210, le firmware flashé avec cette option ne commencera pas Si ce n'est pas donné, aucune encription AES n'est utilisée |
-t--terminal | Émulateur de terminal ouvert (par défaut: miniterm ) Une fois l'opération terminéepar défaut: False |
-n--noansi | N'utilisez pas les couleurs ANSI, recommandées lorsque les couleurs ANSI ne sont pas prises en charge (par exemple dans l'invite de commande Windows) par défaut: False |
-B BOARD--Board BOARD | Sélectionnez la carte à laquelle vous essayez de vous connecter Différentes planches Mes ont une réinitialisation différente aux exigences du chargeur de démarrage . Si la détection automatique des panneaux est attribuée, ce qui fonctionne généralement bien Soutenu: ḋan , bit , trainer , kd233 , goE , goDpar défaut: None |
--verbose | Augmenter la verbosité de sortie; par défaut: False ; non utilisé |
-S--Slow | Mode de téléchargement lent; par défaut: False ; non utilisé |
firmware | Le seul argument positionnel , généralement donné après tous les autres arguments Nom du fichier contenant du firmware ou d'autres données à flasher sur K210 SPI Flash Nom du fichier firmware à charger sur K210 SRAM et exécuté Pas nécessaire pour le fonctionnement d'effacement, facultatif pour le fonctionnement de lecture Le fichier peut contenir un micrologiciel binaire / données, un fichier ELF du firmware ou un package KFPKG (voir ci-dessous) |
| Argument | Description |
|---|---|
-a ADDRESS--address ADDRESS | Adresse flash à laquelle le firmware / les données sera écrit pour les opérations d'écriture flash Adresse flash à partir de laquelle les données seront lues pour les opérations de lecture flash entier, peut être donné comme un numéro décimal ou hexadécimal par défaut: 0 |
-E--erase | Effacer toute la puce flash Soyez prudent! |
-L--rdlen | La durée des données à lire à partir de Flash entier, peut être donné comme un numéro décimal ou hexadécimal par défaut: 0 |
-R--read | Lire les données de l'adresse flash spécifiée par --address AddressLes données seront enregistrées au nom firmware spécifié dans la ligne de commandepar défaut: "flash_dump.bin" |
--swapendian | Échangez l'endapoute lors de la rédaction des données. Il peut être nécessaire lors de l'écriture d'une sorte de données, par exemple l'image du système de fichiers par défaut: False |
-s--sram | Téléchargez le firmware sur K210 SRAM et BOOT Le chargement est effectué par le FAI 2ème étape et peut être effectué à n'importe quel baudrate pris en charge par la carte par défaut: Falsekflash.py prend en charge cette fonction, mais le chargement à SRAM est effectué à 115200 bauds, ce qui le rend impraticable pour les plus grandes wares firm |
--termbdr BAUDRATE | UART BAUDRATE utilisé pour l'émulateur de terminal Par défaut: 115200 |
--nosha | Flash sans préfixe du firmware et suffixe SHA Utilisé lors de la clignotement des données qui ne sont pas un firmware exécutable par défaut: False |
-T--onlyterm | N'effectuez aucune opération, démarrez uniquement l'émulateur de terminal par défaut: False |
--reset | Réinitialisez la carte avant d'exécuter un émulateur de terminal, utilisé uniquement avec l'option --onlytermpar défaut: False |
Le package KFPGK est une archive zip contenant plusieurs fichiers binaires de firmware ou de données et un fichier JSON décrivant son contenu.
Il est pratique de l'utiliser lorsque plusieurs fichiers doivent être flassés à différentes adresses flash et avec différentes options.
ktool.py peut procéder à ce fichier, déballer le contenu et effectuer les opérations nécessaires.
Le package doit contenir le fichier JSON nommé flash-list.json qui décrit quels fichiers doivent être flashé et comment.
Les objets suivants doivent être présents pour décrire chaque fichier sous files Objet:
| Clé | Description de la valeur |
|---|---|
address | entier ; Adresse flash à laquelle le contenu du fichier sera écrit |
bin | chaîne ; Nom du fichier contenant du micrologiciel / données à flasher |
sha256Prefix | booléen Si true Flash avec le préfixe du firmware et le suffixe SHA (flasher le firmware exécutable)Si ḟalse flash sans préfixe du firmware et suffixe SHA (données) |
swap | booléen , peut être omis , sinon présent par falseSi true , échangez l'endapoute lors de l'écriture des données.Il peut être nécessaire lors de l'écriture d'une sorte de données, par exemple l'image du système de fichiers |
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
}
]
}