1

ターゲットボードの起動時に、コンソールに、イメージ名、イメージタイプ、ロードアドレス、チェックサムの確認などの情報をuboot(bootloader)が出力しています。どの印刷メカニズムを使用していますか?それはprintkのようなものを使用していますか、またはカーネルが起動する前に印刷情報のための独自の定義を持っていますか?印刷の実装のためのコードはどこにありますか?ボード起動時のubootの印刷情報

+0

U-Bootは、基本的にUART経由でシリアルコンソールにメッセージを出力します。これには内部APIがあります。もちろん、UARTに書き込む前に、U-Bootは最初にそれを初期化(設定)する必要があります。これはカーネルとほとんど同じです。内部をよりよく理解するためには、UARTに書き込むことができるU-Bootの最小限のバージョンを調べることができます:https://gitlab.com/joeskb7/dra7xx-hello/tree/master –

+0

@samprotsenko ubootコードに感謝します。しかし、私のUARTはttyHSで、ボーレートは757000です。カーネルでubootコードを使って、カーネルの初期の印刷機能を使うことはできますか? – karthikpj

+0

そのコードは単なる参考用です。いいえ、厳密にアーキテクチャに依存しているため、使用できません(1つのプラットフォームでのみ動作しますが、これはおそらく同じではありません)。基本的には、U-Bootで印刷が実際にどのように行われたかを、ちょっと説明したかっただけです。ご使用のプラットフォーム用のシリアルコンソールドライバ(U-Boot内)を探して、その動作方法を調べることができます。 'debug()'や 'printf()'のような関数はすべてのアーキテクチャーに共通ですが、最終的には皆さんのプラットフォーム固有のシリアルコンソールドライバに依存しています。 –

答えて

1

通常のUブートブートプロセスでは、限られた量の情報がコンソールに出力されます。 Cプログラミングで使用しているのと同じ種類の関数を使って情報を出力します。

のu-bootのコンソール上で情報を印刷するprintfputsを使用しています。 u-bootソースコード(u-bootボードファイルとドライバ)に同じ関数の実装を見つけることができます。

詳細については、u-bootコマンドプロンプトから試すことができる多くのコマンドがあります。あなたはどちらかのことができ、より多くのメッセージを有効にするに

debug_cond (cond, fmt, args...):を使用して

  • をあなたには、いくつかの指揮を定義した場合、それが満たされた後、U-ブーツは、このメッセージを出力します。 (私の場合のmx6_common.hのように)、一度それを行うと、コードを再コンパイル
  • ファイルでDEBUGを定義することができdebug(fmt, args...):を使用して、U-boot- include/configs/<boardfile>_common.h、U-ブーツは、すべてのデバッグメッセージ
を出力します

注:コードにデバッグを入れすぎると、u-bootがハングアップする可能性があります。

0

uBootに関する情報(たとえば、printenvコマンドやprintenvコマンドを使用する変数)の情報が必要な場合は、起動時(カーネルの起動を中断)にuBootを入力できます。それらを 'setenv'コマンドで置き換えます。

関連する問題