我想为基于ARM的手机(Nexus S)编写一个纯ARM程序集的小程序。 我知道C中的内联汇编,但当我尝试一个简单的程序,如
int main() {
asm("nop");
return 0;
}
perf表明,运行该程序消耗了数千条指令和周期。
我不确定为什么......但我相信这是因为加载了最小的C库以便处理int main和返回0等。
我想避免这个..
所以,我想知道是否可以在纯组装中编写一个小程序并在基于ARM的手机(Nexus S)上执行它
答案 0 :(得分:1)
.globl _start
_start:
nop
b .
答案 1 :(得分:1)
首先,您需要一些合适的工具包 - 最重要的是汇编程序。我建议fasmarm。
它是基于FASM的交叉组装器 - 您应该在x86机器上编写程序 - Windows或Linux,编译程序然后将其上传到Arm机器执行。
Fasmarm支持全系列Arm处理器和协处理器。
答案 2 :(得分:0)
您可以使用duo gnu arm 编译器+ eclipse IDE。要拥有完整的环境,您还需要bootloader。因为我不得不处理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的引导加载程序。