我正在尝试使用crosstool-NG构建一个交叉编译器来定位在我的 NAS 盒上运行的处理器。
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
目标选项页面上的选项,()中的标志和我当前的设置:
- 目标架构(臂)
- 使用 MMU(是)
- 字节序(小字节序)
- 位数(32 位)
- 默认指令集模式(arm)
- 使用 EABI(是)
- 架构级别 --with-arch= ()
- 为 CPU 发出程序集 --with-cpu= ()
- CPU调优()
- 使用特定的 FPU ()
- 浮点数(软件)
- 目标 CFLAGS ()
- 目标 LDFLAGS ()
我一直在尝试“架构级别”和“为 CPU 发射程序集”中的各种组合,例如arm926ej-s
, armv5l
, armv5tej
,但我不知道哪个选项在哪里。
我已将目标操作系统设置为裸机,因为 crosstool-NG 没有盒子上使用的 Linux 版本。
此外,一旦构建了工具链,我是否需要再次将相同的选项传递给编译器。
到目前为止,通过尝试刚刚产生的Illegal instruction
消息。
编辑
如果有人可以将我指向一篇关于设置 ARM GCC 工具链的文章,并明确参考如何找出正确的参数,那将回答我的问题。