一、编译器与arm处理器架构不匹配
eg:
TQ2440使用了S3C2440处理器,在板上cat /proc/cpuinfo
[root@EmbedSky /]# cat /proc/cpuinfo
Processor : ARM920T rev 0 (v4l)
BogoMIPS : 199.47
Features : swp half
CPU implementer : 0x41
CPU architecture: 4T
CPU variant : 0x1
CPU part : 0x920
CPU revision : 0
Hardware : TQ2440
Revision : 0000
Serial : 0000000000000000
可以看出cpu结构为armv4,而所用SourceryCodeBench默认是用armv5的option的(安装完的readme有写),所以illegal instruction根本原因是版本不匹配。
改为:
windows命令行:arm-none-linux-gnueabi-gcc.exe -march=armv4t -o hello hello.c
tq2440:
[root@EmbedSky /]# tftp -g -r hello 192.168.0.108
[root@EmbedSky /]# chmod +x hello
[root@EmbedSky /]# ./hello
Hello Arm World!
阅读(3431) | 评论(0) | 转发(0) |