BeagleboneBlackでカスタムシステムを組み立てる作業をしています。ほとんどの場合は機能しますが、電源を入れるとシステムが起動しない場合があります。これは、シリアルデバッグケーブルが接続されている場合には発生しません(そのため、u-bootとカーネルのメッセージを見ることができます)。
しかし、私が見つけたのは、まれに失敗することがありますが、シリアルケーブルを接続すると、u-bootプロンプトに座っていることがわかります。カーネルとそこからすべてをロードするように手動でu-bootを設定すると、見つけるだけで起動できます(eMMCなどを読み取ることができます)。
私が最初に考えたのは、シリアル回線に何らかのノイズがあり、u-bootが壊れていることでした(デフォルトでは2秒でスペースが壊れると思います)。ただし、0秒の遅延を使用するようにu-bootを再コンパイルしました(スペースバーを待機しません)が、それでも問題は解決しませんでした。
起動中にシリアルケーブルを接続せずにu-bootが停止する理由をどのように理解できますか(問題が解決するため、Heisenbug)?アクセスできるログの種類はありますか?
私は、uartRXピンがグランドに接続されているボードを一度持っていました。したがって、u-bootは常にキーが押されるのを見ました。
使用しているバージョンがわからない...
に
_/common/autoboot.c
_
関数
static int abortboot_normal(int bootdelay)
返品の直前に行を追加します
_abort = 0;
_
これにより、押されたキーは返されません。