我正在尝试构建一个交叉编译器,以目标处理器运行在我的NAS盒使用曲柄-NG。
NAS框是一个ZyXEL NSA210,有一个示例dmesg输出,/proc/cpuinfo是:
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 183.09
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
...
Hardware : Oxsemi NAS
Revision : 0000
Serial : 00000d51caab2d00目标选项页上的选项、标志和()中的当前设置:
我在“架构级别”和“为CPU发出程序集”(如arm926ej-s、armv5l、armv5tej )中尝试过各种组合,但我不知道哪一种选项适用于何处。
我已经将Target设置为纯金属,因为Linux的版本没有在机箱上使用。
而且,一旦构建了工具链,我需要再次将相同的选项传递给编译器。
到目前为止,尝试已经产生了Illegal instruction消息。
编辑
如果有人能给我看一篇关于建立手臂GCC工具链的文章,并明确提到如何找出正确的参数,那就回答了我的问题。
发布于 2012-04-25 15:15:08
试试这些
--with-arch=armv5te
--with-tune=arm926ej-s或
--with-cpu=arm926ej-s(两者都没有意义)。
否则你的选择看上去不错。
如果它仍然不能工作,那么您需要查看库和标头。如果您想使用动态链接库,那么您需要有与目标上的库、版本库和名称库匹配的库。如果您想使用静态链接,或者将您自己的共享库复制到目标上(可能是在一个需要额外配置的非标准位置),那么您应该没事。
无论哪种方式,都需要您的内核头来匹配。您可能只需从kernel.org下载一些当代内核头即可。
https://stackoverflow.com/questions/10253603
复制相似问题