作者JUSTLOVEAYU (海费尔)
看板LinuxDev
标题[问题] 自行编译cross compiler
时间Wed Jan 19 19:09:38 2011
这二天我在编译新的cross compiler,因为我想把PXA270版子所附赠的toolchain做更新
我是按照以下网址做
http://ccwang-jay.blogspot.com/2010/09/arm-gcc-toolchain-cross-compiler-for.html
刚刚终於搞定了
结果我把编译好的程式(简单的hello world)拿到PXA270版子上执行
结果显示 Illegal Instruction,请问为什麽会这样呢?我缺少什麽东西呢?
上面做出来的compiler不是全部嵌入式平台通用的compiler吗?
有人可以指导我一下吗?
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.125.45.103
1F:→ dakiyo:check ISA version 01/19 21:55
2F:→ JUSTLOVEAYU:请问从哪边去check ISA version? 01/19 23:02
3F:→ rawpacket:先 file 一下你的执行档看是不是 for ARM 的. 01/20 00:01
4F:→ JUSTLOVEAYU:the message is:a.out: ELF 32-bit LSB executable, 01/20 00:53
5F:→ JUSTLOVEAYU:ARM, version 1, statically linked, not stripped 01/20 00:53
6F:→ JUSTLOVEAYU:看来应该有for ARM,接下来我该朝哪个方向去debug呢? 01/20 00:56
7F:→ badwork:你是照网页教的用arm-elf-run ./hello来执行吗? 01/20 13:37
8F:推 shaopin:我觉得从一开始"更新toolchain"这件事就有问题..why? 01/20 15:03
9F:→ shaopin:去读ARM cp15的register就能独到ARM version 01/20 15:04
10F:→ JUSTLOVEAYU:对,我是用arm-elf-run ./hello来执行,这样是ok的 01/20 16:54
11F:→ JUSTLOVEAYU:後来我把hello执行档传送到板子执行却是出错的 01/20 16:55
12F:→ JUSTLOVEAYU:因为厂商所附赠的cross compiler不支援gcc的某些参数 01/20 16:57
13F:→ JUSTLOVEAYU:所以我才会想自行更新cross compiler 01/20 16:57
14F:→ JUSTLOVEAYU:s大不好意思,现在在板子上执行hello都有问题了,更不 01/20 16:59
15F:→ JUSTLOVEAYU:说是去读register了@@ 01/20 16:59
16F:推 dakiyo:你是放到板子上的linux跑吗?如果是的话用arm-linux-gcc来编 01/20 22:30
17F:推 askacis:EABI的问题?不知道原本的tool-chain版本是多少? 01/20 22:39
18F:→ askacis:原po可以check一下kernel config里面, Use the ARM EABI 01/20 22:41
19F:→ askacis:to compile the kernel这行有没有被勾选,没有的话把他开启 01/20 22:42
20F:→ askacis:或者是用arm-linux-readelf -h 读一下你的hello的header 01/20 22:43
21F:→ askacis:以及kernel的,看他们的Flag属性是不是一样... 01/20 22:44
22F:→ askacis:如果kernel跟userspace的ABI介面不一样,userspace会有问题 01/20 22:47
23F:→ JUSTLOVEAYU:是的,hello是在host端做编译,之後再把编译出来的执 01/21 01:16
24F:→ JUSTLOVEAYU:行档放到板子上的linux跑 01/21 01:16
25F:→ JUSTLOVEAYU:感谢楼上两位的指导,等我回LAB我再check看看 01/21 01:19
26F:推 shaopin:也不用run linux, 你有debugger的话用jtag读就好了 01/21 11:09