マイコンとプロセッサの開発では、ブートに必要なソフトウェアのカスタマイズ方法が大きく異なります。ボードに依存した部分のカスタマイズをする際には、ROMコードの場合は、OTPの設定を変更する必要があります。ブートローダ―、セキュアモニター、Linuxカーネルのカスタマイズはデバイスツリーと呼ばれる設定ファイルを変更します。
Q1 評価ボードのデバイスツリーはどこにありますか?
A1 デバイスツリーは、SDKのソースコード内に表2の”評価ボード(STM32MP135F-DK)のデバイスツリーのソースコード”の列に記載した通り、それぞれのブート段階に対応したデバイスツリーがあります。
Q2 新規開発した基板でコンソールから何も出力されません。基板が動作可能なように設計/製造できているか調べたいので、CPUが起動可能かどうかだけでも、今すぐに確認したいのですが、どうしたらいいですか?
A2 次の3項目(ROMコードの実行可能、FSBLの読み出しの成否、FSBLのUARTデバイスツリー設定)を確認します。
確認項目1:まずは、ROMコードが実行可能なのかを確認します。
エンジニアリングモードを使用して、ROMコードのみが実行される状態でデバッグ用LED(PA13)の状態から、CPUがROMコードを実行可能、つまりCPUは起動可能であることを確認できます。
手順:USBOTGケーブルを刺さない状態で、ブートSWを”000”エンジニアリングモードに設定し、RESET後にデバッグ用LEDのLD4(PA13)のLEDが点滅すればROMコードは実行されていることを確認できます。こちらが確認できれば、確認項目2に移ります。
確認項目2:次にSDカードなど起動メディアからファーストステージブートローダ―(FSBL)の読み出しが失敗していないかをデバッグ用LED(PA13)の状態から確認します。
手順:例えば、SDカードからのブートの場合、USBOTGケーブルを刺さない状態で、ブートSWを”101”SDカードブートに設定し、RESET後にデバッグ用LED(PA13)がずっと点滅している場合は、ROMコードは起動していますが、FSBLが読み取れていません。
SDカードが正常な位置に挿入されているか、SDカードへのアクセス回路の設計に問題がないか等を確認してください。一方、FSBLの読み出しが成功している場合は、デバッグ用LED(PA13)の状態は消灯となります。こちらが確認できれば、確認項目3に移ります。
デバッグ用LEDの挙動の説明はこちらを参照ください。
確認項目3:FSBLの読み出しが正常に行われた場合は、FSBLのコンソール用UARTのデバイスツリー設定および、ヘッダファイルの設定を確認します。
手順:まず、回路図を確認して、コンソール用UARTのピンアサインが標準設定と同じかどうか、確認します。
コンソール用UARTのピンアサインの標準設定は次のようになっています。
STM32MP13x: UART4_TX ->PD6 UART4_RX ->PD8
標準設定と異なる場合は、デバイスツリーおよびヘッダファイルのカスタマイズを行います。
デバイスツリーの設定例はこちらを参照ください。
FSBLの段階でコンソールに何も表示がされない場合、デバイスツリーのカスタマイズに加えて、TF-Aのヘッダファイル中のUART early consoleのポート割り当て設定も変更が必要です。ヘッダファイルの設定例はこちらを参照ください。
Q3 ブートの途中で、ハングアップします。コンソールからのメッセージの出力はされます。何が原因ですか?
A3 まず、コンソールのメッセージを確認して、ハード、ソフトの両面から考える必要がありますが、傾向として多いのは次のようなものです。
Copyright © ITmedia, Inc. All Rights Reserved.