ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:108KB ,
资源ID:1899548      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1899548.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于飞思卡尔imx6的VGA驱动模块开发.doc)为本站会员(gs****r)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于飞思卡尔imx6的VGA驱动模块开发.doc

1、1基于飞思卡尔 imx6 的 VGA 驱动模块开发摘要: 随着智能移动终端的发展,Android 和 Linux 操作系统越来越火爆。与此同时越来越多的半导体芯片制造厂不断的更新推出高性能的智能处理器,这就需要软件开发者不断的研究和优化每一个新的 ARM 处理器,提高软件的适应性使之能够完美的发挥出处理器的性能。以飞思卡尔半导体的 IMX6 为硬件系统平台,给出了嵌入式产品中 VGA 显示接口的实现方案,分析了 Linux 内核结构、驱动添加和注册流程、framebuffer 的处理机制及其在驱动中的应用方法,详细讲述了在 Linux2.6.28 内核下,基于 framebuffer 开发 V

2、GA 显示驱动的方法及步骤。 关键词: Linux 设备驱动;VGA;framebuffer;IMX6 中图分类号:TB 文献标识码:A doi:10.19311/ki.16723198.2016.12.087 1 引言 1.1 目的 编写基于 imx6 开发的移动终端上 VGA 的功能添加和优化的详细说明书是为了方便更多的人了解飞思卡尔 imx6 这个 ARM CortexTM-A9 架构处理器性能和架构,同时能够深入了解 VGA 的具体工作流程和结构,在了解 VGA 在内核如何工作的过程当中也会跟大家讲解一下 Linux 内核的基2本属性和结构以及内部驱动管理和调用。 1.2 项目背景 i

3、.MX6 是基于 ARM CortexTM-A9 架构的高扩展性多核系列嵌入式多媒体应用处理器,普遍使用于工业控制、车载电脑控制、智能移动终端、监控设备、机顶盒、KTV 点歌设备等方面。它的强力的 3D 图像处理引擎、支持多种格式的视频压缩解压功能和内部集成的电源管理等优点使得它成为优秀的智能设备开发平台,同时由于他支持高规格的 LCD 显示24XGA(20481536)或 21080p+WXGA(1280720),因此以前的一些能适用于 Linux 内核的 VGA 驱动需要我们嵌入式软件开发人员进行调整。 VGA 也就是 Video Graphic Array,即显示绘图阵列。它的接口是一个

4、模拟信号接口,在显示领域成为了一种成熟通用的显示器标准接口,由于它的通用性和高性能适应性被各种规格的显示器在硬件上使用和支持。在当今 PC 机以及各种显示和控制设备中 VGA 得到大众的欢迎,因此在进行嵌入式软件开发中 VGA 驱动成为我们调试和开发的重中之重。本文以 Linux2.6 内核和飞思卡尔 IMX6 处理器为系统的软、硬件平台,详细论述了基于 framebuffer 技术开发 VGA 显示驱动程序的方法。 2 总体设计 2.1 软件描述 VGA 驱动模块结构包含:平台驱动、LCD 控制器驱动、外设驱动。进行 VGA 的嵌入式开发主要是为 Android 系统嵌入 VGA 功能模块让

5、我们的移动终端可以通过 VGA 接口外接显示器满足客户的要求,同时对 VGA 驱3动进行的优化能让我们的系统可以充分发挥出飞思卡尔 imx6 处理器强劲的图像处理和显示功能提高用户体验。 2.2 设计方法 在实现一个功能或者解决某一个问题的时候,我们要经过理论分析,推导,简化,逐步达到目的,因此我们首先应该分析 VGA 驱动结构和工作流程,抓住关键点预计如何优化显示效果,其次分析如何添加驱动到Linux 内核使 LCD 能够正常显示智能移动终端通过 VGA 传输的信号,最后结合 VGA 驱动和 LCD 优化显示画面,让 imx6 处理器的优秀性能能够发挥出来。 2.3 软件结构 3 模块设计说

