在HI3531上移植和运行QT4.8.6
Qt4.8.3移植总结
Qt4.8.3移植总结目录•0.编译环境• 1.安装tslib• 2.安装Qt4.8.3• 2.1.安装Linux/X11版Qt• 2.2.安装embedded版Qt• 3.安装Qt Creator• 4.Hello Qt最近买了块天嵌的TQ210,对最新的Qt4.8.3进行了移植,现在做个总结,方便以后查看。
Qt是一个跨平台的C++应用程序开发框架,广泛用于开发GUI程序。
使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。
会自动依平台的不同,表现平台特有的图形界面风格。
Qt在嵌入式开发中有着广泛的应用,使用Qt只需编写一次应用程序和UI,无须重新编写源代码,便可跨不同的桌面和嵌入式操作系统进行部署,既节省了时间又降低开发成本。
0.编译环境操作系统:Debian wheezy 32位gcc版本: 4.7.1arm-linux-gcc:4.4.6 (for TQ210 EmbedSky Tech)开发板:TQ210(天嵌)液晶屏:7寸(800×480)1.安装tslib为什么要装tslib?主要是为了校准触摸屏以及去抖等功能,为了能更好的使用触摸屏还是装吧。
下载地址:/projects/tslib.berlios/files/网上说的tslib1.4其实就是tslib1.0.4,怎么就变成1.4了,汗。
这个工具比较小,配置一下后直接编译就行了。
1.tar -xvjf tslib-1.0.tar.bz22.cd tslib-1.03../autogen.sh4../configure --prefix=/opt/tslib-1.0 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes5.make6.make installprefix后面是安装目录,自己随便定义,装好后修改/opt/tslib-1.0/etc/ts.conf,去掉module_raw input 前面的#号,然后把/opt/tslib-1.0里的文件都拷入开发板,比如我放在了/usr/local里。
Qt4.5.1触摸屏+tslib1.4移植全记录
Qt4.5.1触摸屏+tslib1.4移植全记录Qt4.5.1触摸屏+sqlite3 移植全记录主机系统:Debian 5.0主机编译器:gcc/g++为4.1.3交叉编译器:arm-linux-gcc/g++3.4.5-glibc-2.3.6软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gzqt-x11-opensource-src-4.5.1.tar.gztslib-1.4.tar.gz目标板:博创UP-TECH S24101. 安装X11的相关库文件和开发包在编译时会生成一些在主机上运行的工具,要用到X11的一些头文件、库,所以需要安装X11开发包。
#sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev#sudo mkdir -p /usr/X11R6/include#sudo cp -rf /usr/include/X11 /usr/X11R6/include(参考韦东山《嵌入式Linux应用开发完全手册》)2.安装交叉编译器arm-linux-gcc-3.4.5(1) 新建安装目录:#mkdir /usr/local/arm(2) 解压arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2复制在目录/usr/local/arm下,在终端中进行如下操作:#cd /usr/local/arm#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2等待解压完成。
(3) 导入环境变量export PATH=$PATH:/usr/local/arm/3.4.5/bin或者:编辑一个导入环境变量的脚本(方便以后使用):#vi ArmEnv1 #!/bin/sh2 export PATH=$PATH:/usr/local/arm/3.4.5/bin#chmod +x ArmEnv //增加可执行权限#arm-linux-gcc -v这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/3.4.5/bin:$PATH”(不推荐这种方式)。
opencv2.4.9在Hi3531开发板上移植
opencv2.4.9下载不用说了。
Ubuntu12.04虚拟机安装的+arm-hisiv200-linux交叉编译器+cmake-gui(2.8.7)参考:/luotuo44/article/details/8958990/s/blog_92942dba0101d1wj.html一、建立编译环境配置进入opencv-2.4.9目录建立release-hisiv200目录存放编译过程中文件。
#cd opencv-2.4.9#mkdir release-hisiv200#cd release-hisiv200打开cmake-gui,进行博客中的配置:#cmake-gui在configure时选择CMAKE_SYSTEM_NAME:arm-hisiv200-linuxC:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gccC++:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-g++ 修改安装目录:CMAKE_INSTALL_PREFIX:/opt/2.4.9-arm-hisiv200进行编译:make二、出现问题:1、/usr/lib/libImath.so: could not read symbols: File in wrong formatcollect2: ld returned 1 exit statusmake[2]: *** [lib/libopencv_highgui.so] 错误1make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误2make: *** [all] 错误2主要opencv编译OPENEXR时要用到libImath.so,所有我就把那个取消了,然后编译就没出现过这个问题。
基于Hi3531和Qt的NVR人机交互系统的设计与实现
参 考 文 献
系统GUI 采用Q t / E mb e d d e d 设计实 现 , NV R系 统所有功能都
基于其进行呈 现。 根据主流视频监控 系统 , N V R 需涵盖多种监控业 学, 2 0 1 2. 务, 主要包括视频预览、 系统管理 、 录像 回放 、 远程管理及其他功 能,
设计 开 发
品的高质量 图像体验 。 Hi 3 5 3 1 高度集成和丰富的外 围接 口, 在满足 同时, 该部 分 还需 实 现 图像 抓拍 、 手 动录 像 、 OSD( On— 客户差异化产品功能、 性能、 图像质量要 求的同时 , 可大大 降f  ̄ e b o m S c r e e n D i s p h y, 屏幕 菜单式调节方式 ) 设置 、 P TZ 控制( P a n/T i l t /
3设计 与 实 现
3 . 1 Hi 3 5 3 1 图形界 面开发
・
视频数据具有较高要求时 , 还需对硬盘设定R AI D 0 、 RA I D5 等磁盘 阵列 , 提高数据 的安 全保 障。
( 4 ) 远程管理 。 远程管理主要在O NVI F 框架 内实现 , 对前端I P C 海 思数字媒体处理平 台提 供Hi s i l i c o n F r a me b u f e r ( Hi F B) 支 进行管理配置 , 主要实现设备搜索 、 编辑管理 , 网络 、 图像 、 摄像机等 持 图形界 面 的开 发 。 Hi FB用 于管 理 叠加 图形 层 , 它在Li 1 2 ux 参数配置 , I P C 用户管理 , 远程 日志管理 , 以及报警联动管理 等功能。 F r a me b u f e r 的基础上增加层 间c o l o r k e y 、 A l p h a等扩展功 能。 HWB 最 多 可 以管 理 7 个 叠 加 图形 层 : / d e v / f b O / d e v / f b 6 。 Hi 3 5 3 1 芯 片 支 4结语
QT4编程及移植详细教程
QT4编程及移植(系统移植之3)一、搭建Qt-creator环境QT开发工具被诺基亚收购后,由诺基亚对齐进行维护和技术支持。
目前诺基亚已经开发出一套界面整洁功能强大的QT IDE开发环境——QT-creator。
由于大多数人仍习惯Windows系统下的软件开发和设计,一下将以QT-creator Windows版本环境作为介绍(当然IDE也有Linux版本)。
1.1下载并安装QT-creator从网上下载qt-sdk-win-opensource-2010.02.1.exe文件,并在Windows下将其安装好。
1.2新建工程打开Qt Creator,点击File->new file or project,弹出以下窗口:点击Qt4 Gui Application->OK,弹出以下窗口:输入工程名、选择保存路径,点击Next,弹出以下窗口:这里是选择第三方库的支持,我们这个工程不需要这些,直接点击Next,弹出以下窗口:在Base class中选择QWidget,表示窗口部件以QWidget为基类,然后点击Next,弹出以下窗口:然后点击Finish完成工程创建,创建好的工程如下:双击打开main.cpp,编写代码如下:#include <QtGui/QApplication>#include <QHBoxLayout>#include <QSlider>#include <QSpinBox>#include "widget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);//管理整个应用程序用到的资源QWidget *window = new QWidget;//创建一个QWidget,父窗口部件是QWidget window->setWindowTitle("Enter Your Age");//设置QWidget的标题QSpinBox *spinBox = new QSpinBox;//创建QSpinBoxQSlider *slider = new QSlider(Qt::Horizontal);//创建QSliderspinBox->setRange(0,130);slider->setRange(0,130);//以下两句关联信号和槽QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));//以下两句使同步显示QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));spinBox->setValue(35);//初始化//以下做布局处理QHBoxLayout *layout = new QHBoxLayout;//水平排列,从左到右layout->addWidget(spinBox);layout->addWidget(slider);window->setLayout(layout);//在窗口上安装布局管理器window->show();//让窗口显示return a.exec();//将应用程序的控制权传递给QT}点击Qt Creator左下角的运行按钮(即第一个绿色三角形):显示效果如下:到这里已经完成了一个QT工程。
qt-4.8.4安装和环境变量配置
qt-4.8.4安装和环境变量配置在Linux中分别安装应⽤于不同平台的Qt:PC。
嵌⼊式X86;ARM。
这三者PC版、嵌⼊式X86版和ARM版的差别主要体如今:当configure时分别加了不同的參数,详细差别是:PC平台(X11平台):在linux中全安装qt。
⽤它编译好程序后,直接⽤“./”就可执⾏。
嵌⼊式X86平台:带有qvfb功能,在PC机上能够模拟应⽤程序在arm开发板上的执⾏情况。
⽤此编译好的程序,仅仅⽤“./”命令不能够执⾏,必须加上參数 [ -qvfb ]–qwsPs:嵌⼊式X86平台,这个是PC下的⼀个qtopia。
他⾃带有个模拟器。
能够模拟出arm开发板的样⼦出来。
⽅便调试;ARM平台:编译好的程序。
⽤于在arm平台上执⾏。
Ps:ARM平台。
这个主要是⽤来编译,由于要下载到开发板上。
须要arm版的qte的库⽂件,编译后直接下载到开发板执⾏; Ps:编译x86是为了得到makeqpf。
编译pc是为了得到qvfbA. 安装PC平台的QT1) 配置:执⾏./configure -prefix /usr/local/qt-4.8.4-x112) 编译:make (时间⽐較长)3) 安装:make install (因为在配置时指定了安装⽂件夹,这样将被安装到⽂件夹下/usr/local/qt-4.8.4-x11)B. 安装ARM平台的QT/E1)配置:进⼊cd qt-4.8.4-arm,然后执⾏./configure \-opensource \-confirm-license \-release -shared \-embedded arm \-xplatform qws/linux-arm-g++ \-depths 4,8,16,32 \-fast \-optimized-qmake \-pch \-qt-sql-sqlite \-qt-libjpeg \-qt-zlib \-qt-libpng \-qt-freetype \-little-endian -host-little-endian \-no-qt3support \-no-libtiff -no-libmng \-no-opengl \-no-mmx -no-sse -no-sse2 \-no-3dnow \-no-openssl \-no-webkit \-no-qvfb \-no-phonon \-no-nis \-no-opengl \-no-cups \-no-glib \-no-xcursor -no-xfixes -no-xrandr -no-xrender \-no-separate-debug-info \-nomake examples -nomake tools -nomake docs \-qt-mouse-tslib \-I/usr/local/tslib/include \-L/usr/local/tslib/lib2) 编译:make (时间⽐較长)3) 安装:make install环境变量配置:#!/bin/shexport TSLIB_ROOT=/usr/local/tslibexport TSLIB_TSDEVICE=/dev/input/event0export TSLIB_TSEVENTTYPE=H3600export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.confexport TSLIB_PLUGINDIR=/usr/local/tslib/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export QTDIR=/opt/qt-4.8.4/export QT_QWS_FONTDIR=/opt/qt-4.8.4/lib/fontsexport LD_LIBRARY_PATH=$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/binexport QWS_DISPLAY="LinuxFb:mmWidth152:mmHeight88:1"。
Hi3531/Hi3532 U-boot 移植应用 开发指南
文档版本 00B10 (2012-05-15)
海思专有和保密信息 版权所有 © 深圳市海思半导体有限公司
v
Hi3531/Hi3532 U-boot 移植应用 开发指南
插图目录
插图目录
图 4-1 RealView Debugger 窗口 ........................................................................................................................... 9 图 4-2 Connetct to Target 窗口 ............................................................................................................................ 10 图 4-3 Choose RealView-ICE .............................................................................................................................. 11 图 4-4 RealView Debugger 信息提示框 ............................................................................................................. 12 图 4-5 RealView Debugger 信息提示框 2 .......................................................................................................... 13 图 4-6 Connect to A9 ........................................................................................................................................... 14
OpenCV安装与移植
OpenCV的Ubuntu安装和Smart210_ARM开发板移植软硬件环境:宿主机:Ubuntu 10.04 32bit开发板:友善之臂Smart210OpenCV:2.4.10其他:cmake version 2.8.0arm-linux-g++ 4.5.1 / arm-linux-gcc 4.5.1查看Ubuntu版本号的指令为:sudo lsb_release –a,效果如下图1:图1:查看ubuntu的版本号1.Opencv2.4.10在Ubuntu上安装●首先安装必要的软件库安装GCC:sudo apt-get install build-essential安装Cmake:sudo apt-get install cmake安装Git(可选):sudo apt-get install git安装GTK开发版:sudo apt-get install libgtk2.0-dev安装pkg-config:sudo apt-get install pkg-config安装Python:sudo apt-get install python3.2-dev安装Numpy:sudo apt-get install python-numpy安装媒体包:sudo apt-get install ffmpeg安装可选媒体包:sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev●在OpenCV官网下载源码包:/●在/home/brodon/Documents文件夹下解压缩后,命令行输入cmake-gui,配置opencv的x86版本。
具体的操作见图2,注意在安装中,放弃了ffmpeg,OpenGL 库的支持。
cmake完成后进入opencv-x86文件夹,输入make 和make install安装。
Keil3(ADS)到Keil4移植说明
Keil3(ADS)到Keil4(MDK)移植总结1.在启动文件startup.s中CODE32下面添加语句:PRESERVE8同样在IRQ.s文件中CODE32下面添加语句:PRESERVE8原因:PRESERVE8 指令指定当前文件保持堆栈八字节对齐。
报错:Error: L6238E: startup.o(vectors) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte dataobjects)' function to 'REQ8 (Code was permitted to depend on the8-byte aligment of 8-byte data items)' function FIQ_Exception.2.在option属性中Asm选项卡中去掉Enable ARM/Thumb Interworking选项。
报错:若不去掉该选项,在编译时会出现警告:warning: A1608W: MOV pc,<rn> instruction used, but BX <rn> is preferred。
或者不去掉该选项,而将报错信息中的MOV pc,<rn>指令改写成BX <rn>形式指令也可消除警告。
注意:如果程序中存在ARM和Thumble指令相互调用的情况,那么使用BX指令能够返回到正确的处理器状态。
而使用MOV指令则不能实现处理器状态的切换,所以keil编译器建议使用BX指令。
3.Linker选项卡设置a.去掉Use Memory Layout from Target Dialog选项,添加分散加载文件,在Misccontrols选项中添加--info totals --entry 0x00000000 --scatter .\mem_c.scf --info sizes(根据实际工程)(可行)b.勾选Use Memory Layout from Target Dialog选项,在Misc controls选项中添加--info totals --entry 0x00000000 --scatter .\mem_c.scf --info sizes(根据实际工程)(可行)c.勾选Use Memory Layout from Target Dialog选项,在Misc controls选项中不添加内容,则编译报错:error: L6236E: No section matches selector - no section to be FIRST/LAST.d.去掉Use Memory Layout from Target Dialog选项,不添加分散加载文件,在Misc controls选项中不添加内容,则报错:2132.axf: Warning: L6914W: option ro-base ignored when using --scatter.2132.axf: Warning: L6914W: option rw-base ignored when using --scatter.但程序能运行e.去掉Use Memory Layout from Target Dialog选项,添加分散加载文件,在Misccontrols选项中不添加内容,则警告:2132.axf: Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.)但程序能运行4.Debug选项卡设置选择右侧的Use RDI选项,如图(如果没有该选项,则需要安装控件)在setting中选择对应的RDI驱动DLL5.Utilities选项卡设置去掉Update T arget before Debugging选项,否则编译可以通过,但不能下载,报错:Error:Flash Download failed – ARM7TDMI6.Target.c文件中断处理函数不要添加__irq关键字。
Hi3536 Linux开发环境用户指南
深圳市海思半导体有限公司
地址: 网址: 客户服务电话: 客户服务传真: 客户服务邮箱:
深圳市龙岗区坂田华为基地华为电气生产中心 +86-755-28788858 +86-755-28357515 support@
邮编:518129
1 开发环境..........................................................................................................................................1
1.1 嵌入式开发环境............................................................................................................................................. 1 1.2 Hi3536 Linux 开发环境 .................................................................................................................................. 1 1.3 搭建 Linux 开发环境 ..................................................................................................................................... 3
Qt如何移植到嵌入式系统和海思系统
tar xvzf qt-embedded-linux-opensource-src-4.5.3.tar.gz cd qt-embedded-linux-opensource-src-4.5.3 vimmkspecs/qws/linux-arm-g++/qmake.conf,把所有的arm-linux-**改为arm-hismall-linux-** ./configure --prefix=/home/chl/temp/qt/Trolltech/qtHisi-no-pch -xplatform qws/linux-arm-g++ arch arm -embedded arm-no-freetype -qt-mouse-pc vim examples/examples.pro,删除行 contains(QT_CONFIG, webkit): SUBDIRS += webkit 否则编译example webkit时会报错 vim demos/demos.pro,删除两行 contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS+= demos_browser demos_browser.subdir = browser 否则编译demo browser会出错 gmake gmakeinstall,则会在/home/chl/temp/qt/Trolltech/qtHisi下安装交叉编译好的arm上的程序; cp -rfa /home/chl/temp/qt/Trolltech/qtHisi/*/home/chl/hisi/rootfs3520/QtEmbedded-4.5.3-arm 其中home/chl/hisi/rootfs3520为export出来的nfs文件夹,供调试用;
qt 海思交叉编译
qt 海思交叉编译Qt是一种跨平台的应用程序开发框架,而海思则是华为公司自主研发的一款芯片。
本文将以Qt和海思交叉编译为话题,探讨其相关内容。
我们来了解一下Qt和海思的概念。
Qt是一种基于C++的开源框架,可以用于开发图形用户界面(GUI)程序,而且具有良好的跨平台性能。
海思则是华为公司专门为其芯片设计的一套交叉编译工具链,可以用于在不同平台上编译和运行Qt程序。
在使用Qt和海思进行交叉编译时,首先需要配置好开发环境。
我们可以在本地电脑上安装Qt开发环境,并下载海思提供的交叉编译工具链。
然后,将Qt项目进行配置,指定编译目标为海思芯片所在的平台。
接下来,我们可以使用Qt提供的工具和接口,进行程序的开发和调试。
在编写Qt程序时,我们可以利用Qt提供的丰富的类库和组件,来构建各种功能强大的应用程序。
比如,我们可以使用Qt的图形界面类库,来设计用户友好的界面;利用Qt的网络类库,来实现网络通信功能;或者使用Qt的数据库类库,来操作数据库等。
这些功能模块都可以通过Qt的API进行调用,从而简化了程序的开发过程。
而在使用海思进行交叉编译时,我们需要将Qt项目配置为交叉编译模式,指定目标平台和编译工具链的路径。
然后,通过在命令行中输入特定的编译命令,来生成可在海思芯片上运行的可执行文件。
在编译过程中,海思提供的交叉编译工具链会将源代码编译为与目标平台兼容的机器码,并生成可执行文件。
通过Qt和海思的交叉编译,我们可以在本地开发环境中进行程序的编写和调试,然后将程序部署到海思芯片所在的目标平台上运行。
这样,我们就可以充分利用Qt的跨平台特性,开发出功能强大且具有良好用户体验的应用程序。
Qt和海思交叉编译是一种强大的开发方式,可以帮助开发者快速构建跨平台的应用程序。
通过合理配置开发环境,并利用Qt和海思提供的工具和接口,我们可以轻松开发出高质量的应用程序,并在不同的平台上进行部署和运行。
希望本文对您理解和使用Qt和海思交叉编译有所帮助。
Hi3519AV100移植Qt5.9.9
Hi3519AV100移植Qt5.9.9起源:因为Hi3519AV100跑的是Linux系统,所以决定采⽤QT来做界⾯展⽰。
当前最新的QT版本是5.15,但是QT5.9是长期维护的版本,因此选择了QT5.9.9版本。
源码下载:在Qt官⽹上下载Qt5.9.9源代码解压源码tar xvJf qt-everywhere-opensource-src-5.9.9.tar.xz配置交叉编译器因为Qt5.9.9⽀持C++11,所以编译器版本需要⾼于4.8以上,我选择了6.3.1(因为给我们提供算法的公司采⽤的是这个版本-_-||)。
修改~/.bashrc ⽂件,在系统环境变量PATH中添加交叉编译器的路径。
(路径以实际路径为准)export PATH=/opt/hisi-linux/x86-arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabi/bin:$PATH执⾏命令source ~/.bashrc查看交叉编译器的路径是否已经添加到系统环境变量PATH中,可以通过查看交叉编译器版本号来进⾏判断。
arm-linux-gnueabi-gcc -v如果能正常显⽰交叉编译器的版本号,则证明配置成功!配置qmake.confcd /opt/Qt/qt-everywhere-opensource-src-5.9.9vi ./qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf因为我们现在⽤的交叉编译器名称正好和这个⽂件中的名称是⼀样的,所以不需要进⾏任何修改。
如果交叉编译器为“arm-himix200-linux-gcc”与默认的不⼀样,则将“arm-linux-gnueabi”全部替换为“arm-himix200-linux”配置⽣成MakeFile⽂件cd /opt/Qt/qt-everywhere-opensource-src-5.9.9./configure -prefix /opt/Qtlib/qt-5.9.9 -release -opensource -confirm-license \-platform linux-g++ -xplatform linux-arm-gnueabi-g++ \-qt-zlib -qt-libpng -qt-libjpeg -qt-freetype \-no-pch -no-avx -no-openssl -no-cups -no-dbus -no-opengl -no-glib \-skip qtwebchannel -skip qtcanvas3d \-evdev -nomake examples -nomake tests-prefix /opt/Qtlib/qt-5.9.9 指定最终的安装路径为/opt/Qtlib/qt-5.9.9;-platform linux-g++ 指的是你在什么机器上编译这些⽂件,⼀般都是ubuntu或者centeros,-xplatform指的是程序要运⾏在什么平台,linux-g++会⽤来编译⼀些使⽤⼯具,像⽣成.qch帮助⽂档的qhelpgenerator,xplatform则指定编译库代码时⽤的编译器,以及⽣成make所有的qmake⼯具;-xplatform 所指定的不是交叉编译⼯具链的名字,⽽是交叉编译配置⽂件的名字,该⽂件需在/opt/Qt/qt-everywhere-opensource-src-5.9.9/qtbase/mkspecs/⽬录下,可以拷贝linux-arm-gnueabi-g++,然后根据⾃⼰交叉编译⼯具修改qmake.conf;-qt-zlib -qt-libpng -qt-libjpeg -qt-freetype 这⼏个选项最好使⽤qt库⾃带的源码,不然如果系统上没有这个库或者找不到,⾃⾏编译这些库后再加⼊到相关路径上还需要为这些库写依赖⽂件才能使⽤,没有依赖⽂件,链接程序时会报⼀些插件找不到的错误;-evdev ⽤于⿏标键盘;编译和安装makemake install接下来就是漫长的等待,整个编译过程⼤概需要2个⼩时。
海思HI3531 4路高清SDI 1080P开发板使用手册
海思HI3531 4路高清SDI 1080P开发板使用手册〇、简介1) 开发板图片2) 资源情况主芯片为海思Hi3531带4片2Gbit DDR,一共1Gbyte带2个千兆网口,PHY为RTL8211EG带音频输入输出,均支持双声道立体声,AD/DA芯片为TLV320AIC31IRHBR带4个TTL UART串口(其中包括一个调试串口)带2个SATA口,均带PM功能,可以接扩展模块,扩展为更多SATA口带1个时钟芯片DS1339带1个HDMI输出,可支持1080P@60fps带1个VGA输出,可支持2560x1600@60fps带2个USB输出,可以接USBHUB扩展更多USB口带4路SDI输入接口,可以支持4路1080P视频,AD芯片为GV7601带2路CVBS输出带JTAG/PCIE/IR/GPIO/蜂鸣器等其他接口一、接线和启动拿到开发板之后,首先接好串口线(注意,不管什么接口,请在断电情况下插拔)如上图所示,J11为缺省的调试串口,带有箭头标记的为第一管脚接好串口线后打开串口调试工具超级终端或者其他调试工具都可以,下面的例子以putty为例,波特率设为115200,打开串口,然后上电12V(内正外负)可以看到嵌入式操作系统开始启动启动完成输入ifconfig可以看到板子的IP情况如果接好网线,可以telnet到板卡,进行相关操作。
如果遇到串口不能输入的情况,请关掉软件,重新打开这个串口,或者重新插拔一下串口线二、启动示例程序板卡启动之后就是一个嵌入式linux系统,可以输入各种linux命令板子里面/nand/目录下带有各种例子,可以运行查看1)解码H264文件通过HDMI输出的例子请先接好HDMI显示器,然后运行cd /nand./sample_vdec 0然后选0,选择frame mode就可以看到海思自带的一个例子,这个例子解码同级目录下的stream_chn0.h264,然后输出到HDMI显示器2) 解码H264文件通过VGA输出的例子请先接好VGA显示器,然后运行cd /nand./sample_vdec 33) 视频输入直接输出到视频输出的例子请先接好VGA或者HDMI显示器cd /nand. /sample_vio 2然后输入1 选择多画面分割模式可以看到SDI的输入源显示在显示器上4) 其他例子请自行摸索测试三、SDK的安装与编译请通读SDK包中的\01.software\board\documents_cn 目录下的相关文档请注意,本板卡,已经烧写了uboot和内核文件系统,并且启动已经加载了海思相关驱动如果不小心擦除了uboot,可以通过海思自带的FastBoot3.1_BVT.exe烧写恢复,具体可以参看海思相关文档如果要执行SDK中的load3531脚本,请修改为4hd模式,并且去掉sil9024.ko驱动的加载详细情况,可以参考SDK中的文档,大概步骤如下1) 安装虚拟机软件推荐VirtualBox2) 在虚拟机上安装Linux系统,可以选择Ubuntu 等3) 在Linux上安装GCC等编译器和开发相关工具4) 在Linux上解压缩Hi3531_SDK_VX.X.X.X.tgz 的压缩包5) 在Linux上安装跨平台编译器arm-hisiv200-linux-gcc6) 编写Hello Word程序,然后通过arm-hisiv200-linux-gcc 编译,然后把编译后的程序放到Hi3531板卡上运行(配置好NFS可以加快开发进度)7) 编译sdk中的sample,放到Hi3531板卡上运行四、系统资源简介SDI输入一共有4路J7 ~ J10 分别接GV7601芯片J7 对应U1 对应VIU0/SIO0J8 对应U2 对应VIU1/SIO1J9 对应U3 对应VIU2/SIO2J10 对应U4 对应VIU3/SIO3。
itop3568开发板一键烧写QT程序到开发板
itop3568开发板一键烧写QT程序到开发板
根据上一小节设置好编译套件后,打开自己的 qt 工程,然后点击qtcreator 里面的项目,
把编译器切换成上一章节设置好的的编译器,如下图所示:
然后打开要编译的QT 代码的pro 文件,在里面添加以下代码,这俩行代码的意思是说
把编译的可执行程序下载到开发板的/opt 目录下并执行。
target.path=/opt
INSTALLS+=target
如下图所示:
然后取消掉构建的路径,接着点击一下编译,就可以看到在开发板的屏幕上 QT 程序直
接运行了,如下图所示:
更多内容可以了解迅为3568开发板。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在HI3531上移植和运行QT4.8.6
1、前言:
近段有点时间,想把QT移植到HI3531上,在网上查找了很多资料,但都不是很全面,有些有问题也没有得到很好的体现。
2、环境:
PC:ubuntu10.04
HI3531交叉工具链:arm-hisiv100nptl-linux-
QT版本:qt4.8.6(Qt libraries 4.8.6 for embedded Linux (230 MB)
QT-Creator版本:qt-creator-linux-x86-opensource-2.4.1.bin
3、交叉编译:
1)进入qt-everywhere-opensource-src-4.8.6/mkspecs/qws目录,新建
linux-hisi3531nptl-g++目录,复制linux-arm-g++目录下的所有文件到linux-hisi3531nptl-g++
cp –a linux-arm-g++/* linux-hisi3531nptl-g++
2)进入linux-hisi3531nptl-g++,修改文件qmake.conf
# modifications to g++.conf
QMAKE_CC = arm-hisiv100nptl-linux-gcc
QMAKE_CXX = arm-hisiv100nptl-linux-g++
QMAKE_LINK = arm-hisiv100nptl-linux-g++
QMAKE_LINK_SHLIB = arm-hisiv100nptl-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-hisiv100nptl-linux-ar cqs
QMAKE_OBJCOPY = arm-hisiv100nptl-linux-objcopy
QMAKE_STRIP = arm-hisiv100nptl-linux-strip
3)打开文件qplatformdefs.h增加
#undef O_CLOEXEC
此处主要为解决:编译过程中找不到accept4函数问题
4)安装X11库
sudo apt-get install libX11-dev libXext-dev libXtst-dev
5)返回源码目录qt-everywhere-opensource-src-4.8.6进行配置
./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531nptl-g++ -little-endian -qt-freetype -no-opengl -no-glib
-nomake demos -nomake examples -nomake docs -nomake tools
其中:--prefix=/opt/qte4.8.6 为交叉编译目标安装目录
-xplatform qws/linux-hisi3531nptl-g++指定编译器及平台配置信息5)make
6)make install
4、PC编译:
1)重新解压qt-everywhere-opensource-src-4.8.6.tar.gz,进行PC编译
2)./ configure
3)make
4)make install
5、安装QT开发环境
1)sudo ./qt-creator-opensource-linux-x86-2.4.1.run
2)下一步直到安装完成
3)在应用程序,就可以看到QT Creator
6、配置开发环境
1)从PC的QT安装目录中拷贝如下文件到交叉编译目录
cp /usr/local/Trolltech/Qt-4.8.6/bin/qml* /opt/qt4.8.6/bin/
2)打开QT Creator
3)打开工具-选项-QT版本
4)打开添加按键,添加交叉编译的qmake
5)进入工具链,打开添加按键,选择GCCE,在编译器路经选择
arm-hisiv100nptl-linux-g++的路经
到些就可以编译QT下自带的例子chip了,但这时在HI3531上还是不能显示的。
7、配置海思HI3531
1) 按照《HIFB开发指南.pdf》说明加载hifb.ko驱动,这里需要说明的是,
如果QT程序运行在fb0上,分辨率为1920*1080,颜色格式为ARGB8888,1buffer模式下,则需要vram0_size = 1920*1080*4=8100K
如果为2 buffer模式下则需要vram0_size=1920*1080*4*2=16200K
说明:为什么要使用ARGB8888而不用ARGB1555,是因为我们QT编译使用的是32位framebuffer。
不然的话会做不了透明处理。
2)使能fb0,前提是VO设备已初始化完毕
static struct fb_bitfield g_r32 = {16,8, 0};
static struct fb_bitfield g_g32 = {8, 8, 0};
static struct fb_bitfield g_b32 = {0, 8, 0};
static struct fb_bitfield g_a32 = {24, 8, 0};
HI_BOOL show;
HIFB_ALPHA_S stAlpha;
struct fb_var_screeninfo stVarInfo;
fd = open("/dev/fb0", O_RDWR, 0);
show = 0x0;
ioctl(fd, FBIOPUT_SHOW_HIFB, &show);
stAlpha.bAlphaEnable = 0x1;
stAlpha.bAlphaChannel = 0x0;
stAlpha.u8Alpha0 = 0x0;
stAlpha.u8Alpha1 = 0xff;
stAlpha.u8GlobalAlpha = 0xff;
ioctl(fd, FBIOPUT_ALPHA_HIFB, &stAlpha);
ioctl(fd, FBIOGET_VSCREENINFO, &stVarInfo);
stVarInfo.xres = 1920;
stVarInfo.yres = 1080;
stVarInfo.xres_virtual = 1920;
stVarInfo.yres_virtual = 1080;
stVarInfo.transp= g_a32;
stVarInfo.red = g_r32;
stVarInfo.green = g_g32;
stVarInfo.blue = g_b32;
stVarInfo.bits_per_pixel = 32;
stVarInfo.activate = FB_ACTIV ATE_NOW;
ioctl(fd, FBIOPUT_VSCREENINFO, &stVarInfo);
show = 0x1;
ioctl(fd, FBIOPUT_SHOW_HIFB, &show);
while(1)
{
Sleep(100);
}
3)配置设备linux环境变量
export QT_QWS_FONTDIR=/usr/lib/fonts //字库的目录
export QT_QWS_DISPLAY=“linuxFB:/dev/fb0“//QT显示在fb0层8、运行CHIP
OK
9、实现背景透明
只需要调用QWSServer::setBackground(QColor(0,0,0,0));即可关于这个QColor,在设置的时候,是按照ARGB8888来设置的,前三个数值是RGB,最后一个数值是透明度,0x00是全透,0x7f是半透,0xff是不透。
10、如何显示中文
从c:\windows\fonts 目录下复制*.ttf文件到字库目录,就可以显示了,但字体需要设置大些。