新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于嵌入式技术的MultiBus―CPU模块设计

基于嵌入式技术的MultiBus―CPU模块设计

作者:时间:2010-06-25来源:网络收藏

数组里每个元素的第1个值代表寄存器的名称,第2个值代表要设定的数值(1个十六进制的数)。32h寄存器用于设定LCD显示的水平像素数目,计算方法是把第2个值转换成十进制,加1再乘以8就得出水平像素。例如,0x63换算成十进制为99,加1乘以8就是800。38h和39h寄存器分别设置成0x57和0x02,就可以显示600的垂直分辨率。计算方法是以39h寄存器的bitO和bitl位为高位,38h寄存器的bitO~bit7为低位,组成的一个十六进制的数,再转换成十进制。除了要修改这3个寄存器外,34h和3Ah这两个寄存器也会对显示的分辨率有影响。
帧缓冲设备也属于字符设备,要通过“文件层-驱动层”的接口方式来对LCD进行驱动,就必须对File operationes数据结构的参数fb_ops进行填充,并实现其对应的成员函数。本系统在include/Linux/fb.h中定义了帧缓冲区的文件操作,部分代码如下:

这个结构中的每一个字段都必须指向驱动程序中实现特定操作的函数。对于不支持的操作,对应的字段可以被置为NULL,或留到后续开发时再添加。本中实现特定操作的成员函数的代码如下:

本文引用地址:http://www.eepw.com.cn/article/151769.htm



接下来把一些调用的函数写完整,编写好程序后用arm-linux-gcc编译驱动;然后对其动态加载,或静态将其编译到Linux内核;加载完程序后,就可以编写应用程序进行读/写等操作了。
4.2 MinilGUI的移植
开发环境中,独立的显示操作人机界面是非常必要的。它可以使系统对PC系统的依赖性降到最低,可以直接操作系统并显示运行结果。-采用标准的USB键盘、USB鼠标、VGA显示器作为人机交互界面,使用习惯类同于PC机,简易了开发者的开发过程,并且用户的使用过程也变得简单、快捷、易于操作。
MiniGUI是遵循GPL条款发布的自由软件,其目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。与QT/Em-bedded、MicoroWindows等其他GUI相比,MiniGUI的最显著特点就是轻型、占用资源少。据称MiniGUI能够在主频为30 MHz、仅有4 MB RAM的系统上正常运行,这是其他多种GUI所无法达到的。
MiniGUI在AT91RlM9200上的移植包括4个步骤:
①构建Linux交叉编译环境。通常使用的交叉编译工具是arm-Linux-gcc2.95.3版本。下载此交叉编译工具后在Linux内安装好,并且在PATH中添加/usr/loeal/arm-Linux/bin路径,交叉编译环境就构建好了。
②交叉编译MiniGUI,这是最关键的一步。首先从网上下载MiniGUI源程序包(包括库文件和资源文件),以及其他支持图形界面的源程序包;然后用上一步安装好的交叉编译工具对其进行编译,编译时可指定编译后库文件及资源文件的安装位置。
③拷贝MiniGUI资源到开发板。将第2步编译好的库文件及资源文件拷贝到开发板上。拷贝之前先用arm-Linux-strip命令清除文件中的调试信息,这样就使文件体积大大缩小,可以满足嵌入式系统的需要。
④板载Linux的MiniGUI环境配置。将第2步安装好的MiniGUI配置文件MiniGUI.cfg下载到板子中,并将其中fbcon的defaultmode设置为合适的显示模式。

结语
本文基于嵌入式技术了一种模块,能够满足各种嵌入式开发环境的要求。该模块软硬件均采用模块化,采用国外广泛应用的ModBus通信协议,可满足工业现场的测控需要。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