
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于嵌入式linux的图形界面显示系统的设计在系统这个it产业的新领域, 以其所具备的稳定、高效、易定制、易裁减、硬件支持广泛的特点,结合其免费、源码开放的特征。使得linux在嵌入式操作系统中的地位越来越重要。越来越多的嵌入式系统,包括 pda、wap 手机等等系统均要求提供全功能的 web 扫瞄器。这包括 html 的支持、javascript 的支持,甚至包括 java 虚拟机的支持。而这一切都要求有一个高性能、高牢靠的 gui 的支持。这些系统普通不希翼建立在浩大累赘的、十分消耗系统资源的操作系统和 gui 之上,比如 windows 或 x window。但是,在浮现 linux 系
2、统之后 gui 仍然是一个问题。关键是 x window 太过浩大和臃肿。是专为无存储器管理单元的处理器定制的嵌入式linux操作系统。其内嵌的microwindow为嵌入式系统图形界面提供了良好的支持。2 系统的组成结构基于uclinux的嵌入式图形界面显示系统分为软件和硬件两大部分。软件由uclinux、framebuffer驱动程序和microwindow三部分组成。motorola嵌入式cpu 5272、epson的13506 控制器和truly公司的mct-g320240dncw液晶显示屏组成图形界面显示硬件系统。结构1所示。硬件设计环境:开发板是motorola 5272c3,uc
3、linux内核版本号是2.4.17。3 microwindow的架构microwindow是一种轻量级的gui,具有轻型、占用资源少、高牢靠性的特点。microwindow 是一个十分适合于工业控制实时系统以及嵌入式系统的可定制的、小巧的图形用户界面支持系统。microwindow是一种分层设计的架构。最底层是一组屏幕、鼠标/、键盘的抽象接口,不依靠任何特别的硬件。中间层是可移植的图形引擎。最高层是各种api,供图形应用程序调用。目前有两种api,一种是ecma apiw,其次种是nano-x apis.。这些api与win32和x window系统基本上兼容,使应用程序移植十分简单。在ucl
4、inux下microwindow最底层的screen 抽象接口建立在linux framebuffer 设备基础上。framebuffer device 是对图形显示硬件设备的抽象,它代表视频硬件的帧缓存。本文将重点研究uclinux下针对详细硬件环境如何设计其framebuffer设备驱动程序。4 framebuffer设备驱动程序的设计linux下设备分为字符设备、块设备和网络设备接口三大类。那么framebuffer设备属于哪一类呢?刚开头设计时简单使人困窘。其实对用法者而言,帧缓冲设备也就是framebuffer device和名目/dev下的其他设备没有区分。它是一个字符设备,用法主
5、设备号29,次设备号用于帧缓冲设备之间的区别。例如:0/dev/fb0 first frame buffer1=/dev/fb1 second frame buffer31=/dev/fb31 32nd frame buffer031就是次设备号帧缓冲驱动程序主要依赖四个数据结构。这些结构定义在 include/linux/fb.h程序内。它们分离是fb_info、fb_var_screeninfo、fb_fix_screeninfo和fb_monospecs。后三个结构可以在用户空间拜访,结构 fb_info只能在内核空间拜访。结构 fb_fix_screeninfo定义了视频板卡硬件的某些
6、固定的特性。这些特性在硬件初始化时就被定义了以后不得修改。在这个结构体中最重要的成员是smem_len和line_length。前者指示显存的大小,后者提供了一个显示行的byte统计数,使显存指针很便利的移到下一显示行。结构fb_var_screeninfo定义了视频硬件一些可变的特性。这些特性在程序运行期间可以由应用程序动态转变。因为篇幅有限在此只对这个结构体中主要的成员作出说明,具体说明请参见fb.h。成员变量xres 和 yres定义在显示屏上真切显示的辨别率。而xres_virtual和yres_virtual是虚拟辨别率,它们定义的是显存辨别率。比如显示屏垂直辨别率是400,而虚拟辨
7、别率是800。这就意味着在显存中存储着800行显示行,但是每次只能显示400行。但是显示哪400行呢?这就需要另外一个成员变量yoffset,当yoffset0时,从显存0行开头显示400行,假如yoffset30,就从显存31行开头显示400行。在这四个结构中最重要的结构就是fb_info,它只能在内核空间拜访。其内部定义了struct fb_ops, 结构fb_ops成员就是由一系列framebuffer 操作函数组成。结构fb_monospecs在2.5.x内核下才会被采纳,在目前内核下不用法。如前所述就用法者而言,帧缓冲设备和普通的字符设备没有区分。因此写视频硬件的设备驱动程序就有两种
8、挑选,一种是把视频硬件抽象成普通的字符设备,驱动程序的写法和普通的字符设备驱动类似。其次种就是帧缓冲设备的驱动程序的编写。第一种办法不规范,而且实现功能有限,故不倡导。下面用与字符驱动程序类比的办法介绍如何编写帧缓冲驱动程序。字符驱动程序用函数register_chrdev向内核注册设备。register_chrdev需要三个参数,参数一是主设备号,参数二是对应与参数一主设备号的驱动程序名;参数三用来记下驱动程序实际执行操作的函数指针,它指向struct file_operation。编写字符驱动程序的主要工作就是编写各个子函数并填写file_operation各个域。当用户进程利用系统调用对
9、设备文件举行操作时,系统通过设备文件的主设备号找到相应的设备驱动程序。然后读取这个数据结构相应的操作函数指针,接着就把控制权交给这个函数。这就是linux驱动程序工作原理。帧缓冲设备驱动程序与此类似,其调用register_framebuffer注册一个framebuffer设备。它惟独一个参数就是前面介绍的struct fb_info, 其内部定义了结构成员fb_ops。编写帧缓冲驱动程序主要就是编写fb_ops各个成员函数。与字符驱动设备不同的是帧缓冲驱动程序并不实现ioctl调用。帧缓冲驱动程序的初始化函数在linux/drivers/video/fbmem.c中记下。全部的帧缓冲驱动程
10、序的ioct调用由fbmem.c统一实现。由fbmem.c按照当前正在工作的帧缓冲设备提供ioctl调用。5 硬件的设计5272是motorola公司coldfire系列嵌入式cpu,在motorola公司嵌入式cpu中属于中低档产品。低档不等于低效,在主频66m时可以达到63,临近mpc860的mips。并且外围电路接口丰盛,在coldfire系列中集成度最高。5272是一种32位同步数据地址总线,总线传输终止支持同步终止和异步终止。在5272与外围器件总线传输周期中,利用ta信号可以在总线传输周期插入等待时钟周期。实现总线传输的异步终止。5272总线接口用法bs0bs3四个信号显示当前总线
11、周期数据总线宽度。5272的i/o空间是内存映射的,所以没有特地的i/o地址空间。由于5272没有mmu单元,所以5272的内存空间是物理地址挺直寻址。液晶屏控制器是epson公司的13506。这是一款lcd/crt/tv图形控制器。cpu接口广泛。拥有16bit宽度的edo显存接口,显存最大可达2mbytes。在16bpp的状况下最大辨别率可达640480。支持虚拟显示,即显示图像尺寸可以大于屏幕实际尺寸。下图是coldfire 5272 cpu 与 epson13506之间的接口电路暗示图。epson13506的cpu接口数据总线宽度是16位。5272是大印第安字节序,当总线宽度是16位时,数据总线高16位有效。epson13506 m/r管脚用来控制当前读写是对显存的读写还是对13506 i/o寄存器的读写,5272地址线a21对其举行控制。这样在5272 cs6的地址空间中,地址21位是1就是显存的地址,为0就是13506 i/o寄存器的地址。5272地址总线a0并未接到epson13506 ab0管脚上,这是因为在epson13506 cpu接口模式 generic1状况下,epson13506 ab0管脚必需接高电平。这样就无法实现对字节的寻址。为了实现对字节的寻址,可以通过一片举行规律
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年川南幼儿师范高等专科学校高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年山西管理职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山西体育职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年宜春职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年安徽广播影视职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年宁德职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年宁夏民族职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年宁夏体育职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年天津铁道职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- ASNT培训课件教学课件
- 2024年专业技术人员继续教育考试必考100题含答案(完整版)
- 新版人教版高中英语选修一、选修二词汇表
- 江苏省南京市联合体2023-2024学年七年级下学期期中英语试卷
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 2024年中国人保招聘笔试参考题库附带答案详解
- 2024年共青团入团考试题目及答案
- 提高旅游导游服务技能的培训课程
- 展厅维保方案
- 酒店贷款报告
- 小学三年级下册信息技术全册教案
- 铁路机车电工
评论
0/150
提交评论