此次miniGUI的移植是移植的比较老的版本,用于性能较弱的嵌入式系统中,移植的minigui版本为MiniGUI 3.0.12,在此将移植过程记录下来,方便以后取用。
前言:嵌入式芯片采用的是全志科技的T3芯片,编译服务器采用的是ubuntu14.04.4服务器版,在进行移植前一定要进行T3的镜像的编译工作,也就是说在移植minigui之前要先把开发板提供的镜像源码顺利完成一次编译,因为移植所需要的tslib、freetype、zlib等库需要进行编译,否则要自行进行tslib等库的移植,需要移植的东西太多,但是在编译镜像源码的时候在buildroot中要去除png、jpeg的库的支持,去除qt库的支持,其他没必要保留的东西都不要保留了
一、下载所需要的源码包
minigui-res-be-3.0.12.tar.gz
libminigui-gpl-3.0.12.tar.gz
libmgutils-1.0.4.tar.gz
libmgplus-1.2.4.tar.gz
jpegsrc.v7.tar.gz
libpng-1.2.37.tar.gz
minigui相关的可以去MiniGUI官网下载,只需要下载上面列出的三个源码包即可http://www.minigui.org/download,其余的都可以百度
二、源码编译工作
将所有的源码包在服务器上进行解压,并且配置好交叉编译工具链,在完成开发板镜像编译之后会在开发板编译路径下面找打交叉编译工具链
~/cqr40_linuxqt_bv3s/buildroot-2017.02.3/output/host/usr/bin/
这是又企划科技提供的T3芯片开发吧的镜像源码
1、编译jpegsrc
进入路径jpegsrc路径下面,打开configure文件,在文件头添加如下内容,这主要是添加交叉编译工具链,如果没有将编译工具链所在的路径放到环境变量中则下面要填写绝对路径,否则编译的时候回显示找不到命令
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

2、编译libpng-1.2.37
进入路径jpegsrc路径下面,打开configure文件,在文件头添加如下内容。与编译jpeg类似
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

3、编译minigui-res-be-3.0.12.tar.gz
进入路径之后直接执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install
这个只是资源文件,不牵扯源码编译所以不必提供交叉编译工具链的路径

4、编译libminigui-gpl-3.0.12
这是minigui 的核心库,和镜像源码有些不匹配的地方,不要使用镜像源码提供的png和jpeg的源码,在编译镜像源码的buildroot中一定要将他们去掉,但是zlib、tslib和freetype2可以保留
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

执行命令
./configure
–prefix=/opt/build/
–host=arm-linux
–target=arm-linux
–build=i386-linux
–with-osname=linux
–with-targetname=fbcon
–enable-autoial
–disable-vbfsupport
–enable-tslibial
–enable-videomstar
–enable-videofbcon
–disable-pcxvfb
–disable-videomstar --enable-pngsupport --enable-jpgsupport --disable-screensaver
–disable-splash
–enable-gb18030support
–enable-ttfcache
–with-ttfsupport=ft2
–with-ttfcachesize=512
–with-ft2-includes=/opt/cqr40_linuxqt_bv3s/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/freetype2/

make -j8
make install
附注:如果需要自提ttf类型的要增加–enable-ttfcache\ --with-ttfsupport=ft2\ 还需要额为提供freetype2的include的地址,这个在交叉编译工具链中有,但是会提示有一个头文件找不到,–with-ft2-includes=path 配置上即可,上面配置选项中最后一个就是。
5、编译libmgplus-1.2.4库
进入路径libmgplus-1.2.4路径下面,打开configure文件,在文件头添加如下内容。与编译jpeg类似
CC=arm-buildroot-linux-gnueabihf-gcc
CXX=arm-buildroot-linux-gnueabihf-g++
LD=arm-buildroot-linux-gnueabihf-ld
AS=arm-buildroot-linux-gnueabihf-as
AR=arm-buildroot-linux-gnueabihf-ar
CFLAGS=-I/opt/build/include
CPPFLAGS=-I/opt/build/include
CXXFLAGS=-I/opt/build/include
LDFLAGS=-L/opt/build/lib