6、明 3.1 平台驱动模块 3.1.1 设备定义功能模块 (1)设备定义模块描述。 通过设置 platform_device 结构变量 mxc_fb_device 定义设备。 (2)输入、输出。 3.1.2 设备注册功能模块 (1)模块描述。 向系统注册已经被定义的设备,注册状态可被其他模块检测。 (2)模块接口关系。 注册:注册平台设备。 查询调用:被相关函数查询设备注册状态,并自动调用 probe 函数。4(3)输入输出。无。 (4)函数。 3.2LCD 控制器模块 3.2.1 定义、注册平台设备驱动模块 (1)模块描述。 注册和定义 LCD 控制器的设备驱动。 (2)模块接口关系。 已经被

7、定义和注册的设备驱动可以被调用。 (3)函数。 4 部分模块功能详细设计 4.1framebuffer 数据结构 Framebuffer 程序是 Linux2.6.x 内核中出现的一种驱动程序接口。它把一些显示设备抽象描述成一个缓冲区域,由于 Linux 不像 Windows那样能够直接调用显卡驱动因此 framebuffer 就提供了一个沟通内存和显卡的桥梁。用户直接通过定义好的接口直接访问显卡,这样就不需要知道底层的操作和调用。 Framebuffer 在 Linux 内核中一把包含于两个文件 fb.h 和fbmen.c。其中 fbmen.c 主要提供 LCD 驱动的通用文件操作接口,而

8、fb.h中包含有很多重要的宏定义和结构体。在结构体中有些是我们需要注意和优化的如: (1) struct fb_fix_screeninfo,这个结构体主要用来描述显卡5自身的属性,包含标识符、显示数据缓存地址、显示数据类型等,在显卡被设定模式后创建,一旦系统开始运行之后,该结构体的值就不能被我们改动。 (2) struct fb_var_screeninfo,此结构主要用来描述显卡的一般特性,比如虚实分辨率,以及两者之间的 offset 等,也就是说,这个结构体可以决定我们所能驱动的外接显示屏的尺寸。 (3) struct fb_cmap,主要用来描述设备无关的颜色映射信息。可以通过FBIO

9、GETCMAP 和 FBIOPUTCMAP 对应的 ioctl 操作设定或获取颜色映射信息。4.2 驱动的注册于注销 从 Linux2.6.x 内核提供的平台驱动机制为了方便内核管理把设备和驱动用 platform_device 和 platform_driver 来表示,其中platform_device 表示设备而 platform_driver 用来注册驱动。设备驱动是给用户的程序提供系统调用的接口,让用户能够直接通过接口来驱动硬件设备而不用深入的了解硬件底层代码。内核驱动管理机制提供了两个函数给我们进行注册或者注销我们特定平台的 LCD 驱动程序。int register_frameb

10、uffer(struct fb_info *fb_info)用于注册该驱动;int unregister_framebuffer(struct fb_info *fb_info)则用于注销该驱动。几乎所有的底层设备驱动所要做的事情就是填充 fb_inf o 结构然后利用上述的两个函数向系统注册或注销它。 5 总结 经测试,我的 VGA 驱动程序在 IMX6 平台上能够成功添加和实现。文6中给出了 VGA 驱动的整体架构并对一些主要的工作模块和机制进行了详细的讲解,同时对主要模块的设计思想和实现方法进行了详细的分析讨论。我在实现 VGA 模块的开发和移植过程中通过阅读大量的相关资料,听取指导老师

11、的一些建议,对 Linux 下 ARM 嵌入式开发积累了大量的经验,大大的提高了我的解决调通驱动的能力,加深了对 Android 的整体架构的理解,知识面的不足也充分暴露出来亟待改正。 参考文献 1王振丽.Android 底层开发技术实战详解内核、移植和驱动M.北京:电子工业出版社,2012, (8). 2 陈强.Android 底层接口与驱动开发技术详解M.北京:中国铁道出版社,2012 , (8). 3郭小梅.基于 mx51 的 VGA 驱动开发J.电脑编程技巧与维护,2011, (08). 4(美国)ChristopherHallinan.嵌入式 Linux 开发M.北京:人民邮电出版社,2008. 5Robert Love,陈莉君,康华.Linux 内核设计与实现M.北京:机械工业出版社,2011.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。