web-dev-qa-db-ja.com

u-bootの問題をデバッグする方法は?

BeagleboneBlackでカスタムシステムを組み立てる作業をしています。ほとんどの場合は機能しますが、電源を入れるとシステムが起動しない場合があります。これは、シリアルデバッグケーブルが接続されている場合には発生しません(そのため、u-bootとカーネルのメッセージを見ることができます)。

しかし、私が見つけたのは、まれに失敗することがありますが、シリアルケーブルを接続すると、u-bootプロンプトに座っていることがわかります。カーネルとそこからすべてをロードするように手動でu-bootを設定すると、見つけるだけで起動できます(eMMCなどを読み取ることができます)。

私が最初に考えたのは、シリアル回線に何らかのノイズがあり、u-bootが壊れていることでした(デフォルトでは2秒でスペースが壊れると思います)。ただし、0秒の遅延を使用するようにu-bootを再コンパイルしました(スペースバーを待機しません)が、それでも問題は解決しませんでした。

起動中にシリアルケーブルを接続せずにu-bootが停止する理由をどのように理解できますか(問題が解決するため、Heisenbug)?アクセスできるログの種類はありますか?

1
Dave

私は、uartRXピンがグランドに接続されているボードを一度持っていました。したがって、u-bootは常にキーが押されるのを見ました。

使用しているバージョンがわからない...

_/common/autoboot.c_

関数

static int abortboot_normal(int bootdelay)

返品の直前に行を追加します

_abort = 0;_

これにより、押されたキーは返されません。

1
jc__