然后执行命令
./configure --prefix=/opt/build/ --host=arm-linux --target=arm-linux --build=i386-linux
make -j8
make install

6、复制资源文件
完成以上的编译后所需要的文件可开发用的库都已经完成,全部在/opt/build/路径下面,在此路径下面include 文件夹存放用来开发的头文件,lib文件存放完成编译的库文件,etc路径下面是MiniGUI的配置文件。
将etc下MiniGUI.cfg文件拷贝到开发吧的/etc路径下面,将lib文件中的所有库文件拷贝到开发板中/lib路径下面即可,现在已经完成了移植。

三、对项目进行配置
以上是程序的移植,光是这些库还是不能启用起来,需要对配置文件和库需要的资源进行拷贝
1、拷贝配置文件,MiniGUI.cfg文件的拷贝
2、在/opt/build/share路径下面是所需要的资源,例如图片文件和字库文件等,需要拷贝到开发板上,路径随意,只需要在cfg的配置文件里面写明即可
3、修改MiniGUI.cfg配置文件
1、开头system的配置 修改成如下,采用fb设备,触摸屏采用tslib。触摸设备为/dev/input/event4,这些事根据全志镜像中Qt的配置找到的

23 [system]
24
25 gal_engine=fbcon
26 defaultmode=800x600-16bpp
27
28
29 ial_engine=tslib
30 mdev=/dev/input/event4
31 mtype=IMPS2

2、关于分辨率的配置
33 [fbcon]
34 defaultmode=800x600-32bpp

3、添加自定义字体,如果不需要可以保持默认,我这里添加了73行中msyh字体的支持
66 [systemfont]
67 font_number=6
68 font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
69 font1=-FixedSys-rrncnn--16-ISO8859-1
70 font2=-Courier-rrncnn--16-ISO8859-1
71 font3=-SansSerif-rrncnn--16-ISO8859-1
72 font4=-System-rrncnn--16-ISO8859-1
73 font5=ttf-msyh-rrncnn-24-24-utf-8

4、添加字体库所在的路径 在下面写上所需要的库的路径地址即可
93 [truetypefonts]
94 font_number=6
95 name0=ttf-arial-rrncnn-0-0-ISO8859-1
96 fontfile0=/storage/share/minigui/res/font/arial.ttf
97 name1=ttf-times-rrncnn-0-0-ISO8859-1
98 fontfile1=/storage/share/minigui/res/font/times.ttf
99 name2=ttf-msyh-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
100 fontfile2=/storage/share/minigui/res/font/msyh.ttf
101 name3=ttf-simfang-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
102 fontfile3=/storage/share/minigui/res/font/simfang.ttf
103 name4=ttf-stcaiyun-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
104 fontfile4=/storage/share/minigui/res/font/stcaiyun.ttf
105 name5=ttf-simhei-rrncnn-0-0-GB2312-0,GBK,BIG5,UTF-8,UTF-16LE,UTF-16BE
106 fontfile5=/storage/share/minigui/res/font/simhei.ttf

5、添加资源库所在的路径,就是编译minigui-res-be-3.0.12所产生的文件
103 [cursorinfo] (不修改运行会报错)
104 # Edit following line to specify cursor files path
105 cursorpath=/usr/local/share/minigui/res/cursor/
8. 131 [resinfo](不修改运行会报错)
9. 132 respath=/usr/local/share/minigui/res/
10.
以上为为整个项目进行MiniGUI库的整体移植过程,这些是为了匹配原有的项目进行的移植,所有的操作都为兼容之前的项目所进行的配置。

