繁体   English   中英

如何在arm-none-eabi-gcc中指定Cortex-A53?

[英]how to specify Cortex-A53 in arm-none-eabi-gcc?

我正在尝试在minGW中使用arm-none-eabi-gcc编译HELLOWORLD.c,命令如下:

D:\code>arm-none-eabi-gcc hello.c -o hello -shared

它工作了,并生成了一个“ hello”,其详细信息如下:(我将其放入Ubuntu并将其归档):

gec@ubuntu:/mnt/hgfs/code$ file hello
hello: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, not stripped

然后将其放入目标平台(Cortex-A53)中并运行,结果是:

[root@GEC6818:~]# ./a
Segmentation fault

然后,我注意到我应该在compile命令中指定CPU或体系结构,所以我这样编译:

D:\code>arm-none-eabi-gcc hello.c -o a -mcpu=cortex-a53 --specs=nosys.specs

但它不起作用,运行结果是这样的:

[root@GEC6818:~]# ./a
Killed

所以,任何人都可以帮我吗? 衷心感谢

从帖子中可见的命令提示符看来,您似乎正在尝试在Linux系统上执行程序:

[root@GEC6818:~]# ./a
Killed

如果是这种情况,则不应使用以裸机(非Linux)目标平台为目标的arm-none-eabi-gcc工具链-请参阅此处 ,以了解gcc工具链名称与其系统之间的关系。定位。

更具体地说,在为未运行通用操作系统(即Linux)的系统进行编译时,应使用--specs=nosys.specs选项。

您应该改用arm-linux-gnueabihfaarch64-linux-gnu中的一种 如果运行的是32位ARM Linux,则应使用第一个工具链;如果运行的是64位Linux,则应使用第二个工具链。

您可以使用原始ARM系统中可用的可执行文件(例如/bin/sh上的file命令确定正在运行哪个版本。 如果/bin/sh是ELF 32位可执行文件,请使用arm-linux-gnueabihf 如果它是ELF 64位可执行文件,请使用aarch64-linux-gnu

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM