开发板:达芬奇6446芯片组(ARM9 + C64x)

主机系统:ubuntu 9.04

主机编译器:gcc 版本 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

交叉编译器:arm_v5t_le-gcc(MontaVista提供)

参考文档:

QtEmbeded移植到达芬奇6441平台

文章出处:陈伯林的电子备忘录

移植前准备:

移植Qt4图形开发库前,首先应获取Qt4对应嵌入式开发的最新源代码。Qt4最新源代码可以在它的官方网站上获得,下载地址为:http://www.qtsoftware.com/downloads。我下载的是qt-everywhere-opensource-src-4.5.2的源码包。

下载tslib源码包https://github.com/kergoth/tslib,我下载的是1.4版本。tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。使用tslib可以为Qt4开发的程序提供准备的触摸屏数据,利于程序触摸的定位。

解压源码包:

在/home目录下新建qtembedded文件夹(根据自己喜好,可随意设置)。然后把上面下载的tslib-1.4和qt-everywhere-opensource-src-4.5.2放到qtembedded下解压。

#tar xvzf qt-everywhere-opensource-src-4.5.2.tar.gz

#tar xvzf tslib-1.4.gz

分别生成对应名称的目录

配置编译安装tslib

进入到tslib文件夹里面,如下步骤配置编译安装:

#./autogen.sh (生成configure)

如果你就一个交差编译工具链在环境变量中,可以这样编译:

#./configure --prefix=/usr/local/tslib/(存放最终编译的文件,自行设置) --host=arm-linux ac_cv_func_malloc_0_nonnull=yes

如果有多个交差编译工具链的话,建议如下方法:

#CC=arm_v5t_le-gcc CXX=arm_v5t_le-g++(先指明工具链) ./configure --host=arm-linux --prefix=/usr/local/tslib/ ac_cv_func_malloc_0_nonnull=yes

#make #make install 安装成功后,tslib会安装在tslib目录中,如果想指定安装目录,在prefix参数后修改安装目录即可。

配置编译Qtembedded

进入到qt-everywhere-opensource-src-4.5.2目录,首先也是最重要的一点,进入到mkspecs/qws/linux-arm-g++/目录,打开命名为qmake.conf的文件,在里面配置交叉工具链的选择,将所有的arm-linux-改为arm_v5t_le-就可以指定成达芬奇平台的交叉工具链。然后进行如下配置:

./configure --prefix=/usr/local/qt_for_arm(存放最终编译的文件,自行设置) -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools-optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -confirm-license -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib(生成的tslib的路径)

具体参数的含义可通过./configure --help来参看。

编译Qtembedded

配置完毕后,就可以编译Qte4,按照如下步骤:
#make
编译时间长短视编译机器的性能和配置参数决定,但编译完成后,就可以得到需要的Qte4库文件。

移植Qtembedded

编译完成后,为了便于日后的开发,应该在PC上安装Qte4,这样就获得了Qte4的qmake工具和相
关文档。安装命令如下:
#make install
开发板上要运行Qt4的程序,就应该有相对应的库文件,移植的过程就是把已经交叉编译好的库文件移至到开发板上。开发板可以使用NFS共享根文件系统启动,因此,可以先将库文件拷贝到共享的根文件系统下进行测试。当测试完成后,再将库文件拷贝到开发板上。

移植库文件:

按照步骤,首先把Qte4的库文件拷贝到NFS启动的根文件系统,其步骤如下:
#cp –f lib/ rootfs/usr/local/qt_for_arm
之所以放入该目录中,是因为这是Qte的默认安装目录,这样可以避免因为路径的不同而产生不必要的问题。

设置环境变量:

