MiniGUI在OMAP5912上的移植

发布者:幸福家园最新更新时间:2021-03-18 来源: eefocus关键字:MiniGUI  OMAP5912  移植 手机看文章 扫描二维码
随时随地手机看文章

1OMAP5912开发板简介


OMAP5912处理器是由TI应用最为广泛的TMS320C55X DSP内核(192 MHz)与低功耗、增强型ARM926EJ-S微处理器(192 MHz)组成的双核应用处理器,采用O.13μm CMOS工艺制造。C55xDSP可提供对低功耗应用的实时多媒体处理的支持;ARM926EJ-S MPU可满足控制和接口方面的处理需要。基于双核结构的OMAP5912具有极强的运算能力和极低的功耗,采用开放式、易于开发的软件设施,支持广泛的操作系统。


2 图形用户界面MiniGUI简介


与几种主流嵌入式GUI相比,MiniGUI具有以下显著特点:占用资源少,高性能,高可靠性,可配置。MiniGUl采用分层设计,层次结构如图1所示。



在最底层,GAL和IAL提供底层图形接口以及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是编程接口API。GAL和IAL为MiniGuI提供了底层的Linux控制台或者X Window上的图形接口以及输入接口,大大提高了MiniGUI的可移植性,并且使程序的开发和调试变得更加容易。


3 MiniGUI在OMAP5912开发板上的移植过程


3.1 构建Linux交叉编译环境


本实例中宿主机系统为RedHat 9 Linux,交叉编译工具为cross-2.95.3.tar.bz2,把工具解压缩到/usr/local/arm目录下,然后执行export PATH=/usr/local/arm/2.95.3/bin:MYMPATH;将安装好的库资源的路径添加到PATH中。这样,交叉编译环境就构建完成。后面所有的资源文件和库文件都应安装在/usr/local/arm/2.95.3/arm-linux目录。


3.2 交叉编译MiniGUI资源文件


提供程序调用所需的资源,如位图、光标、界面控制条等,编译方法较简单,只需在宿主机环境编译后即可在开发板上使用,解压minigui-res-1.3.3.tar.gz,进入目录执行make install命令,资源文件会安装到/usr/local/lib下minigui目录中。


3.3 交叉编译MiniGUI库函数,并进行配置安装


首先解压缩libminigui-1.3.3.tar.gz,进入Fra-meBuffer控制器配置文件libminigui-1.3.3/src/new-gal/fbcon,修改fbvideo.C中GAL_fbdev=”/dev/fb/O”,这是因为系统启动后,其/dev目录下实际存在的设备文件不是fb而是/fb/0。通常Frame-Buffer作为标准字符设备处理,主设备号为29,次设备号则从0~31,分别对应/dev/fb/0-/dev/fb/31的设备文件。修改完后进入解压后的目录,执行以下命令以完成对编译选项的配置:

CC是用来指定所使用的编译器;-target选项用来指定目标平台;-host选项用来指明宿主机的类型;-build选项与-arget一样为arm-linux;-en-able-lite选项用来指定生的模式。MiniGUI 1.3.3有Threads和Lite两种模式,本例中采用Lite模式;-prefix选项用来指定MiniGUI函数库的安装路径,本例中安装路径为/usr/local/arm/2.95.3/arm-linux。如果运行成功,就会生成定制的Makefile文件,然后可以继续执行make和make install命令编译并安装libminigui。


3.4.2 安装png库


这个库是用来显示png图形的,先解压libpng-1.0.10rcl.tar.gz文件,编译时,主目录下面没有配置文件,因此执行命令cp scripts/makefile.linux,将与开发系统体系结构一致的配置文件makefile.linux安装到主目录下面,然后还需要对makefile.linux文件进行修改:



其中:上述ZLIBLIB参数和ZLIBINC参数分别指定了库文件和头文件的路径。


3.4.3 安装jpeg库


这个库用来支持jpeg格式图片显示,编译过程与png库的编译过程类似:

3.4.4 安装libttf库


这个是TrueType字体的支持库,用来显示文字,解压freetype-1.3.1.tar.gz,进入目录,然后./con-figure会生成Makefile文件,因为没有安装Xlib testexample,后面编译通不过,屏蔽掉关于test的部分代码,打开Makefile文件,找到有“FTTESTDIR”字段的行注释掉,一共有7处。然后make编译库文件,在freetype-1.3.1/lib目录下,生成链接库文件:


至此libttf库安装完成。上述方法是通过自动配置完成安装,另外也可以通过手工配置完成安装:

参数O2表示完成编译过程的同时还要经过二级优化,不再加入符号表等调试信息,以使程序代码占用空间最小,同时执行的速度最快。


4 加入mde库支持


mde库是执行MiniGUI应用程序的归档压缩文件,其中包含被称为mginit的MiniGUI-Lite的服务器程序,安装的过程需要popt-1.7.tar.gz库支持,安装过程较为简单,和前面的库安装类似。


为了避免安装过程出现MINIGUI-LiteVerl.2.6 orLater的警告信息,必须对configure.in文件作出修改,添加下面的一行语句指定头文件和库文件的寻找路径:


