uClinux 2.4 を実行する ARM プラットフォーム用のカーネルを構築しています。Linux 構成の「General Setup 」の下に、「 m68knommu-style attached romfs in RAM support 」というオプションがあります。私の ARM アセンブリ スキルは多少制限されていますが、このオプションを有効にすると、ROMFS がカーネル BSS の最後にコピーされます。
これの目的は何ですか?
ご指摘のとおり、このオプションにより、カーネル イメージに添付された romfs が .bss セクションの最後に再配置されます。これにより、システムはルートファイルシステムとして romfs から起動できます。
上記は正確には正しくありません。私は実際に変更を開発したと信じています。前述のように、この機能はカーネル イメージに連結された romfs ファイルシステムのサポートを提供します。どちらも RAM に配置されます。次に、このオプションにより、romfs ファイルシステムのサイズが自動的に評価され、RAM の予約領域に移動されます (また、MTD RAM ドライバーを介してマウントするために渡される適切なポインター)。
この変更を行わないと、RAM が不足する可能性があります。必要なのは、ブートローダーで事前に決められた場所に配置し、適切なカーネル オプションを渡すことだけでした。この変更によって追加された大きな機能は、Coldfire ビルドのように、単一の統合されたカーネルとファイル システムのイメージを持つことができることでした。
head-platform.S に適切な変更を加えた場合にのみ機能することに注意してください.