2

ARM ベースの携帯電話 (Nexus S) 用に純粋な ARM アセンブリで小さなプログラムを作成したいと考えています。Cでのインラインアセンブルは知っているのですが、

int main() {
    asm("nop");
    return 0;
}

perf は、このプログラムを実行するために何千もの命令とサイクルが消費されたことを示しました。理由はわかりません..しかし、これは最小のCライブラリをロードしてint mainを処理し、とりわけ0を返すためだと思います。
それは避けたいですね..

だから、純粋なアセンブリで小さなプログラムを書いて、ARMベースの電話(Nexus S)で実行できるかどうか疑問に思っていました.

4

3 に答える 3

1

最初に、適切なツールキットが必要です。最も重要なのはアセンブラーです。fasmarmをお勧めします。

これは FASM に基づくクロスアセンブラーです。x86 マシン (Windows または Linux) でプログラムを作成し、プログラムをコンパイルしてから、Arm マシンにアップロードして実行する必要があります。

Fasmarmは、Arm プロセッサとコプロセッサの全範囲をサポートしています。

于 2013-06-13T20:32:58.247 に答える
1
.globl _start
_start:
   nop
   b .
于 2013-06-13T15:04:52.330 に答える
0

duo gnu armコンパイラ + eclipse IDE を使用できます。完全な環境を実現するには、ブートローダーも必要です。LPC2148 uC を扱う必要があったので、以前は LPCUSB ローダを使用していました。Eclipse との統合も簡単だったので、ロードとコンパイルはワンクリックで完了しました。

詳細については、 https ://www.google.pl/search?num=20&newwindow=1&safe=off&espv=210&es_sm=93&q=gnu+arm+eclipse+plugin+installation を参照してください。

uC で動作する適切なブートローダーを選択する必要があります。

于 2014-02-21T18:49:32.480 に答える