基于ARM&Linux图形用户界面开发平台的设计
总线设备、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,完成了系统的软硬件设计。
开发平台 设计 用户界面 图形 ARM&Linux 基于 相关文章:
- 革新2410D开发板试用手记(04-21)
- 基于嵌入式系统的手机编程开发平台(07-30)
- 基于Mobile的手机流媒体实时图像浏览客户端的软件设计(09-25)
- 多种3G基站要求的DSP开发平台(03-27)
- 单片机应用开发中的平台设计(06-28)
- 基于ARM的嵌入式Linux开发平台(06-06)