s5pv210移植minigui3.0.12

那一抹风 那一抹风     2022-09-20     380

关键词:

移植平台:
ubuntu:14.04 开发板:s5pv210(A8) Minigui版本:3.0.12
-----------------------------------------------------
以下软件是开发板正常运行的必须安装包,在MiniGui官网可以下载 http://www.minigui.org/zhcn/【已放在嵌入式软件组资料共享文件夹】
-----------------------------------------------------
├── freetype-2.3.9-fm20100818.tar.gz
├── jpegsrc.v7.tar.gz
├── libmgplus-1.2.4.tar.gz
├── libminigui-gpl-3.0.12.tar.gz
├── libpng-1.2.37.tar.gz
├── mg-samples-3.0.12.tar.gz
├── minigui-res-be-3.0.12.tar.gz
└── zlib-1.2.2.tar.gz
依赖关系:
libpng (zlib);
libmgplus(libminigui)
mg-samples(libminigui,libmgplus)

----------------------------------------------------------------------------------------
PS:本教程的安装目录为 /opt/minigui/arm/cross 安装包都放在 /opt/minigui/arm
在安装之前,确保ubuntu安装了gawk、automake、autoconf、m4、g++等
在其他平台移植也适用,把交叉工具链修改对应的就行。
----------------------------------------------------------------------------------------


-----------------------------------------------------
1.编译Freetype库:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)./configure --host=arm-linux --enable-static --prefix=/opt/minigui/arm/cross
(2)make
(3)make install
【若出错,没有internal,在对应报错的路径自行创建 internal文件夹 】

 

-----------------------------------------------------
2.编译jpeg库:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure --prefix=/opt/minigui/arm/cross --build=i386-linux --host=arm-linux --target=arm-linux --enable-shared
(2)make
(3)make install

 

-----------------------------------------------------
3.编译zlib库:【先安装zlib,因为libpng依赖zlib,指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure -prefix=/opt/minigui/arm/cross --shared
(2)make
(3)make install

 

-----------------------------------------------------
4.编译png库:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)export LDFLAGS="-L/opt/minigui/arm/cross/lib"
(2)export CPPFLAGS="-I/opt/minigui/arm/cross/include"
(3)./configure --prefix=/opt/minigui/arm/cross --build=i386-linux --host=arm-linux --target=arm-linux
(4)make
(5)make install

 

-----------------------------------------------------
5.编译libmgplus-1.2.4库:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)./configure --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/opt/minigui/arm/cross CC=arm-linux-gcc CPP=arm-linux-cpp CXX=arm-linux-g++ LD=arm-linux-ld AR=arm-linux-ar RANLIB=arm-linux-ranlib STRIP=arm-none-linux-gnueabi-strip
(2)make
(3)make install
【若出错:
configure: WARNING: using cross tools not prefixed with host triplet
checking pkg-config is at least version 0.9.0... yes
checking for MINIGUI... configure: error: Package requirements (minigui >= 3.0.10) were not met:

No package ‘minigui‘ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables MINIGUI_CFLAGS
and MINIGUI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

【解决办法】
export PKG_CONFIG_PATH=/opt/minigui/arm/cross/lib/pkgconfig/

继续make
make install

 

-----------------------------------------------------
6.编译资源库minigui-res-be-3.0.12:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure --prefix=/opt/minigui/arm/cross
(2)make
(3)make install

 

-----------------------------------------------------
7.编译核心库libminigui-gpl-3.0.12:【指定交叉工具链,指定安装地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar CFLAGS="-I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include " CPPFLAGS="-g -I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include " CXXFLAGS="-g -I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include " ./configure --prefix=/opt/minigui/arm/cross --host=arm-linux --target=arm-linux --build=i386-linux --with-osname=linux --with-targetname=fbcon --enable-autoial --disable-vbfsupport --enable-tslibial --disable-screensaver --disable-splash --enable-procs
(2)【
vim src/newgal/pcxvfb/Makefile
修改194行,将/usr/include去掉:
INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include
-I$(abs_top_srcdir)/src/newgal/ -I/usr/include/
否则编译pcxvfb.c将出错

(3)make
(4)make install

 

-----------------------------------------------------
8.编译例程mg-samples-3.0.12:【指定链接动态库】
-----------------------------------------------------
./configure CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar CPPFLAGS=-I/opt/minigui/arm/cross/include prefix=/opt/minigui/arm/cross PKG_CONFIG_PATH=/opt/minigui/arm/cross/lib/pkgconfig
make
make install