同时对包含MiniGUI常用的宏以及数据类型定义的common.h文件路径进行修改,在参数AC_CHECK_HEADERS行中添加如下代码:

5 创建设备文件节点


在内核启动之前,应该保证MiniGUI运行于服务器模式,嵌入式系统上执行MiniGUI应用程序时,先由mginit调用vfork产生一个子进程,然后呼叫系统调用execl来启动,同时服务器程序还需要创建几个设备文件,在/dev目录下执行下面创建命令:


mknod ptysf c 2 63


mknod ttysf c 3 63


分别创建了主设备号是2、次设备号是63的设备文件ptysf以及主设备号是3、次设备号是63的设备文件ttysf。如果需要在系统启动时自动加载上述设备文件,可以在系统启动脚本文件rc.d中添加上述命令。至此移植阶段的工作完成。


6 下载程序到目标板并运行


通过以上的编译,在目标板上运行MiniGUI所需的库文件和应用程序已全部编译好,进入/usr/local/arm/2.95.3/arm-linux/,在etc,lib子目录下有需要拷贝到目标机上的资源。首先拷贝根文件目录到/opt/rootfs下,在根文件目录下新建和/usr/local/arm/2.95.3/arm-linux/下相同的目录结构,把/usr/local/arm/2.95.3/arm-linux/lib中相应的库拷到根文件系统的/usr/local/lib目录下去(无需拷贝libjpeg.a等静态库);拷贝MiniGUI资源文件,将usr/local/lib/目录下的minigui目录拷贝到根文件/opt/rootfs目录下;拷贝配置文件/usr/local/etc/MiniGUI.cfg,保持目录结构一致。修改根文件系统中的/etc/ld.SO.conf文件,在文件最后一行增加“/usr/local/lib”,然后执行命令ldconfig-r/opt/rootfs,将根文件目录设置为根目录,最后修改MiniGUI.cfg,使之适合目标板的硬件设置:将鼠标设备改为mdev=/dev/input/mouse0,鼠标协议类型改为mtype=IMPS2,其他的用默认方式即可。


至此,MiniGUI已经成功移植到了开发板上,图2为MiniGUI在开发板上启动后的画面。此后可以根据需要,继续修改MiniGUI库函数及各种资源,并且编写自己的应用程序,使开发板上的界面更加美观和完善。

7 结 语


介绍的MiniGUI移植过程已通过实验验证,并且大体的过程适合于其他型号的开发板和其他开源版本的MiniGUI。将图形用户界面引人嵌入式系统是嵌入式技术发展的必然趋势,可以肯定,随着MiniGUI的不断推广和功能的加强,它将在嵌入式系统设计中起着举足轻重的作用,并且在实际应用中不断走向成熟。


关键字:MiniGUI  OMAP5912  移植 引用地址:MiniGUI在OMAP5912上的移植

上一篇:基于OPenWrt的移动机器人系统设计
下一篇:初探WindowsCE异常和中断服务程序

推荐阅读最新更新时间:2024-11-01 22:41

嵌入式Web服务器移植与测试
  随着计算机技术和现代通信技术的不断发展,设备即网络是后PC时代对嵌入式系统的客观要求,因此也需要建立嵌入式设备的网络Web服务器。嵌入式Web能够实现在各种工业监控、检测、以及自动化控制等领域的远程控制,世界上无论任何地方,只要是存在Internet网络,都能够通过Web服务对各种现场进行管理,甚至可以在有网络的手持设备上对现场进行控制管理操作。传统的Web服务器大多在大型机,PC机上实现,其成本比较高,而且不方便工业现场的应用实施,嵌入式系统以及嵌入式小型Web服务器的出现使得Web服务运行在资源、性能有限的嵌入式设备上提供了条件。本文主要介绍嵌入式Web服务器BOA在ARM9嵌入式系统设备板上的移植,并对移植后的BOA服务
[嵌入式]
英特尔正在将 Android 3.0 移植到 Oak Trail 平台
    英特尔的 CEO Paul Otellini 证实,英特尔正在将 Android 3.0 移植到 x86 架构。这将使 Android 运行在英特尔刚宣布的 SoC 产品线——“Oak Trail”平台 。英特尔的平板计划被称为“PRC Plus”(PRC 是指中国)。Otellini 并未特别说明该平台何时发布。     英特尔曾与诺基亚合作 MeeGo 项目,显然是看到移动设备(智能手机、平板)才是未来,必须在此领域推广自己的芯片,与目前占统治地位的 ARM 竞争。     诺基亚与微软合作之后,MeeGo 平台前途堪忧。曾有消息宣称英特尔与腾讯合作继续开发 MeeGo 平台,而腾讯也展示过一个 MeeG
