2

我想为我的基于 ARM 的手机(Nexus S)编写一个纯 ARM 程序集的小程序。我知道 C 中的内联汇编,但是当我尝试一个简单的程序时,例如

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

perf 表明运行该程序消耗了数千条指令和周期。我不知道为什么..但我相信这是因为加载了最小的 C 库以便处理 int main 并返回 0 等。
我想避免这种情况..

所以,我想知道是否可以用纯汇编编写一个小程序并在基于 ARM 的手机(Nexus S)上执行它

4

3 回答 3

1
.globl _start
_start:
   nop
   b .
于 2013-06-13T15:04:52.330 回答
1

首先,您需要一些合适的工具包——最重要的是汇编程序。我建议fasmarm

它是基于 FASM 的交叉汇编程序 - 您应该在 x86 机器(Windows 或 Linux)上编写程序,编译程序然后将其上传到 Arm 机器上执行。

Fasmarm支持全系列的 Arm 处理器和协处理器。

于 2013-06-13T20:32:58.247 回答
0

您可以使用 duo gnu arm编译器 + eclipse IDE。要拥有完整的环境,您还需要引导加载程序。因为我要处理LPC2148 uC,所以我以前使用LPCUSB loader。它也很容易与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 回答