线程版编译程序:
(1)arm-linux-gcc -o helloworld helloworld.c -L/opt/minigui/arm/cross/lib -lminigui_ths -ljpeg -lm -lminigui_ths -ldl -lpng -lpng12 -lts -lz -I/opt/minigui/arm/cross/include

进程版,在mg-samples-3.0.12[mginit]文件夹编译得到例程的mginit可执行文件:
(1)arm-linux-gcc mginit.c taskbar.c desktop.c -o mginit -I/opt/minigui/arm/cross/include -L/opt/minigui/arm/cross/lib -lminigui_procs -lpng -ljpeg -lz -lm -lts
(2)arm-linux-gcc -o helloworld helloworld.c -L/opt/minigui/arm/cross/lib -ljpeg -lm -lminigui_procs -ldl -lpng -lpng12 -lts -lz -I/opt/minigui/arm/cross/include

 

----------------------------------------------交叉编译安装部分完成,下面是移植到开发板----------------------------------------------------------------


-----------------------------------------------------
9.拷贝全部安装文件到开发板 /usr/local【自行设定】
-----------------------------------------------------
(1)cp /opt/minigui/arm/cross/* 全部复制到 /usr/local 下
(2)export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 【设置minigui的lib的环境变量,让程序正常运行】

 

-----------------------------------------------------
9.修改MiniGui的配置环境
-----------------------------------------------------
(1)修改开发板上minigui配置文件vi /usr/local/etc/MiniGUI.cfg
把其中的system段修改成如下:
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=240x320-32bpp 【32bpp 根据开发板的显示屏的分辨率设定,网上的基本是16bpp。这里卡住了差不多2天】

# IAL engine
ial_engine=tslib //使用触摸功能
mdev=/dev/event0 //这里的event0可能创建在 /dev/input/event0 自行查看
mtype=IMPS2

[fbcon]
defaultmode=240x320-32bpp 【32bpp 必须是32bpp,不然显示不正常,触摸不正常】

 

-----------------------------------------------------
10.配置tslib库(触摸)
-----------------------------------------------------
(1)移植Tslib到开发板,本教程是放在/usr/local/tslib
(2)配置tslib环境:
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal_a70
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
(3)修改/usr/local/tslib/etc/ts.conf 中的内容应该是:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

 

-----------------------------------------------------
11.校准触摸屏
-----------------------------------------------------
(1)运行/usr/local/tslib/bin/ts_calibrate

 

-----------------------------------------------------
12.最后把之前编译好的helloworld 拷贝到开发板运行
-----------------------------------------------------
(1)最后把helloworld拷贝到开发板中运行。

s5pv210_uartstdio移植

...息等待输出putc:操控标准输出的硬件,将信息发送出去3、移植步骤:(1)解压printf.rar到uart_stdio目录,解压后会有include、lib两个目录,其中include放的是相关头文件,lib放的是printf、sc 查看详情

s5pv210移植无线wifi网卡mt7601

一、准备工作1、MT7601驱动下载点击下载2、插入usbWiFi启动开发板linux,lsusb查看usb驱动Bus001Device003:ID148f:7601看到的是该驱动的厂家设备信息3、解压源码到linux下,确认USB的VID和PID,在rtusb_dev_id.c中USB_DEVICE_IDrtusb_dev_id[]=#ifdefRT6570USB_D... 查看详情

移植tslib和qt5.6到三星s5pv210开发板

tslib1.4移植下载tslib1.4后1.cptslib-1.4.tar.bz2/home/gec2.tarjxvftslib-1.4.tar.bz23.sudo-s4.cdtslib-1.4/5../configure--host=arm-linux--prefix=/usr/local/armac_cv_func_malloc_0_nonnull=yes6.make7.makeinstal 查看详情

s5pv210-kernel-从三星官方的内核开始移植

1、拿到三星官方移植过的内核2、在Linux下解压一份在共享目录下,解压一份在Linux的源生目录下。一份编辑,一份编译3、建立SI工程,添加kernel源代码4、在Linux下先看makefile中的CROSS_COMPINE交叉编译工具链和ARCH的架构对不对5、在a... 查看详情

qt开发之移植qt5.6.2到s5pv210(代码片段)

1、移植前的准备工作 (1)确认已经烧录uboot,并设置环境变量bootcmd和bootargs从tftp、nfs启动; (2)zImage事先编译好的,文件夹形式的rootfs准备好,成功启动内核进入命令行; (3)ts驱动源码确认添加、设备文件确认OK(dev/input/event2... 查看详情

tiny210(s5pv210)移植u-boot(基于2014.4版本号)——移植u-boot.bin(打印串口控制台)

   在之前我们移植的代码中,都没看到明显的效果,这节我们实现控制台的信息打印。在上节。我们看到调用relocate_code重定位。在u-boot的帮助文档doc/README.arm-relocation中对重定位有说明。u-boot为了生成位置无关码,在... 查看详情

s5pv210中断体系结构分析

我们按照Tiny210官方的裸板程序来梳理S5PV210的中断体系。关于S5PV210的中断体系结构S5PV210的中断控制器是由4个向量中断控制器(VIC)、ARMPrimeCellPL192和4个TrustZoneInterruptController(TZIC)共同组成。S5PV210共支持93个中断源(具体见官方手册)... 查看详情

s5pv210——中断

1:s5pv210的中断步骤(1):建立异常向量表;(2):写入中断处理函数;(3):中断初始化;(4):建立中断号与中断处理函数的联系,使能中断;当中断发生时,中断处理函数会自动处理中断;流程如下: 2:建立异常向量表:s5pv21... 查看详情

s5pv210的启动过程

一、硬件结构 S5PV210存储部分的硬件结构大致为:内置SRAM+外接大容量DRAM+外接大容量Nand(S5PV210采用的是iNand)。 S5PV210内置了一块96kb的SRAM(即iRAM),同时还内置了一块64kb的NorFlash(即iROM)。二、启动过程 1、当CPU上... 查看详情

s5pv210时钟体系分析

S5PV210时钟体系如下面时钟结构图所示,S5PV210中包含3大类时钟域,分别是主系统时钟域(简称MSYS)、显示相关的时钟域(简称DSYS)、外围设备的时钟域(简称PSYS)。1)MSYS:用来给cortexa8处理器、DRAM控制器、3D、IRAM、IROM、INTC(中断控制器... 查看详情

s5pv210的中断处理机制详解

...中断机制介绍参考博客:《ARM架构的中断机制详解(S5PV210芯片)》;2、S5PV210芯片的中断处理过程2.1、中断处理第一阶段S5PV210芯片的中断处理第一阶段就是异常向量表的跳转,并没有任何特别,看上面的参考博客即... 查看详情

s5pv210的中断处理机制详解

...中断机制介绍参考博客:《ARM架构的中断机制详解(S5PV210芯片)》;2、S5PV210芯片的中断处理过程2.1、中断处理第一阶段S5PV210芯片的中断处理第一阶段就是异常向量表的跳转,并没有任何特别,看上面的参考博客即... 查看详情

s5pv210|微处理器启动流程(代码片段)

S5PV210|微处理器启动流程目录S5PV210|微处理器启动流程S5PV210启动概述S5PV210的启动顺序iROM(BL0)的启动顺序V210启动流程图第一次启动失败时的iROM第二次启动顺序用于引导代码描述的标题信息数据编写校验和示例代码S5PV210启动概... 查看详情

s5pv210的启动过程

s5pv210的启动方式:SD0启动,SD2启动,USB启动s5pv210启动涉及的硬件不需要初始化的外存Norflash(iROM)+静态内存SRAM (iRAM )需要初始化的大动态内存DRAM +大外存iNand上电后,先从64KB的iROM中读取预先设置的代码BL0,这部... 查看详情

第一章之s5pv210启动顺序

我所使用的开发板是:友善之臂smart210,cpu为s5pv210.u-boot版本是:u-boot-2012-101,首先在u-boot中配置相对应的开发板的配置文件#makes5p_goni_config2,设事先编译好的交叉编译器放在Makefile中添加上去,打开Makefile在67行补充CROSS_COMPILE?=arm-linux-... 查看详情

s5pv210——sd卡重入

1:s5pv210启动原理:s5pv210启动的时候首先查看OMpin设置的启动方式,如果设置为SDMMC启动的话,首先从SD的通道1启动,但是通道1连接的是iNand,如果iNand中启动不了,则从SD卡的通道2启动,sd卡通道2连接外置的sd卡,BL0首先从sd卡... 查看详情

s5pv210串口设置与实验(轮询方式)

S5PV210UART相关说明通用异步收发器简称UART,即UNIVERSALASYNCHRONOUSRECEIVERANDTRANSMITTER,它用来传输串行数据。发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线的信号,... 查看详情

嵌入式开发(s5pv210)——u-boot的不同来源和目录结构

...去uboot的官网下载uboot,然后把此款Soc的开发板的uboot移植上去并开源,让买这款Soc的公司去参考移植上去的uboot,然后开发自己的产品。Soc产商推 查看详情