0

こんにちは、Cambridge Computer Labs: Baking Pi ガイドに従っています。このガイドでは、ラズベリー pi の ARM CPU 用の独自のシンプルな OS を構築できます。私の質問は、単純な C コンパイラを実装して、OS で基本的な C プログラムを実行できるようにするにはどうすればよいかということです (必要なヘッダーなしでコンパイルするにはどうすればよいでしょうか? それらを自分で実装する必要がありますか?)

4

2 に答える 2

3

うーん、大変な作業ですね…

  1. ARM アセンブラを作成します。C プログラムは (通常) アセンブリに変換されてからアセンブルされます。いずれにせよ、C コンパイラーにはこのステップが必要なので、別のアセンブラーを用意して別のツールを用意しておくことをお勧めします。アセンブラは比較的簡単に記述できます。
  2. C コンパイラを作成します (ここから楽しみが始まります)。これにより、C コードがアセンブリに変換されます。
  3. C プログラムで使用する標準 C ライブラリをビルドします。このライブラリは、OS と連携する必要があります。OS が何らかの OS 標準 (POSIX など) に従っていることをお勧めします。これにより、この部分がより簡単になります。
  4. リンカを書きます。これは、アセンブラによって生成されたオブジェクト ファイルを取得し、それらを対応するライブラリ (存在する場合) にリンクします。
  5. ???
  6. 利益
于 2013-07-16T14:37:32.880 に答える
0

別のマシンで c ライブラリを ARM cpu のアセンブリ ファイルにコンパイルする必要があります。次に、ARM マシンのメモリにロードするバイナリ ファイルが残ります。実行を開始する場合は、pc レジスタをコンパイラの先頭に設定します。ソースファイルなどを指すポインターが配置されている場所のセマンティクスを知っておく必要があります。 http://www.osdev.org/には、ac コンパイラのブートストラップに関する多くの情報があります。

于 2013-07-16T14:31:09.370 に答える