MiniGUI移植过程相关推荐

  1. miniGUI移植过程大致如下

    miniGUI移植过程大致如下 移植过程大致如下(由于存在依赖关系,顺序不能错): –prefix 为生成库文件目录: –host 指定目标板编译器: LDFLAGS 为动态库路径 CFLAGS 为头 ...

  2. MiniGui移植详解1【转】

    MiniGUI 1.3.3 移植详解 作者:大漠孤狼 E-Mail:yuqiang0107@126.com 最近移植了 MiniGUI 1.3.3 到一个开发板上,中间遇到许多问题,在论坛上发问题,结 ...

  3. NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程

    Android平台搭建和NDK环境配置 Android移植基础 NDK是集成的Android中调用C++代码的工具包,核心是JNI(Java Native Interface)技术,具体这里略过不表. ...

  4. U-Boot 之三 U-Boot 源码文件解析及移植过程详解

      在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建说明 中我们说了要一步步搭建整个嵌入式 Linux 运行环境.我所使用的硬件平台及整个要搭建的嵌入式 Linux 环境见博文 ...

  5. .NET应用迁移到.NET Core(三)从商业角度看移植过程

    2016年12月1日下午微软技术大会Microsoft Ignite China,有幸和大家分享一门课程,课程信息如下,欢迎大家到时来捧场.本文介绍下从商业角度看移植过程. . 创建项目移植进度表 创 ...

  6. 嵌入式linux python移植过程_嵌入式linux项目开发(一)——BOA移植

    嵌入式linux项目开发(一)--BOA移植 项目目标:使用BOA.CGIC.SQLite搭建嵌入式web服务器 一.嵌入式web服务器BOA简介 在嵌入式设备的管理与交互中,基于Web方式的应用成为 ...

  7. u-boot移植随笔:移植过程问题及解决(本文章不时更新)

    这个文章主要记录移植过程中出现的问题及解决方法,但不涉及问题背景. 1.unkown FLASH on Bank 0 A:芯片ID不正确,找啊找啊(我使用SI),终于在M5253DEMO.h这个文件中 ...

  8. RTL8821CS移植过程记录

    RK3308B+RTL8821CS移植 在rk3308b平台移植rtl8821cs,rlt8821cs是wifi+bt一体的模组,主要记录下移植过程中需要注意的地方 移植驱动 将rtl8821cs的驱 ...

  9. 一个23万行代码的移植过程

    一个23万行代码的移植过程 一.概述 移植完毕后觉得难度并不高,遇到了一些困难,都能顺利解决,最难得是不同编译器之间的差异造成的程序运行结果不同,比如这次移植遇到的内存管理是遇到的主要问题,有一块内存 ...

最新文章

  1. swift轮播图代码
  2. 今天没有浪费时间,我努力了
  3. 实现Windows non-Unicode设置批量修改
  4. 开盘即破发,网易有道赴美上市,继续发力在线教育
  5. Java加密与解密的艺术~数字证书~证书使用openssl
  6. 1.SpringMVC 概述
  7. android,[游戏] 美女擦玻璃游戏源码
  8. [网安实践II] 实验2. 密码学实验
  9. java判断浏览器杂项_杂 项 - HelloJava菜鸟社区
  10. 数据筛选特征方法-方差法
  11. masm 16位汇编语法
  12. kubevirt(一)虚拟化技术
  13. 使用Minisforum UM560小主机办公一周体验
  14. Exchange 暴力破解与防范
  15. EtherCAT IgH常用命令行使用记录
  16. 怎么预防过敏性鼻炎呢?
  17. python找出主力合约价格_Python实盘交易之期货指数映射主力与“自动换月”
  18. GD32450i-EVAL学习笔记 19 - USB FS 数据传输
  19. C#控件之DataGridView
  20. GDOUCTF2023 Reverse题解

热门文章

  1. 编写一个c语言 输入abc 输出最大数,C语言 输入abc,求最大数
  2. 两岸四地消费者信心指数出炉:中国大陆消费者信心指数评析
  3. 常用复原reast.css
  4. 性能测试七种常用方法,以及四大应用领域
  5. 上海市四金和税的算法
  6. json嵌套字典数据获取
  7. 春林文件批量改名系统
  8. [AHK]设置快捷键快速呼出隐藏XYplorer
  9. 【MAX7800实现KWS20 demo演示】
  10. 阿里api网关接口创建、发布、授权、调试