天嵌 ARM开发社区

 找回密码
 注册
查看: 4390|回复: 10

【求救!】【总线错误】PC上编译成功的QT4.5程序在arm上运行出现bus error

[复制链接]
猪的柏拉图 发表于 2012-1-7 00:08:42 | 显示全部楼层 |阅读模式
RT.
QT4.5
so文件什么的都移过去了
出现总线错误
请问是什么原因??
谢谢!!
change-live 发表于 2012-1-7 10:10:36 | 显示全部楼层
本帖最后由 change-live 于 2012-1-7 10:36 编辑

我是楼主 补充一下:
天嵌科技售后09  10:23:25
你的应用程序有什么样的功能呢?
猪的柏拉图  10:32:34
就是TQ6410 PDA开发板配套教程的 第一个程序 LED测试程序 按手册来做可以正常运行。 由于项目需要  我要用到OPENCV  于是我在QTcreater 里面添加了OPENCV的库支持, 具体改动就是 把原教材里的QPixmap("imgPath")  改成 用openc的cvLoadImage(imgPath)  得到一个IplImage*格式的图像  再用一个函数把它转换成QImage的格式  然后用QPixmap::fromImage(Qimage&)
转换成QPixmap格式的图像 后面就和原教材一样了  就是多了一个opencv的转换部分。 编译是可以通过的

change-live 发表于 2012-1-7 14:39:15 | 显示全部楼层
亚瑟王大大呢???
TQ-lkp 发表于 2012-1-7 20:41:21 | 显示全部楼层
你的问题描述也太简单了,不知道你到底是出错在哪了
change-live 发表于 2012-1-7 22:01:20 | 显示全部楼层
TQ-lkp 发表于 2012-1-7 20:41
你的问题描述也太简单了,不知道你到底是出错在哪了

我是楼主 补充一下:
天嵌科技售后09  10:23:25
你的应用程序有什么样的功能呢?
猪的柏拉图  10:32:34
就是TQ6410 PDA开发板配套教程的 第一个程序 LED测试程序 按手册来做可以正常运行。 由于项目需要  我要用到OPENCV  于是我在QTcreater 里面添加了OPENCV的库支持, 具体改动就是 把原教材里的QPixmap("imgPath")  改成 用openc的cvLoadImage(imgPath)  得到一个IplImage*格式的图像  再用一个函数把它转换成QImage的格式  然后用QPixmap::fromImage(Qimage&)
转换成QPixmap格式的图像 后面就和原教材一样了  就是多了一个opencv的转换部分。 编译是可以通过的


这样还不够吗? 还要提供什么信息?
change-live 发表于 2012-1-8 00:15:06 | 显示全部楼层
TQ-lkp 发表于 2012-1-7 20:41
你的问题描述也太简单了,不知道你到底是出错在哪了

需要提供什么信息吗??麻烦说一下 我找了下这方面的资料 说有可能是硬件的问题 我无从下手 麻烦帮一下忙啊!!
TQ-lkp 发表于 2012-1-8 10:07:25 | 显示全部楼层
把你的代码贴上来
是代码运行的时候报的错,还是根本就没有启动
你编绎的opencv的类库使用的交叉编绎器的版本是否匹配
change-live 发表于 2012-1-11 21:43:26 | 显示全部楼层
TQ-lkp 发表于 2012-1-8 10:07
把你的代码贴上来
是代码运行的时候报的错,还是根本就没有启动
你编绎的opencv的类库使用的交叉编绎器的 ...

不好意思 这几天在忙着别的事情
源码如下:
头文件ledtext.h:
  1. #ifndef LEDTEXT_H
  2. #define LEDTEXT_H

  3. #include <QWidget>
  4. #include <QtGui/QWidget>
  5. #include <qprocess.h>

  6. namespace Ui {
  7. class ledtext;
  8. }

  9. class ledtext : public QWidget {
  10. Q_OBJECT
  11. public:
  12. ledtext(QWidget *parent = 0);
  13. ~ledtext();
  14. public slots:

  15. void pbHelpClicked()
  16. {}


  17. protected:
  18. void changeEvent(QEvent *e);

  19. private:
  20. Ui::ledtext *ui;
  21. };

  22. #endif // LEDTEXT_H
复制代码

