基板にあわせて必要なソフトウェアのカスタマイズ項目:マイクロプロセッサQ&Aハンドブック(5)(3/3 ページ)
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載。今回は、「基板にあわせて必要なソフトウェアのカスタマイズ項目」について紹介します。
デバイスツリーによるブートローダ―のカスタマイズ
マイコンとプロセッサの開発では、ブートに必要なソフトウェアのカスタマイズ方法が大きく異なります。ボードに依存した部分のカスタマイズをする際には、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 まず、コンソールのメッセージを確認して、ハード、ソフトの両面から考える必要がありますが、傾向として多いのは次のようなものです。
- DDRメモリのサイズを評価ボードに比べて、小さくしているが、対応するデバイスツリーを修正せずに使用している
- PMICのI2Cのピン割り当てを評価ボードから変更しているが、対応するデバイスツリーを編集せずに使用している。
参考文献
- https://wiki.st.com/stm32mpu/wiki/STM32_MPU_ROM_code_overview
- アプリケーションノートAN5474 Getting started with STM32MP13x lines hardware development
- アプリケーションノートAN5692 DDR memory routing guidelines for STM32MP13x product lines
- STM32MP13x Series DDR memory routing guidelines examples : https://www.st.com/resource/en/hw_model/stm32mp13x-series-ddr-memory-routing-guidelines-examples.zip
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
マイクロプロセッサを使用したシステム、基板レイアウト作成時の重要ポイントは
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載「マイクロプロセッサQ&Aハンドブック」。今回は、「基板レイアウト作成時の重要ポイント」について紹介します。マイクロプロセッサを使用したシステム、回路設計時に重要なポイントは
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載「マイクロプロセッサQ&Aハンドブック」。今回は、「回路設計時の重要ポイント」について紹介します。マイクロプロセッサと一緒に使う部品と選び方
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載「マイクロプロセッサQ&Aハンドブック」。今回は、「マイクロプロセッサと一緒に使う部品と選び方」について紹介します。マイクロプロセッサ(MPU)の知っておくべき8つのポイント
マイクロプロセッサ(MPU)を使用したボードを開発するユーザーが抱えるさまざまな悩みに対し、マイクロプロセッサメーカーのエンジニアが回答していく連載「マイクロプロセッサQ&Aハンドブック」。初回である今回は、初めてマイクロプロセッサを使用するユーザーがつまずきがちなポイントなどをまとめた8項目の概要を紹介します。MCUとMPUの違いって何?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「MCUとMPUの違いって何?」です。マイコンボードが動作しないときの5つのチェックポイント
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコンボードが動作しないときの5つのチェックポイント」についてです。