首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 移植qtopia到ARM开发板
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
移植qtopia到ARM开发板
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2014-6-7 10:16
|
只看该作者
移植qtopia到ARM开发板
linux
,
开发
,
而且
,
软件
,
硬件
前言:
说实话,以前只作过51,而且用的是汇编,C都没有怎么用过。最近才有机会接触到linux,说起来也算是落后分子了。多亏北理论坛里各位大侠的帮忙,还算顺利的把qtopia移植到了ARM开发板上。现整理了下文,抛砖引玉,希望能对大家有所帮助,当然也希望大家多提宝贵意见,mail to
ahha1998@126.com
即可。当然更希望大家的经验也能告诉我
一、所用的资源
:
硬件:华恒HHARM9328MXL-R1
软件:cross-2.95.3.tar.bz2
qt-embedded-2.3.10.tar.gz
qt-x11-2.3.2.tar.gz
qt-x11-3.3.4.tar.gz
qtopia-free-2.1.1.tar.gz
tmake-1.11.tar.gz
jpegsrc.v6b.tar.gz
e2fsprogs-1.35.tar.gz
zlib-1.2.3.tar.gz (这个是不是需要交叉编译,不太肯定,反正我是交叉编译了一下)
软件从网上下载,如果不知道从什么地方下载,google就是了。板子2006-02-13才从同事手中拿到(当时并没有注意这块开发板上没有时钟系统,移植到板子上后才注意到这个问题。),不过好在以前在论坛里看了不少如何在x86下编译qte、qtopia的文档,并且也在linux下也折腾了一两个月。建议没有作过x86下编译qtopia的也先从x86入手熟悉熟悉操作过程,我后面的过程里有些用到了x86环境下编译的文件,我就不再详细说明了。好了,废话少说,我们开始吧!
二、约定
:
假设上述的软件你都已经安装到了/arm-target目录下,目录名分别为qte qtopia tmake jpeg e2fs zlib,还有一些用到的目录需要自己建立,我就不一一说明了,大家从下文中应该能够看出来。
三、交叉编译过程
1、交叉编译工具的安装
直接解压到/usr/local/arm目录下,
并且export PATH=/usr/local/arm/2.95.3/bin
PATH
2、编译qte和qtopia需要的准备工作
export QTDIR=/arm-target/qte
export QPEDIR=/arm-target/qtopia
export LD_LIBRARY_PATH=$QTDIR/lib
QPEDIR/lib
LD_LIBRARY_PATH
export TMAKEDIR=/arm-target/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
cp /arm-target/qtopia/src/qt/qconfig-qpe.h /arm-target/qte/src/tools
cd $QPEDIR/src/libraries/qtopia
cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h
3、交叉编译e2fs-prog,得到libuuid库
./configure --host=arm-linux --enable-elf-shlibs --with-cc=arm-linux-cc --with-linker=arm-linux-ld –prefix=/usr/local/arm/2.95.3/arm-linux
make
make install
(提示好像有一些问题,没有ext2fs目录。。,不过能够执行完毕,且生成了libuuid.so*)
4、交叉编译jpegsrc,得到libjpeg
./configure --enable-shared
make 得到libtools程序,然后再
./configure --enable-shared
修改生成的Makefile文件:
prefix = /arm-target/qte
CC= /usr/local/arm/2.95.3/bin/arm-linux-gcc
AR= /usr/local/arm/2.95.3/bin/arm-linux-ar rc
AR2= /usr/local/arm/2.95.3/bin/arm-linux-ranlib
cp jconfig.doc jconfig.h
mkdir -p /arm-targetqte/man/man1
make
并没有完成提示出错,不过libjpeg.so确实生成了,到现在还没有弄明白为什么。。。
向下面的目录中也拷贝一份libjpeg.so
/usr/local/arm/2.95.3/arm-linux/lib
5、交叉编译qte (需要触摸屏支持的话参照第8条)
./configure -qconfig qpe -system-jpeg -no-xft -gif -qvfb -depths 4,8,12,16 –xplatform linux-arm-g++
make
6、交叉编译qtopia
首先在/usr/local/arm/2.95.3/arm-linux/sys-include/linux/videodev.h 文件中把#include<linux/version.h>一行屏蔽,否则会报错
另外还需要用到uic程序,用qt-x11-2.3.2在x86环境下编译生成的即可。
./configure -edition pda -prefix=/arm-target/board-target -no-qtopiadesktop -xplatform linux-arm-g++
make
make install 即可在/arm-target/board-target目录下生成
7、运行qtopia
方法一:通过nfs方式
启动后mount -o nolock 192.168.123.116:/ /mnt
cd /mnt/arm-target/board-target
export QTDIR=$PWD
export QPEDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib
LD_LIBRARY_PATH
cd bin
./qpe 即可在HHARM9328-MXL的LCD显示器上看到qtopia的启动界面
方法二:把qtopia烧写到flash中运行。(具体的方法开发板的手册中有,要做的只是把/arm-target/board-target目录里的内容按自己的需求裁减一番。)
由于华恒的开发板的文件系统cramfs,但qtopia运行时需要操作/Settings目录,所以在/etc/init.d/rcS最后添加一行 mount –t tmpfs tmpfs /Settings
不明白的事:想启动后自动执行qtopia,但是在/usr/etc/rc.local中添加
export QPEDIR=/qtopia
cd /qtopia/bin
./qpe
但是 linux启动后查看环境变量,发现export 一句并没有起作用。那位大侠如果知道该如何做,欢迎email告诉我
ahha1998@126.com
,谢了先!
8、关于触摸屏
简单说几句,由于华恒开发板已经提供了触摸屏的驱动digi.o,所以我们要做的只是交叉编译qte的时候加入触摸屏的支持就可以了!
在qconfig-qpe.h文件添加定义QT_QWS_IPAQ
在qwsmouse_qws.cpp 查找h3600替换为digi
然后重新编译qte就可以了
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议