このページでは

C

Infineon ボードのブートローダー書き込み手順

ブートローダー

すべてのInfineon TRAVEO T2Gボードにはブートローダーが必要です。デフォルトでは、最初のArm Cortex-M0+ CPUコアのみが電源投入されます。システム内で利用可能な他のCPUコアの設定およびその後の電源投入は、この最初のコアの役割です。この起動アプリケーションは、ブートローダーと呼ばれます。 基本的なコア設定には、ターゲットコアを駆動するクロックの起動と、ベクタテーブルアドレスの設定(VTOR )が含まれます。

電源投入およびリセットシーケンス

ターゲットCPUの電源投入時、一般的に、オフセットVTOR+0 からSP_Main のアドレスを読み取り、その後、VTOR+4 のアドレス(「リセット」と呼ばれる例外番号1のオフセット)へジャンプします。このベクタテーブルには、他の例外ハンドラも定義されています。

例外ハンドラのアドレスの最下位ビットは、Arm(ビットがセットされていない)とThumb(ビットがセットされている)の命令セットを切り分けるために使用されます。TRAVEOファミリーに搭載されているArm Cortex-M CPUは、Thumb命令セットのみの実行をサポートしています。Reset の例外アドレスの最下位ビットがセットされていることが重要です。

アプリケーションはすでにフラッシュメモリに格納されていることが想定されるため、動的なブートイメージは存在せず、したがって専用のブートイメージ形式もありません。これは、設定を実行するCPUコアと、設定対象となるCPUコアとの間の連携が、設計上完全に同期していなければならないことを意味します。

通常、この静的アドレスは、定義が必要な箇所を最小限に抑えるため、リンカー設定を使用して設定されます。このアプローチは、Qt Quick Ultralite ではデフォルトで使用されています。

注: VTOR (ベクタテーブルオフセット)は、少なくとも128バイトのアライメントを持つ必要があります。デバイス固有の追加の制限が適用される場合があります。

関連項目

ブートローダが後続の Arm Cortex-M7 コアの電源投入を行う一方で、TRAVEO T2G MCU における Arm Cortex-M0+ 自体の電源投入については、対応する MCU データシートの「CPU 起動シーケンス」の章で説明されています。この動作は TRAVEO ファミリに固有のものです。

アーキテクチャレベルでは、Armv6 - M およびArmv7-Mアーキテクチャ・リファレンス・マニュアルの以下の章に、擬似コードで記述された正確なシステムリセットの動作やベクタテーブルのフォーマットに関する詳細情報が記載されています。

  • リセット動作
  • ベクタテーブル
  • 例外番号の定義

ブートローダの書き込み

ブートローダのフラッシュは、ファイル名を除いて、他のアプリケーションのフラッシュと何ら変わりません。詳細については、フラッシュ手順の章を参照してください。

フラッシュプログラミングツールがデフォルトのインストール先にインストールされているか、システムパス(PATH )から検出される場合、フラッシュターゲットは常に有効になります。これにはブートローダーも含まれます。したがって、コマンドラインレベルでプログラミングツールを使用する必要はなく、代わりに例えばQt Creator を使用できます。

複数の異なるバイナリファイルをフラッシュする場合は、フラッシュメモリの消去特性を確認してください。データを書き込む前に、ユーティリティは既存のデータを自動的に消去します。通常、消去セクタの粒度は、書き込むデータセクタやブロックよりも大きくなります。 たとえば、内部コードフラッシュには一度に256ビットを書き込むことができますが、対応する消去セクタのサイズは32キロバイトです。複数の独立したバイナリファイルで消去セクタが重複している場合、最後に書き込まれたバイナリの内容のみが有効となります。

ブートローダーイメージ

ブートローダーイメージは、Qt for MCUs のインストール先にあるbin/bootloaders/cypress/<board>-<platform>_bootloader.elf から入手できます。Qt Quick Ultralightをソースからビルドする場合、ブートローダーイメージもビルドディレクトリに配置されます。

次の表に、ブートローダーイメージの名前と対応するMCUを一覧で示します。

ボードターゲット名ブートローダーイメージ
TRAVEO T2G CYT3DL (4M)tviic2d4mtviic2d4m-baremetal_bootloader.elf
TRAVEO T2G CYT3DL (4M LITE KIT)tviic2d4mlitetviic2d4mlite-baremetal_bootloader.elf
TRAVEO T2G CYT4DN (6M)tviic2d6mtviic2d6m-baremetal_bootloader.elf
TRAVEO T2G CYT4DN (6M LITE KIT)tviic2d6mlitetviic2d6mlite-baremetal_bootloader.elf またはtviic2d6mlite-baremetal_mtb_bootloader.elf (ModusToolbox)
TRAVEO T2G CYT4EN (6M DDR)tviic2d6mddrtviic2d6mddr-baremetal_bootloader.elf

特定のQtライセンスの下で利用可能です。
詳細はこちら。