将根文件拷贝到指定位置后,为了使系统能在运行时获取Qte4库文件位置,应该设置系统的环境变量,配置的环境变量如下:
export QTEDIR=/usr/local/qt_for_arm
export PATH=/usr/local/qt_for_arm/bin:$PATH
export QWS_DISPLAY=LinuxFb:/dev/fb/0
export QWS_DISPLAY=”LinuxFb:mmWidth720:mmHeight272:0″
export QWS_SIZE=720×272
export LD_LIBRARY_PATH=/usr/local/qt_for_arm/lib:$LD_LIBRARY_PATH
第一个参数指定了Qte所在的目录,第二个参数是将Qte所在目录导入环境变量,第三个及第四个参数指定了Qte的绘制设备,第五个参数是将Qte的库文件目录导入环境变量。

可能出现的错误:

移植过程中,由于硬件体系,系统环境的差异,可能会出现错误,因此,要对这些错误逐一分析检查,并解决。 问题一:Root-NFS: Unable to get nfsd port number from server, using default
问题原因:这种情况通常是nfs配置问题,或者是网线
解决方案:看看网线接好没,配置是否正确
问题二:tslib测试程序不可执行
问题原因:查看连接关系后,发现目标平台式为x86
解决办法:原因是交叉编译工具命名规范与普通的不一样,在编译前导入至编译终端即可。
问题三:./findfiles: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
问题原因:开发板上库文件与PC上交叉编译开发环境库文件不一致
解决方案:该文件在/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/target/usr/lib/目录下,拷贝到开发板/usr/lib目录下即可。
问题四:QScreenLinuxFb::connect: No such file or directory
Error opening framebuffer device /dev/fb0
: driver cannot connect
Aborted
问题原因:程序默认的帧缓存设备为/dev/fb0,而实际上设备为/dev/fb/0,所以出错显示打不开该设备
解决方案:ln -s /dev/fb/0 /dev/fb0,建立链接,使fb0指向/dev/fb/0后,程序即可顺利运行
具体的问题还是需要根据自己的开发环境来分析解决。

问题四:

./wtf/MathExtras.h:186: error:`std::isfinite' has not been declared
./wtf/MathExtras.h:187: error: `
std::isinf' has not been declared
./wtf/MathExtras.h:188: error: `std::isnan'
has not been declared ./wtf/MathExtras.h:189: error:`std::signbit' has not been declared

问题原因:有可能是交叉编译工具版本太低了而没有定义以上的宏,最好的办法是自己制作一个新的交叉编译工具链,具体请参考《DM644x达芬奇平台交叉编译工具链的制作》。还有一种方法是把JavaScriptCore的文件替换一下,在qt-everywhere-opensource-src-4.7.0文件夹下使用一下命令:(注意cp前面带‘\’要不然会一直提示是否覆盖文件)

