私が知っているように、プロセッサはRAMに直接アクセスできます。起動時のデバイスのRAMは空であり、CPUはブートローダーをどこにロードしてRAMから実行するのかを知りません。コールスタックは空でなければならないので、何もできません。 さらに実行するためにブートローダプログラムをRAMにコピーする方法はありますか?ARM CPUがブートローダをロードする方法は?
これは、スマートフォンなどの埋め込みデバイスで発生するはずです。 x86 PC BIOSは、ディスクからRAMへのMBRセクションのロードを担当します。
ハードコードされた初期ブートローダを搭載したROMオンチップの一部です。これはCPUに、ブートデバイスから(CPUピンをアップ/ダウンさせることによって構成された)次のブートローダをオンチップSRAMにロードして実行するように指示します。次に、2段目はより多くのハードウェアを初期化します。ブートデバイスのDRAMとファイルシステムをオフチップにして、3番目のブートローダをDRAMに入れて実行してください。第3段階の後、CPUはOSカーネルをロードして実行できるはずです。場合によっては、第3ステージ全体がDRAMにロードされる前に、第3ステージの一部をオンチップSRAMに圧迫する追加の2.5ステージがあります。 – user3528438
どのARMアーキテクチャを参照していますか?彼らは全く同じように働くわけではありません。さらに、多くの場合ベンダー固有のものであり、異なるARMライセンシーは実装が異なります。 – Clifford
@Clifford私はARMv7を参照しました – Alex