Raspberry Piの起動シーケンスは、電源アプリケーション(または、それが異なる場合はウォームリセット)からロゴの出現までの典型的なセットアップ(NOOBSなど)でどのようなものか疑問に思います。またはそれが記述されている場所。
そのシーケンスの最も必要な一般的な画像に加えて、私は初期段階に最も興味があります:
- ARM CPUのリセットベクトルとは何ですか?それはどのように/どこで定義されていますか?
- 最初のARM CPU命令はどのメモリからフェッチされますか?それはどこにあり、このコードを保存するためにどのテクノロジーが使用されていますか?
- そのARM32またはThumb(またはおそらくJazelle)コードですか?それはリセットベクトルの下位ビットに依存しますか?
- その初期ブートコードのソース(または逆アセンブリ、またはダンプ)は利用可能ですか?そうでない場合、JTAGポートを使用してそれを判断することを妨げる技術的なものはありますか?法律に関しては、私が住んでいる場所(フランス)で適用される法律の理解を信頼するリスクを負う準備ができています。そうしないという要件。
- 周辺機器はどの順序で初期化され、どのコードで初期化されますか?
- ARM CPUのほかに、BCM2835で実行されているプロセッサ/オートマトンがありますか?肯定的には、そのブートシーケンスはARM CPUとどのように関連していますか?
ARM CPUのテクニカルリファレンスマニュアルとBCM2835 ARM Peripherals、またはその他のドキュメントに飛び込む準備ができました。
更新:投稿した後、私はこれとこれを見つけ、BCM2835のGPUがARMのマスターとして機能しており、ブートシーケンスに大きく関与していると述べました。
4
ソースコード、ブートローダー、SoCファームウェアなど、その情報のほとんどはクローズドソースであると言えます。今のところ、割り当ては不明です。あなたは一つのことを知っている必要があります。BCMはGPUであり、CPUではありません。ブートローダーはGPUセクションで開始し、そこでRAMを初期化して、ソースコードにアクセスできる最初の場所であるCPUに渡します(別名Raspbian)。がんばろう。この質問は非常に幅広く、答えるのが難しいです。
—
ピョートルクラ
関連:ブートプロセス中に何が起こりますか?。重複しますか?
—
ピーターモーテンセン