\cp -r src/3rdparty/javascriptcore/JavaScriptCore/* src/3rdparty/webkit/JavaScriptCore/

QtEmbeded移植到达芬奇6441平台相关推荐

  1. 析达芬奇DM644x平台ARM中断处理流程

    转载 1.arm硬件中断向量表建立及中断响应都在linux/arch/arm/kernel/entry-armv.S中,故从该文件 开始分析. linux/arch/arm/kernel/entry- ...

  2. 基于MATLAB开发AUTOSAR软件应用层模块-part4.将MATLAB生成的ARXML文件导入到达芬奇Developer

    上篇我们介绍了模型生成的ARXML文件,这篇我们介绍如何将生成的ARXML文件导入到Developer中. 首先打开Developer的软件,如下图: 这是developer的主界面,我已经加载了一个 ...

  3. 达芬奇SP型机器人二度获准FDA,可用于特定耳鼻喉手术...

    雷锋网消息 近日,美国医疗机器人公司Intuitive Surgical(ISRG)宣布,该公司达芬奇SP (Da Vinci SP)型手术机器人已获得FDA批准,可用于经口耳鼻喉科手术中的口咽侧切除 ...

  4. 达芬奇官方的高配LINUX工作站指导,独家达芬奇调色工作站选购指南.doc

    独家达芬奇调色工作站选购指南 独家分享达芬奇调色工作站选购指南[实战篇] DaVinci Resolve是业内最著名的电影调色软件,好莱坞很多获奖大片都选用DaVinci Resolve调色系统,而在 ...

  5. TI DaVinci(达芬奇)入门

    (转载来自 德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又 ...

  6. 达芬奇SP型机器人二度获准FDA,可用于特定耳鼻喉手术

    雷锋网消息 近日,美国医疗机器人公司Intuitive Surgical(ISRG)宣布,该公司达芬奇SP (Da Vinci SP)型手术机器人已获得FDA批准,可用于经口耳鼻喉科手术中的口咽侧切除 ...

  7. 【转】TI达芬奇(DaVinci)技术

    什么是达芬奇技术? 关于达芬奇技术,TI的官方网站上有详细介绍.达芬奇技术,不仅仅是DSP+ARM双核架构的SOC芯片,它还包括一整套的软件开发包.我认为,后者才是该技术的核心.因为DSP+ARM的处 ...

  8. e3 1231 v3 达芬奇_Premiere和达芬奇调色,都是最新版

    Pr更新到最新版 在达芬奇调色软件DaVinci Resolve Studio 更新到16版本后,Adobe 终于不再挤牙膏,频繁更新.从2020下半年开始,推出了支持硬件加速(Nvdia和AMD显卡 ...

  9. 为什么达芬奇能“艺工结合”,要从“T型设计”说起

    很高兴在律老师的课上能够观看有关达芬奇的纪录片.达芬奇是我的偶像之一,我曾经阅读过沃尔特·艾萨克森写的<达芬奇传>.读完之后,我领悟到了一个观点:不同于牛顿和爱因斯坦这样的被普通人顶礼膜拜 ...

最新文章

  1. 鼠标同步桌面_[问题处理]XenCenter控制台操作通过MCS发布的虚拟机鼠标不同步
  2. 李爽久:平安云如何解决金融同业互联专线痛点
  3. linux连接svn上代码,代码管理平台介绍、安装svn、客户端上使用svn(linux)、客户端上使用svn(windows)...
  4. editplus怎么在前后插入字符
  5. 大家好 我是新来的
  6. 在php中插入图片,php中怎么插入图片
  7. php本科毕设,基于php的新闻发布系统1本科毕设论文
  8. %3c大自然的语言%3e竺可桢题目,大自然的语言竺可桢阅读答案
  9. Java医院管理系统完整代码_医院管理系统(JAVA代码)
  10. 【数据库系统】、【数据库】与【数据库管理系统】的区别
  11. 西瓜微数独家解析: 干货管饱|帮你省XXX万广告费的KOL投放指南
  12. ArcGIS Pro硬件要求
  13. 开拓者终变落荒者,火箭大胜进第二轮
  14. arcgis 字段计算器 条件赋值_ARCGIS中字段计算器的使用说明
  15. 给代码写注释时有哪些讲究?
  16. PID算法详解(2)---PID参数整定
  17. IntelliJ IDEA for Mac 2018.1.2 智能Java IDE开发工具 破解版下载
  18. 开关电源-TL431与光耦组成的电压反馈电路-TL431工作过程分析
  19. JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC
  20. 小码农也有大梦想!Java程序培训哪里好

热门文章

  1. 安川西格玛7驱动器手册_安川SGD7W-7R6A20A安装指南手册伺服驱动器手册 - 广州凌控...
  2. 汇编语言复习题及详细答案2
  3. 圣诞树有手就行的c语言代码
  4. Fedora14 Samba 配置
  5. MATLAB蚁群算法、遗传算法、粒子群算法解决TSP问题(可以直接运行)
  6. CS224n自然语言处理(一)——词向量和句法分析
  7. 计算机毕设(附源码)JAVA-SSM教务排课管理系统
  8. 乐山计算机学校校歌匠心花开,乐计校园锻造四品三能,能工巧匠闪耀省赛舞台...
  9. Jmeter中Python中文乱码
  10. SER 语音情感识别-论文笔记1