Ktool ist die erweiterte Version von Kendryte Kflash.py Utility.
Es ist mit kflash.py kompatibel, führt jedoch viele neue Funktionen und Verbesserungen ein.
Die vollständigen Quellen des erweiterten ISP der 2. Stufe sind im SRC/ISP -Verzeichnis dieses Repository erhältlich.
Weitere Informationen zu ISP und Build -Anweisungen der 2. Stufe finden Sie im Build -Verzeichnis.
IO16 Low und der Behauptung des Reset -Pin zurückgesetzt .IO16 nach dem Zurücksetzen niedrig ist, führt K210 den ISP der 1. Stufe von ROM aus.0x805E0000 ) hoch und führt sie aus.kflash.py , die gleichen Befehlszeilenoptionen werden unterstützt (aber mehr werden hinzugefügt)kflash.py schreibt immer 64K -Stücke und die Firmware -Adresse muss 64 KB ausgerichtet sein )kflash.py unterstützt diese Funktion, aber das Laden zu SRAM erfolgt bei 115200 Baud, was sie für größere Firmawares unpraktisch macht ) | Argument | Beschreibung |
|---|---|
-h--help | Hilfsnachricht anzeigen und beenden |
-v--version | Version drucken und beenden |
-p PORT--port PORT | Kommunikationsport verwendet zur Verbindung mit der K210 -Karte Wenn nicht gegeben |
-b BAUDRATE--baudrate BAUDRATE | UART Baudrate für die Kommunikation mit ISP der 2. Stufe . Die Kommunikation mit ISP der 1. Stufe wird immer bei 115200 BD durchgeführt.Standardeinstellung: 115200 |
-l ISP_BIN--bootloader ISP_BIN | 2. Stufe ISP -Binärdateiname. Externer ISP -binär wird normalerweise nur zum Testen verwendet. Wenn nicht angegeben, wird interner ISP -Binärdatum verwendet (empfohlen) |
-k KEY--key KEY | AES Key in Hex, wenn Sie die Firmware verschlüsseln müssen. Es gibt keine Dokumentation darüber, wie es funktioniert. Es erfordert wahrscheinlich eine Programmierung des K210 -OTP -Speichers. Die Firmware mit dieser Option wird nicht gestartet Wenn nicht gegeben, wird keine AES -Enkription verwendet |
-t--terminal | Open Terminal Emulator (Standard: miniterm ) nach Abschluss des BetriebsStandard: False |
-n--noansi | Verwenden Sie keine ANSI -Farben, die empfohlen werden, wenn ANSI -Farben nicht unterstützt werden (Zum Beispiel in der Windows -Eingabeaufforderung ) Standard: False |
-B BOARD--Board BOARD | Wählen Sie die Karte aus, mit der Sie eine Verbindung herstellen möchten Verschiedene Boards, die meine Anforderungen an den Bootloader unterscheiden. Wenn nicht die automatische Erkennung des Boards gegeben wird, wird normalerweise gut funktioniert Unterstützt: ḋan , bit , trainer , kd233 , goE , goDStandard: None |
--verbose | Erhöhen Sie die Ausführlichkeit; Standard: False ; nicht benutzt |
-S--Slow | Langsamer Download -Modus; Standard: False ; nicht benutzt |
firmware | Das einzige Positionsargument , das normalerweise nach allen anderen Argumenten angegeben wird Name der Datei mit Firmware oder anderen Daten, die an K210 SPI Flash geblitzt werden sollen Name der Firmware -Datei, die in K210 SRAM geladen und ausgeführt wird Nicht für den Löschvorgang benötigt , optional für den Lesevorgang Die Datei kann binäre Firmware/Daten, Firmware -ELF -Datei oder KFPKG -Paket enthalten (siehe unten) |
| Argument | Beschreibung |
|---|---|
-a ADDRESS--address ADDRESS | Flash -Adresse, an der die Firmware/Daten für Flash -Schreibvorgänge geschrieben werden Flash -Adresse, aus der die Daten für Flash -Lesevorgänge gelesen werden Ganzzahl kann als Dezimal- oder Sechs -Nummer angegeben werden Standard: 0 |
-E--erase | Löschen Sie den gesamten Flash -Chip Sei vorsichtig! |
-L--rdlen | Die Datenlänge, die von Flash gelesen werden soll Ganzzahl kann als Dezimal- oder Sechs -Nummer angegeben werden Standard: 0 |
-R--read | Lesen Sie Daten aus der von --address angegebenen Flash -AdresseDie Daten werden in den in der Befehlszeile angegebenen firmware -Namen gespeichertStandard: "flash_dump.bin" |
--swapendian | Setzen Sie die Endienness beim Schreiben der Daten. Dies kann beim Schreiben von Daten erforderlich sein, z. B. Dateisystembild Standard: False |
-s--sram | Laden Sie die Firmware auf K210 SRAM und Start herunter Die Belastung erfolgt im ISP der 2. Stufe und kann an jedem Baudrate durchgeführt werden, der vom Vorstand unterstützt wird Standard: Falsekflash.py unterstützt diese Funktion, aber das Laden zu SRAM wird bei 115200 Baud erfolgen, was sie für größere Unternehmenswares unpraktisch macht |
--termbdr BAUDRATE | Uart Baudrate für Terminalemulator verwendet Standardeinstellung: 115200 |
--nosha | Flash ohne Firmware -Präfix und SHA -Suffix Wird beim Blinken von Daten verwendet, die keine ausführbare Firmware sind Standard: False |
-T--onlyterm | Führen Sie keinen Betrieb durch, starten Sie nur den Terminalemulator Standard: False |
--reset | Setzen Sie die Platine zurück, bevor Sie den Terminalemulator ausführen, der nur mit der Option --onlyterm -Option verwendet wirdStandard: False |
Das KFPGK -Paket ist ein ZIP -Archiv mit mehreren Firmware- oder Daten -Binärdateien und einer JSON -Datei, die seinen Inhalt beschreibt.
Es ist bequem zu verwenden, wenn mehrere Dateien an verschiedenen Flash -Adressen und mit unterschiedlichen Optionen geblitzt werden müssen.
ktool.py kann diese Datei verarbeiten, den Inhalt auspacken und die erforderlichen Vorgänge ausführen.
Das Paket muss die JSON- Datei namens flash-list.json enthalten, die beschreibt, welche Dateien geblitzt werden sollen und wie.
Die folgenden Objekte müssen vorhanden sein, um jede Datei unter files -Objekt zu beschreiben:
| Schlüssel | Wertbeschreibung |
|---|---|
address | Ganzzahl ; Flash -Adresse, an der der Dateiinhalt geschrieben wird |
bin | String ; Name der Datei, die Firmware/Daten enthält, die erblitzt werden soll |
sha256Prefix | boolean Wenn true Flash mit Firmware -Präfix und SHA -Suffix (Flash die ausführbare Firmware)Wenn ḟalse ohne Firmware -Präfix und SHA -Suffix (Daten) flasht |
swap | boolean kann weggelassen werden , wenn nicht die Standardeinstellungen auf false vorlegenWenn true , tauschen Sie die Endienness beim Schreiben der Daten aus.Dies kann beim Schreiben von Daten erforderlich sein, z. B. Dateisystembild |
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
}
]
}