源文件:ledtext.cpp:

  1. #include "ledtext.h"
  2. #include "ui_ledtext.h"
  3. #include <QPixmap>
  4. #include <QFile>
  5. #include <sys/ioctl.h>
  6. #include <stdio.h>
  7. #include <fcntl.h>
  8. #include <cv.h>
  9. #include <highgui.h>


  10. //这是一个将opencv加载图片的格式转换成qt支持的QImiage*格式的类,
  11. //用getQImage()完成转换。

  12. class QCvImage{
  13. private:
  14. IplImage* cvBGRImg;
  15. IplImage* cvRGBImg;
  16. public:
  17. QCvImage()
  18. { }
  19. QCvImage(const char* imgPath)
  20. {

  21. cvBGRImg = cvLoadImage(imgPath, true);
  22. cvRGBImg = NULL;

  23. }
  24. QImage* getQImage(void)
  25. {
  26. if(cvBGRImg == NULL)
  27. return NULL;
  28. cvRGBImg = cvCloneImage(cvBGRImg);
  29. cvCvtColor(cvBGRImg, cvRGBImg, CV_BGR2RGB);
  30. uchar* imgData = (uchar*)(cvRGBImg->imageData);
  31. QImage* qimg = new QImage(imgData, cvRGBImg->width, cvRGBImg->height, QImage::Format_RGB888);
  32. return qimg;
  33. }

  34. ~QCvImage()
  35. {
  36. cvReleaseImage(&cvBGRImg);
  37. cvReleaseImage(&cvRGBImg);
  38. }
  39. };



  40. ledtext::ledtext(QWidget *parent) :
  41. QWidget(parent),
  42. ui(new Ui::ledtext)
  43. {
  44. ui->setupUi(this);
  45. QCvImage image("/opt/EmbedSky/baboon200.jpg");
  46. QImage* qimage=image.getQImage();
  47. QPixmap pixmap=QPixmap::fromImage(qimage->scaled(size(),Qt::IgnoreAspectRatio));
  48. QPalette palette;
  49. palette.setBrush(backgroundRole(),QBrush(pixmap));
  50. setPalette(palette);

  51. ui->pbHelp->setText("");
  52. ui->pbHelp->setFixedSize(QSize(82,83));
  53. QPixmap pix("/opt/EmbedSky/stuff.jpg");
  54. pix=pix.scaled(82,83,Qt::IgnoreAspectRatio);
  55. ui->pbHelp->setIcon(QIcon(pix));
  56. connect(ui->pbHelp,SIGNAL(clicked()),this,SLOT(pbHelpClicked()));

  57. ui->pbExit->setText("");
  58. ui->pbExit->setFixedSize(82,83);
  59. ui->pbExit->setIconSize(QSize(82,83));
  60. pix.load("/opt/EmbedSky/cat.jpg",0,Qt::AutoColor);
  61. pix=pix.scaled(82,83,Qt::IgnoreAspectRatio);
  62. ui->pbExit->setIcon(QIcon(pix));
  63. connect(ui->pbExit,SIGNAL(clicked()),this,SLOT(close()));

  64. }

  65. ledtext::~ledtext()
  66. {
  67. delete ui;

  68. }

  69. void ledtext::changeEvent(QEvent *e)
  70. {
  71. QWidget::changeEvent(e);
  72. switch (e->type()) {
  73. case QEvent::LanguageChange:
  74. ui->retranslateUi(this);
  75. break;
  76. default:
  77. break;
  78. }
  79. }
复制代码

main.cpp:
  1. #include <QtGui/QApplication>
  2. #include "ledtext.h"

  3. int main(int argc, char *argv[])
  4. {
  5. QApplication a(argc, argv);
  6. ledtext w;
  7. w.showFullScreen();
  8. return a.exec();
  9. }
复制代码

以上程序在X86环境下用X86版本的opencv库 编译运行都成功 可以正常显示图片。
用arm-linux 版的opencv库编译能成功 可是拷贝到板子上(板上已经复制了arm版的opencv库)
运行命令 ./ledtest  立即显示 Bus error 。
编译的opencv类库用的交叉编译器是一致的,我只有一个交叉编译器。
麻烦版主看看 谢谢!!

change-live 发表于 2012-1-12 00:08:51 | 显示全部楼层
顶顶顶!!!!
change-live 发表于 2012-1-12 09:32:00 | 显示全部楼层
斑竹们都放假了。。。。:'(
亚瑟王 发表于 2012-1-16 17:30:47 | 显示全部楼层
亲,去掉opencv相关的信息后,能够正常工作吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-9-28 07:23 , Processed in 1.029336 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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