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

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

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

摘要:本文首先介绍了自行研制的基于AT91RM9200的ARM板ARM221及显示模块的硬件电路设计;其次描述了嵌入式Linux系统在目标板ARM221上移植过程及界面相关硬件驱动程序的开发;最后移植了开源嵌入式界面系统MiniGUI到目标板ARM221。

1引言嵌入式产品如PDA、机顶盒、WAP手机等迅速地普及,给广大的非专业用户带来了极大方便。同时,这些产品都需要有高性能、稳定可靠的GUI(图形用户界面)来提供支持。

因此,在嵌入式产品的开发过程中,关键的一步就是嵌入式图形用户界面开发平台的设计。本文介绍了一种基于ARM、Linux及MiniGUI的图形用户界面系统开发平台的设计过程。

2硬件平台设计及开发环境的搭建2。1硬件平台设计硬件平台ARM221为自行研发的基于AT91RM9200处理器芯片的ARM板,其核心板结构图如图1所示。AT91RM9200处理器是一款基于ARM920T内核的高性价比、低功耗、32位的ARM芯片,时钟频率为180Mhz,运算速度可达到200MIPS。AT91RM9200具有存储器管理单元(MMU)、16KB的SRAM和128KB的ROM以及外部总线接口(EBI),支持SDRAM、静态存储器、BurstFlash、CompactFlash、SmartMedia以及NANDFlash,还集成了USB控制器、以太网控制器、RTC、SPI、I2C等丰富的外围设备。AT91RM9200处理器内部没有集成LCD控制器,因而需要配备专用的显示控制器,才能实现LCD显示。

系统选用了一款应用比较广泛的LCD控制器S1D13506,它是EPSON大规模显示控制器家族中较新的一款。它的输出可以驱动VGA显示或者最大为800×600的点阵LCD显示屏,可以灵活地对各种不同的显示方式进行设置,功能非常强大,可以和目前市场上流行的多种CPU总线兼容。另外显示器选用了一款东华的320×240-16bppTFT-LCD。S1D13506的PC卡总线接口可以很方便地与AT91RM920相连,其与总线接口信号相关的信号为:数据总线DB[15:0]、地址总线AB[21:1]、片选信号CS、高位读写信号WE1、写使能信号WE0、输出读使能命令信号RD、选择读写显存还是读写S1D13506寄存器信号M/R。

AT91RM9200的EBI总线接口用以确保多个外设与基于ARM器件的内置控制存储器之间实现正确数据传输。静态存储器、SDRAM及BurstFlash控制器均可作为EBI上的外部存储控制器。EBI拥有8个片选信号(NCS[7:0]),可处理多达8个外设的数据传输;数据通过8位或者16位数据总线进行传输;地址总线高达26位。在16位总线宽度下,EBI与显示控制器相关的总线接口信号有:数据总线DB[15:0]、地址总线AB[21:1]、片选信号NCS2(对应的地址为0x30000000)、使能高字节读与写操作信号NWR1、使能字节或半字节读/写信号NRD/NWR0及复位信号NRST。由上述接口信号的定义分析得出,S1D13506与AT91RM9200的总线连接图如上图2所示。

2。2交叉编译环境的搭建移植Linux前,需要在宿主机上建立ARM-Linux的交叉编译环境,社区的开发者和一些芯片厂商已经编译出了常用体系结构的工具链,安装简单,使用这些工具链,可以大大减少工作量。针对移植的Linux内核版本2。4。26,选用cross-2。95。3。tar。bz2工具链。另外,MiniGUI的交叉编译,还需要一些字体、图形等库文件的支持,这些库文件包括:zlib-1。2。3。tar。gz(该库是后面几个库编译的基础)、libpng-1。0。10rc1。tar。gz(png图形)、jpegsrc。v6b。tar。gz(jpeg图形)、freetype-1。3。1。tar。gz(TrueType字体)等,在进行MiniGUI交叉编译之前,需要把这些库安装到交叉编译器中去。安装过程比较简单,可查找相关资料。

3嵌入式Linux系统移植及相关驱动程序开发3。1嵌入式Linux系统移植移植嵌入式Linux系统是实现嵌入式系统图形用户界面的系统软件核心。嵌入式Linux系统包括引导程序(Bootloader)、内核(kernel)和根文件系统三个部分。嵌入式Linux移植到特定的硬件平台上,一般需要以下五个步骤:①前期准备包括从上下载嵌入式Linux的源码包、搭建交叉编译开发环境、配置主机的开发环境等;②配置Bootloader,并将其烧写到目标平台的Flash上,使其能正常的启动内核;③配置和编译Linux内核,首先要对源码进行一定的修改,并将其移植到目标平台上,然后再根据自己的硬件资源进行裁减,使内核达到最优;④制作RAMDISK来挂接Linux的根文件系统,并在RAMDISK上添加自己的应用程序;⑤部署Linux系统使目标板脱离交叉开发环境,直接在目标机上本地启动运行。由于篇幅所限,关于Linux的具体移植过程将不做详细介绍。

3。2相关设备驱动的开发设备驱动在Linux内核中扮演着特殊的角色。它们是一个个独立的“黑盒子”,使某个特定硬件响应

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

网站地图

Top