ターゲットボードの起動時に、コンソールに、イメージ名、イメージタイプ、ロードアドレス、チェックサムの確認などの情報をuboot(bootloader)が出力しています。どの印刷メカニズムを使用していますか?それはprintk
のようなものを使用していますか、またはカーネルが起動する前に印刷情報のための独自の定義を持っていますか?印刷の実装のためのコードはどこにありますか?ボード起動時のubootの印刷情報
1
A
答えて
1
通常のUブートブートプロセスでは、限られた量の情報がコンソールに出力されます。 Cプログラミングで使用しているのと同じ種類の関数を使って情報を出力します。
のu-bootのコンソール上で情報を印刷するprintf
とputs
を使用しています。 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'コマンドで置き換えます。
関連する問題
- 1. 印刷クラス情報C#フォーム
- 2. 初回起動時のiOSユーザー情報
- 3. のMips - 印刷のゲームのボード
- 4. 印刷時に切り捨てられた情報
- 5. Laravelでファイル情報を印刷
- 6. 春3起動時の奇妙な情報
- 7. C#.NETフォームでの情報の保存と印刷
- 8. ページ情報なしのHTMLページの印刷
- 9. 印刷に適したバージョンでは、ここでの情報
- 10. ロボットフレームワークの情報メッセージが印刷されない
- 11. 印刷するファイルの情報を変更する
- 12. 印刷時のエラー
- 13. 印刷時のエラー
- 14. Javaで情報テーブルを印刷するには
- 15. ユーザーに座標情報を印刷する、Swift
- 16. Javaプロジェクトに関する情報を印刷するには
- 17. 著作権情報テキストをOpenLayersキャンバスに直接印刷
- 18. Cuda-gdbで解体情報を印刷する
- 19. Windows起動プログラム情報を取得
- 20. 組み込みATMELボードからの印刷
- 21. アクセスレポートの印刷物(またはPDF)に印刷プレビューに表示される情報がありません
- 22. 印刷時に私のCSSが感情的でない理由
- 23. 印刷時にテキストが移動する
- 24. アレイ印刷時のエラー
- 25. 印刷時のHTMLプッシュテーブル
- 26. <a>タグなどの中のPHP情報を印刷するには?
- 27. 次の情報を非表示にする:WinForms WebBrowserの印刷出力
- 28. ロケールの利用可能なすべての情報を印刷するには?
- 29. 印刷時限スレッド
- 30. ボードは正しく印刷されません
U-Bootは、基本的にUART経由でシリアルコンソールにメッセージを出力します。これには内部APIがあります。もちろん、UARTに書き込む前に、U-Bootは最初にそれを初期化(設定)する必要があります。これはカーネルとほとんど同じです。内部をよりよく理解するためには、UARTに書き込むことができるU-Bootの最小限のバージョンを調べることができます:https://gitlab.com/joeskb7/dra7xx-hello/tree/master –
@samprotsenko ubootコードに感謝します。しかし、私のUARTはttyHSで、ボーレートは757000です。カーネルでubootコードを使って、カーネルの初期の印刷機能を使うことはできますか? – karthikpj
そのコードは単なる参考用です。いいえ、厳密にアーキテクチャに依存しているため、使用できません(1つのプラットフォームでのみ動作しますが、これはおそらく同じではありません)。基本的には、U-Bootで印刷が実際にどのように行われたかを、ちょっと説明したかっただけです。ご使用のプラットフォーム用のシリアルコンソールドライバ(U-Boot内)を探して、その動作方法を調べることができます。 'debug()'や 'printf()'のような関数はすべてのアーキテクチャーに共通ですが、最終的には皆さんのプラットフォーム固有のシリアルコンソールドライバに依存しています。 –