2009-08-25 7 views
4

楽しいことに、私は小さな言語用のコンパイラを開発しています。まずARM命令セットを簡単にすることを目標にしています。現在、私はコードをコンパイルすることができるので、各メソッドの本体のARMマシンコードがあります。この時点で、私はいくつかのことを一緒に結ぶ起動する必要があります。実行可能なバイナリ形式とエミュレータにはどのようなものがありますか?

  • 私は私ができると私のマシンコードを永続化する必要がありますどのような形式...
  • 実行それがどのようなデバッガで?

現在、I/Oサポートなどはありません。したがって、デバッグは、逆アセンブリを実行してプロセッサのレジスタ/メモリを表示する能力に大きく依存します。

私はWindowsを実行していて、コンパイラはWindowsでのみ動作しますので、Windows上で何らかのエミュレータを使用する方が望ましいでしょう。

編集:私はVisual Studio Windows Mobile 6エミュレータを使用できます。現時点では、単純なバイナリ形式で結果を保存し、小さなC++コンソールアプリケーションを介してエミュレータメモリにロードしてから、関数ポインタを使用してジャンプすることができます。後でELFとPEのフォーマットをサポートする必要があるようです。ファイル形式について

+0

埋め込みソフトウェアに関連していると仮定して、おそらく '埋め込み'タグを追加します。 –

+0

はい、Windows MobileでPEを使用できます。と小さな "ビンスターター"は良い低コストのアイデアは、それを示唆したいだけでなく、遅すぎる:) – zxcat

答えて

3

...最も簡単なは次のようになります。

これらのフォーマットはバイナリデータとターゲットアドレスの範囲(複数可)を記録することができますロードされるデータ。それはそれです。

詳細含有するより可能なフォーマット:最大情報について

ELFはかなり広くサポートされず、DWARFデバッグ情報を含みます複雑すぎる。 DWARFを使用すると、複雑な言語構成のデバッグに非常に表現力のあるデバッグ情報を記録できます。しかし、その表現力を実現するには、それは非常に複雑な形式で書くことができます。

+1

あなたはそれを最終的にサポートする必要がありますが使用されています。それはかなり簡単ですが、srecやintel hexほど簡単ではありません。 –

関連する問題