[手机便携]
如何判断CPU是否正在执行中断函数?
1.这是一个有许多经验的攻城狮都遇到过的坑,本文教你正确绕过这个坑; 2.教大家了解__get_CONTROL的用法,及xQueueSend和xQueueSendFromISR的区别; Ⅰ 问题来源 今天在FreeRTOS系统上移植了部分别人写的代码,移植前仔细看了下源码,确认没问题后,编译,下载,运行,突然“死机了”······ 于是,我又再次确认了移植的代码,没有发现Bug所在。此时,我开启了在线调试功能,发现程序死在了“vPortEnterCritical”函数中的断言语句里。如下: Ⅱ 解决问题的过程 我解决问题还是按照常规思维,一步一步跟踪,很多问题其实都是类似道理,有规律可循
[单片机]
如何判断CPU是否正在执行中断函数?
U-Boot移植(18)网卡dm9000aep移植总结
总结: 主要修改三个文件: 1、/u-boot-1.1.6/include/configs/100ask24x0.h 2、/u-boot-1.1.6/board/100ask24x0/lowlevel_init.S 3、/u-boot-1.1.6/drivers/dm9000x.c 补充:4、/u-boot-1.1.6/drivers/dm9000x.h 把移植好的u-boot-1.1.6重新打成压缩包,便于收藏。 如下: tar cjf u-boot-1.1.6-new.tar.bz2 u-boot-1.1.6
[单片机]
TQ2440 学习笔记—— 34、移植 Linux 内核【 Makefile 分析 】
一、Linux Makefile 分析 (1)Makefile 的作用 a、决定编译哪些文件 b、怎样编译这些文件 c、怎样连接这些文件,最重要的是它们的顺序如何 Linux 内核中有很多个Makefile 文件,下面是 Makefile 文件的五大类: a、决定编译哪些文件。 Linux 内核的编译过程从顶层 Makefile 开始,然后递归地进入各级子目录调用它们的Makefile,分为3个步骤。 1、顶层 Makefile 决定内核根目录下哪些子目录将被编进内核。 2、arch/$(ARCH)/Makefile 决定arch/$(ARCH) 目录下哪些文件、哪些目录将被编进内核。 3、
[单片机]
TQ2440 学习笔记—— 34、<font color='red'>移植</font> Linux 内核【 Makefile 分析 】
MiniGUI在基于OMAP5912开发板上的移植
随着嵌入式的飞速发展,以ARM为硬件平台和以Linux为软件平台的方式受到广泛的关注。图形用户界面GUI是迄今为止计算机系统中最为成熟的人机交互技术。MiniGUI作为一款优秀的图形用户界面支持系统,目前已在许多实际产品和项目中得到了应用,这里正是针对这样的需求,详细介绍如何在OMAP5912开发板上移植MiniGUI的全过程。 1 OMAP5912开发板简介 OMAP5912处理器是由TI应用最为广泛的TMS320C55X DSP内核(192 MHz)与低功耗、增强型ARM926EJ-S微处理器(192 MHz)组成的双核应用处理器,采用O.13 m CMOS工艺制造。C55xDSP可提供对低功耗应用的实时多媒体处理的支持
[单片机]
<font color='red'>MiniGUI</font>在基于<font color='red'>OMAP5912</font>开发板上的<font color='red'>移植</font>
在FS2410开发板上移植linux2.6.24初步成功
说是移植,也不太准确,因为linux2.6.24内核已经将s3c2410纳入。在移植的时候只是需要做几个小的改动以及几个注意的地方。 一. 前言 使用的内核:linux2.6.24, http://www.kernel.org/pub/linux/kernel/v2.6/ 使用的arm交叉编译工具(4.2.1): http://www.codesourcery.com/gnu_toolchains/arm/download.html 环境:VMware中的Ubuntu 7.10 二. 移植 1. 修改MakeFile文件,确定arm平台以及使用的交叉编译工具: 修改的文件: linux-2.6.24/Makefile 修改
[单片机]
带全速USB接口的PIC18F4550应用设计
引 言 随着USB(Universal Serial Bus)技术的发展,特别是高速(480 Mbps)USB2.0协议的出现,几乎所有的PC外设都可以移植到USB上,所以USB的PC外设的发展空间是巨大的,甚至在不久的将来,USB将完全取代异步串口和打印机并口,PC机厂商将不会再生产机箱上带异步串口和打印机并口的PC机了,机箱上也不会再有那么多的连线了。 USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。 利用USB总线的数据采
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
    做任何事情之前,一定要想好目标。没有目标的事情是做不好的,也做不成。我的目标就是学习ARM开发,当然是深入的学习。目标如下 :1、学习A ...
  • 学习ARM开发(2)
    天是星期天,刚好在家里休息。又是学习ARM的大好时机了。早上起得很早,因为都想着怎么样搞好这个ARM开发环境,总是心急的。搞得睡觉,也睡 ...
  • 学习ARM开发(4)
    已经把CPU大体架构学会了,当然我之前已经学习过80X86的结构,所以对于像RISC的计算机,也能想像到它是什么样的东西。如果没有学习过《微机 ...
  • 学习ARM开发(6)
  • 学习ARM开发(7)
  • 学习ARM开发(8)
  • 学习ARM开发(9)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved