微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM&Linux图形用户界面开发平台的设计

基于ARM&Linux图形用户界面开发平台的设计

时间:04-20 来源:互联网 点击:

总线设备、USB总线带宽管理、为USB设备驱动提供相关的接口、提供应用程序访问的USB系统的文件接口。

USB设备类驱动是最终与应用程序交互的软件模块,主要为访问特定的USB设备和应用程序提供接口。Linux内核支持的USB设备类有:USB打印机设备类、通信设备类、存储设备类、语音设备类等。由于AT91RM9200的USBHOST控制器符合OHCI标准,而系统所选择的Linux内核又对OHCI规范提供了模块支持,因此使得开发工作相对简单。开发目标板所需的USB驱动程序时,只需对原Linux内核驱动针对目标板稍做修改即可。具体修改部分如下:①调整初始化地址。在/usb/usb-ochi。c中,使用板载起始地址(0x40700000)来初始化;②删除PCI接口的处理代码。在目标板ARM221平台上,USB主机控制器不包含PCI接口,故把/usb/usb-ochi。c中与PCI有关的代码删除;③修改HUB下端口数目。目标板ARM221设有两个USBHUB端口,用于键盘和鼠标接口。故在/usb/usb-ochi。c中把HUB的下行端口数目从默认值改为2。代码修改之后,重新编译、加载到内核。

4MiniGUI在ARM221目标板上的移植4。1MiniGUI的体系结构MiniGUI是一种针对嵌入式设备的、跨操作系统的、轻量级的图形用户界面支持系统。从整体结构上看,MiniGUI是分层设计的。在最底层,图形抽象层(GAL:GraphicAbstractLayer)和输入抽象层(IAL:InputAbstractLayer)提供底层图形设备接口GDI(GDI:GraphicDeviceInterface)及输入设备驱动,Pthread(POSIX标准线程)用于提供内核级线程支持的C函数库;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是应用编程接口(API:ApplicationProgramingInterface)。MiniGUI的这种分层体系结构,大大方便了其在目标系统上的移植。

4。2MiniGUI的移植移植MiniGUI主要是根据具体的硬件平台定制或移植GAL引擎和IAL引擎,主要包括以下三个方面的工作。①GAL引擎的移植。MiniGUI可支持多种GAL引擎,包括对Framebuffer引擎的支持。因此,对于目标板ARM221来说,显示设备为LCD,相应的驱动程序已开发完成,这里只需要在配置文件MiniGUI。cfg中修改gal_engine=fbcon即可。②IAL引擎的移植。MiniGUI可支持多种IAL引擎,包括USB鼠标、键盘引及部分触摸屏引擎。

对于目标板ARM221来说,其软硬件方面都已支持USB鼠标、键盘,故这里只需在配置文件MiniGUI。cfg中修改ial_engine=console、mdev=/dev/PS2即可。③交叉编译MiniGUI的库文件、资源文件、应用程序,并制作根文件系统下载到目标板系统上运行。移植完成后,板载MiniGUI的运行情况如图3。

5总结本文介绍了一种基于ARMLinux的图形用户界面平台的设计过程。实验表明,该平台运行稳定可靠,在应用系统中只需根据实际需求做上层应用软件实现即可。

本文作者创新点:从整体角度,对嵌入式GUI开发平台进行分析研究,选用了性能可靠的ARM、开放源代码的Linux及轻型嵌入式GUI支持库MiniGUI,完成了系统的软硬件设计。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top