需要的条件:
1.上位机编译好的可执行文件,以hello为例
在虚拟机的Ubuntu下,写好代码之后,定位到当前目录,执行命令
$ qmake -project //生成工程文件.pro
$ qmake //生成makefile
$ make //生成可执行文件hello
注意这些命令是在arm版的qt环境下的编译命令!执行qmake -v可查看其是否是arm版本,使用的是否是arm的库!执行file hello 可以查看hello是否是arm下运行的程序!
2.移植好QT库的开发板
刚开始学,只需要移植最基本的几个库就行了!触摸屏的、鼠标的、键盘的以后再说!分别是:libQtGui.so libQtCore.so libQtNetwork.so 以及fonts下的字库
为了防止错误,我一并把他们的相关链接文件so.4、 so.4.7、 so.4.7.2 都移植过去了!
移植方法你可以使用nfs !U盘!我用nfs速度太慢,非常不方便,索性用U盘拷过去了!因为这几个库小的不到1M,大的13M,U盘拷的还是很快的!比较让我费劲的是虚拟机不支持把链接文件拖拽到xp环境下!我只要在虚拟机里用邮件发到我的邮箱里,再在xp环境下把这些东西下下来,再通过U盘拷贝!曲折啊。。。我的虚拟机U盘不识别!
1)从哪儿移植呢?
从你虚拟机里编译安装arm版的QT库里面拷!..arm/lib下
2)移植过去放在哪儿呢?
最好是跟你在虚拟机里面的arm版QT所在目录一样,方便操作!看我的
分别在开发板下新建目录:home/fengchao/qtenv/arm/lib
home/fengchao/qtenv/arm/bin
home/fengchao/qtenv/arm/lib/fonts
把那些.so文件放到lib里面,把字库放到fonts里面!
3.最重要的一步,设置环境变量!
在开发板的根目录下执行:
$ vi /etc/profile
然后输入
export QTDIR=/home/fengchao/qtenv/arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
保存退出! ok !
vi使用:打开文件之后,输入i,进入编辑模式,再按ESC退出编辑模式进入命令模式,输入:键入命令wq即保存退出,q退出
4.然后把你编译好的hello这个可执行文件放到你的开发板上,随便哪儿吧
然后执行
./hello -qws
然后你就可以看见开发板上有显示了!但是可能文字较小,如果有中文可能还是乱码,没事,咱一步步往下来。。。
5.错误分析
1)提示没有链接到字库
QFontDatabase: Cannot find font directory /home/fengchao/qtenv/arm/lib/fonts - is Qt installed correctly?
这个就是你没装好字库,好好检查一下,修改过来!
2)提示没有QtGui.so no such file of directory
也是因为你没有移植好这个库或者跟他链接的文件,再或者环境变量有误!
要在开发板上移植电子地图和导航软件,实现GPS定位,应该怎么做呢
你加了GPS模块吗?是什么产品上的呢?我们就是做GPS模块,GPS模组的,一般都加了就可以有数据出来了/
如何把uCOS-II移植到NXP LPC1769开发板上! 需要什么软件或者工具! 请出步骤或者教程!
需要j_link下载器 软件需要 IAR for arm 工具 网上有力天电子的教程 你可以参考下
我用的是LPCXpresso v3.6.3编译环境,uCOS-II是不是要用软件编译过后才能下载到开发板上?那是不是用LPCXpresso v3.6.3来编译呢?因为我平常编译工程都是用LPCXpresso v3.6.3!
谢谢你的回答!
如何将qt creator写的程序移植到arm9开发板
先交叉编译 在把库考进去!然后再把交叉编译后的可执行文件移到arm9
将cups如何移植到开发板?以及如何添加打印机,望高手回答。
1、首先检查一下打印机当前是否已经被设置为“暂停打印”,如果是的话,无论怎样向打印机发送打印命令,打印机肯定不会接受打印命令的,要想让打印机能接受用户的响应的话,可以取消“暂停打印”这个设置;在取消这个设置时,大家可以先打开打印机操作窗口,然后用鼠标右键单击当前系统中安装的打印机的程序图标,从弹出的快捷菜单中,大家就可以看到“暂停打印”命令项前面有一个勾号,只要再用鼠标单击一下该命令选项,就能取消“暂停打印”这个设置了。
2、检查一下与电脑连接的打印机是否已经被设置为默认的打印机,由于在许多Windows程序中,单击“打印”命令时,程序会将当前打开的页面内容传送到默认的打印机上,要是大家使用的打印机事先没有被设置为默认打印机的话,那么打印内容就无法传送到当前安装的打印机上,文档自然也就无法打印了。
此时,大家可以先打开打印机操作窗口,并用鼠标右键单击对应的打印机图标,从随后弹出的快捷菜单中选择“设为默认值”命令,就可以将打印机设置为所有Windows程序使用的默认打印机了。
3、检查打印机是否已经处于联机状态,如果打印机还没有联机的话,打印机自然是无法工作的。要让打印机处于联机状态的话,必须确保打印机的电源已经接通,打印机的电源开关必须打开,打印机的纸张必须正确放置好,打印机中的墨粉、墨盒或者色带必须有效,以及确保当前打印机没有出现卡纸现象。
当然看一个打印机是否已经联机的最直接的方法,就是看一下打印机控制面板上的“Online”指示灯是否亮着。
4、检查一下当前程序到底要使用打印机的哪个端口,检查时可以在Windows系统桌面上,先依次单击“开始”/“设置”/“控制面板”/“打印机”,然后在打开的打印机窗口中,找到对应的打印机图标,并用鼠标右键单击它,然后选择快捷菜单中的“属性”命令,在弹出的打印机属性对话框中,单击“详细资料”标签,在该标签页面下的“打印到以下端口”设置项中,检查打印机是否已经被设置到适当的打印端口。
通常打印机的端口设置为“Lpt1:打印机端口”,有些特殊类型的打印机可能需要使用特殊的打印端口,此时大家一定要检查对应打印机的使用手册,根据手册中的使用要求,来给打印机设置合适的打印端口。
5、确保应用程序在输出打印内容时要正确,不然应用程序输出出现问题时,就会导致输出内容无法打印。在检查应用程序输出到底是否正确时,可以采用通过其他程序打印文档的方法来进行验证,最简单的方法就是通过“记事本”程序来打印测试文档,测试时可以按照如下步骤来进行操作:
首先打开记事本程序窗口,在窗口中打开已经存在的任意一个文本文件或者自行在程序窗口输入几行测试内容,然后单击该程序菜单栏中的“打印”命令,如果打印机能正常工作,那么用户原来使用的应用程序肯定在输出时有问题,大家可以试着重新安装一下该使用程序。
6、试着重新启动打印机。如果与打印机相连的电脑配置比较低,那么在某个时刻向打印机发送的打印内容很多的话,打印机中的内存或者电脑中的内存就会来不及处理这些众多的打印任务,此时打印机表现出来的现象就是对任何打印任务都不响应。如果大家能够重新启动一下打印机或者电脑的话,那么堵塞在打印机内存中的打印任务就会被清除,说不定打印机遇到的其他打印故障在打印机重新启动后都有可能消失。
7、检查一下打印机是否已经进行了超时设置,一旦设置的话,打印机在接受到打印命令后,不会直接将输出内容打印出来,而是在指定的时间才能进入联机状态,进行打印动作。检查超时设置时,大家只要按照上面的操作方法,打开打印机属性窗口,然后单击该窗口中的“详细资料”标签,在这个标签页面下,大家可以增加各项“超时设置”值,当然“超时设置”值是不能用于网络打印中的。
8、进行了上面的检查和验证后,如果打印机还没有任何反应的话,大家要试着重新安装打印机驱动程序,因为打印机驱动程序一旦损坏,就可能出现文档无法打印的现象。
在重新安装打印机驱动程序时,首先在打印机窗口中,单击打印机的图标,从弹出的快捷菜单中,选择删除命令,当系统提示是否要“删除这台打印机的专用文件”时,大家可以直接单击确定按钮;然后再在打印机窗口中,用鼠标双击“添加打印机”图标,并按照打印机的添加向导对话框的提示,来完成打印机驱动程序的重新安装工作。要是在打印机驱动程序安装后,打印机能够正常工作的话,就说明打印机无法响应的故障是由打印机驱动程序引起的。
还有疑问可以我,我会在第一时间给你回复,有帮助请帮忙采纳,祝您生活愉快~
找到原因了,编译出来的是intel的,但是编译的时候指定了arch cross_compile 和host了,怎么出来的还是intel的,不是arm架构的。望给一个详细的编译步骤,谢谢。
如何移植taglib库到开发板
数据先转换好。
开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学习系统的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原理图等。常见的开发板有51、ARM、FPGA、DSP开发板。
嵌入式怎么移植webserver到开发板
其实也就是构建个WebServer服务器,只不过这里是以boa+cgic来实现的。
移植boa软件
linux系统中开发板上Qt移植步骤
一、准备
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
构建一个新的根文件系统目录,路径为
/root/rootfs
二、具体步骤:
1、编译安装busybox
在官网下载最新版。可以参考如下几处要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
输入如下命令,编译并安装。
# make;make install
2、编译安装tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。
注意:在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
# ln -s ../../usr/include ./
3、编译安装QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录
2)、编译
# make
# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录
4、根文件系统的设置
1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉module_raw input前的注释
# mv etc ../ 移动到rootfs的根目录
2)、进行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、编辑etc/profile,添加以下内容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。
转载请注明出处51数据库 » 如何移植软件到开发板 QT程序怎么移植到开发板并运行