天嵌 ARM开发社区

 找回密码
 注册
查看: 11433|回复: 16

Illegal instruction

[复制链接]
Ray_buaa 发表于 2010-5-11 14:23:48 | 显示全部楼层 |阅读模式
在开发板上运行Qt程序时产生Illegal instruction 的错误 ,我用的是linux-2.6.9内核,arm-linux3.3.2的交叉编译器qt-embed 4.4.3,那个牛人帮忙解答一下?
亚瑟王 发表于 2010-5-11 17:17:14 | 显示全部楼层
建议你使用天嵌科技提供的内核、qt源码和交叉编译器。
 楼主| Ray_buaa 发表于 2010-5-11 17:23:01 | 显示全部楼层
问题补充一下,我用qmake 生成一个普通的可执行文件是在开发板上能正常运行,用qmake生成一个调用QtGui的Qt程序时产生Illegel Instruction 的错误
亚瑟王 发表于 2010-5-11 18:05:53 | 显示全部楼层
你使用的是天嵌科技的TQ2440开发板吗?天嵌科技没有提供过2.6.9的内核。
 楼主| Ray_buaa 发表于 2010-5-11 18:40:38 | 显示全部楼层
我使用的是别的公司的开发板
亚瑟王 发表于 2010-5-13 17:01:02 | 显示全部楼层
建议你去咨询你所购买的开发板的那家公司。
 楼主| Ray_buaa 发表于 2010-5-14 16:37:03 | 显示全部楼层
我用的XScale系列的芯片,Inter Xscale这款新型高性能、低功耗的微构架兼容arm v5 te isa指令集,不过不支持浮点指令集。这是为了节省处理器芯片体积和降低运行功耗,XScale体系结构没有实现昂贵的浮点运算部件和除法部件。这些是嵌 入式应用中不常用的运算。当需要这类运算时,要通过软件方法实现。因此必须采用支持浮点运算的交叉编译器来编译XScale上运行的程序,否则就会产生illegal instruction 的错误。
换了个交叉编译器就好了。
详细请看http://hi.baidu.com/adrain001/bl ... 7b409d0a7b82ac.html
卡卡西莫多 发表于 2012-10-8 10:00:38 | 显示全部楼层
亚瑟王 发表于 2010-5-11 18:05
你使用的是天嵌科技的TQ2440开发板吗?天嵌科技没有提供过2.6.9的内核。

我的TQ2440板没有动过,是出厂默认的LINUX,我把QTCREATOR编译的程序考进去,显示illegal instruction,原因可能在哪里啊?编译的是光盘示例程序
亚瑟王 发表于 2012-10-8 11:27:37 | 显示全部楼层
卡卡西莫多 发表于 2012-10-8 10:00
我的TQ2440板没有动过,是出厂默认的LINUX,我把QTCREATOR编译的程序考进去,显示illegal instruction,原 ...

你烧写的文件系统是qtopia 2.2.0的?还是qt4的?然后你做的应用程序是qt4的吗?
卡卡西莫多 发表于 2012-10-8 15:39:17 | 显示全部楼层
亚瑟王 发表于 2012-10-8 11:27
你烧写的文件系统是qtopia 2.2.0的?还是qt4的?然后你做的应用程序是qt4的吗?

QT4文件系统,是光盘的示例程序,不是我做的
亚瑟王 发表于 2012-10-8 16:46:41 | 显示全部楼层
卡卡西莫多 发表于 2012-10-8 15:39
QT4文件系统,是光盘的示例程序,不是我做的

你的应用程序呢?怎么编译出来的?
卡卡西莫多 发表于 2012-10-8 16:51:04 | 显示全部楼层
亚瑟王 发表于 2012-10-8 16:46
你的应用程序呢?怎么编译出来的?

qmake -project,qmake,make。。。。。。。。。手册上有个setARM_env,我source这个导入变量时,说没有那个目录或者文件。。。。。但是MAKE能通过
亚瑟王 发表于 2012-10-8 16:56:21 | 显示全部楼层
卡卡西莫多 发表于 2012-10-8 16:51
qmake -project,qmake,make。。。。。。。。。手册上有个setARM_env,我source这个导入变量时,说没有那个 ...

1、你用qmake命令,而不是用的$QMAKE,前者是PC自带的,也就是x86的。后者在天嵌科技的教程里面和实际应用中是arm版本的。也就是说,你编译的应用程序是PC端运行的,x86的,而不是开发板端运行的。
2、执行setARM_env报什么错呢?在执行这个之前,必须先编译出arm版本的qt库才行。
卡卡西莫多 发表于 2012-10-8 16:59:38 | 显示全部楼层
亚瑟王 发表于 2012-10-8 16:56
1、你用qmake命令,而不是用的$QMAKE,前者是PC自带的,也就是x86的。后者在天嵌科技的教程里面和实际应用 ...

已经编译好了ARM板的QT库了的,以前执行 source setARM_env都没报错,现在说“没有那个文件或者目录”;我就是用qmake命令啊,按照手册上在脚本写$QMAKE,执行不了./arm_project
亚瑟王 发表于 2012-10-8 17:22:55 | 显示全部楼层
卡卡西莫多 发表于 2012-10-8 16:59
已经编译好了ARM板的QT库了的,以前执行 source setARM_env都没报错,现在说“没有那个文件或者目录”;我 ...

你在哪里执行的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-18 04:20 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表