ktool
1.0.0
Ktoolは、Kendryte kflash.pyユーティリティの拡張バージョンです。
kflash.pyと互換性がありますが、多くの新機能と強化を導入しています。
このリポジトリのSRC/ISPディレクトリでは、拡張された第2段階ISPの完全なソースが利用可能です。
第2段階ISPおよびビルド指示の詳細については、ビルドディレクトリにあります。
IO16低く保持し、リセットピンをアステルとすることにより、ブートローダーISPモード(K210 ROMから実行)にリセットされます。IO16が低い場合、K210はROMから第1段階ISPを実行します。0x805E0000 )にアップロードし、実行します。kflash.pyと互換性があり、同じコマンドラインオプションがサポートされています(ただし、さらに追加されます)kflash.pyは常に64kのチャンクを書き込み、ファームウェアアドレスは64kbの整列でなければなりません)kflash.pyこの機能をサポートしていますが、SRAMへのロードは115200ボーで行われているため、大型の企業では非現実的です) | 口論 | 説明 |
|---|---|
-h--help | ヘルプメッセージと出口を表示します |
-v--version | バージョンと出口を印刷します |
-p PORT--port PORT | K210ボードに接続するために使用される通信ポート 指定されていない場合、自動ポート検出は省略されています |
-b BAUDRATE--baudrate BAUDRATE | 2番目のステージISPとのコミュニケーションに使用されるUART BAUDRATE。第1段階ISPとの通信は、常に115200 BDで実行されます。デフォルト: 115200 |
-l ISP_BIN--bootloader ISP_BIN | 2番目のステージISPバイナリファイル名。 外部ISPバイナリは通常、テストにのみ使用されます。 与えられない場合、内部ISPバイナリが使用されます(推奨) |
-k KEY--key KEY | ファームウェアを暗号化する必要がある場合は、六角形のAESキー。 それがどのように機能するかについてのドキュメントはありません。おそらくK210 OTPメモリのプログラミングが必要であり、このオプションでフラッシュされたファームウェアは起動しません 与えられない場合は、AESの象徴は使用されません |
-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フラッシュにフラッシュする K210 SRAMにロードされて実行されるファームウェアファイルの名前 消去操作には必要ありません。読み取り操作にはオプションです ファイルには、バイナリファームウェア/データ、ファームウェアELFファイル、またはKFPKGパッケージが含まれている場合があります(以下を参照) |
| 口論 | 説明 |
|---|---|
-a ADDRESS--address ADDRESS | ファームウェア/データがフラッシュ書き込み操作のために記述されるフラッシュアドレス フラッシュ読み取り操作のためにデータが読み取られるフラッシュアドレス 整数は、10進数または16進数として与えることができます デフォルト: 0 |
-E--erase | フラッシュチップ全体を消去します 注意してください! |
-L--rdlen | Flashから読み取るデータの長さ 整数は、10進数または16進数として与えることができます デフォルト: 0 |
-R--read | --addressによって指定されたフラッシュアドレスからデータを読むデータはコマンドラインで指定された firmware名に保存されますデフォルト: "flash_dump.bin" |
--swapendian | データを書くときにEndianessを交換します。 ファイルシステムイメージなど、何らかのデータを書くときに必要になる場合があります デフォルト: False |
-s--sram | ファームウェアをK210 SRAMとブーツにダウンロードします 読み込みは第2段階ISPによって行われ、ボードがサポートするボードレートで実行できます デフォルト: Falsekflash.pyこの機能をサポートしていますが、SRAMへのロードは115200ボーで行われているため、より大きな企業にとっては実用的ではありません |
--termbdr BAUDRATE | ターミナルエミュレータに使用されるUART BAUDRATE デフォルト: 115200 |
--nosha | ファームウェアプレフィックスとSHA接尾辞なしでフラッシュします 実行可能なファームウェアではないデータのフラッシュ時に使用されます デフォルト: False |
-T--onlyterm | 操作を実行しないで、ターミナルエミュレータのみを開始します デフォルト: False |
--reset | ターミナルエミュレータを実行する前にボードをリセットします--onlytermデフォルト: False |
KFPGKパッケージは、いくつかのファームウェアまたはデータバイナリファイルとそのコンテンツを説明するJSONファイルを含むZIPアーカイブです。
さまざまなフラッシュアドレスで複数のファイルをフラッシュする必要がある場合、さまざまなオプションを使用すると、使用すると便利です。
ktool.py 、このファイルを調達し、コンテンツを開梱し、必要な操作を実行できます。
パッケージにはflash-list.jsonという名前のJSONファイルが含まれている必要があります。
filesの下の各ファイルを説明するには、次のオブジェクトを存在する必要があります。
| 鍵 | 値の説明 |
|---|---|
address | 整数;ファイルコンテンツが書き込まれるフラッシュアドレス |
bin | 弦;フラッシュするファームウェア/データを含むファイルの名前 |
sha256Prefix | ブール ファームウェアプレフィックスとSHAサフィックスを備えた trueフラッシュ(実行可能ファームウェアにフラッシュ)ファームウェアのプレフィックスとSHAサフィックスなしで ḟalseフラッシュ(データ) |
swap | Boolean 、存在しない場合はデフォルトが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
}
]
}