- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于飞思卡尔imx6的VGA驱动模块开发.doc
基于飞思卡尔imx6的VGA驱动模块开发
摘要:
随着智能移动终端的发展,Android和Linux操作系统越来越火爆。与此同时越来越多的半导体芯片制造厂不断的更新推出高性能的智能处理器,这就需要软件开发者不断的研究和优化每一个新的ARM处理器,提高软件的适应性使之能够完美的发挥出处理器的性能。以飞思卡尔半导体的IMX6为硬件系统平台,给出了嵌入式产品中VGA显示接口的实现方案,分析了Linux内核结构、驱动添加和注册流程、framebuffer的处理机制及其在驱动中的应用方法,详细讲述了在Linux2.6.28内核下,基于framebuffer开发VGA显示驱动的方法及步骤。
关键词: Linux 设备驱动;VGA;framebuffer;IMX6
中图分类号:TB
文献标识码:A
doi:10.19311/j.cnki2016.12.087
1引言
1.1目的
编写基于imx6开发的移动终端上VGA的功能添加和优化的详细说明书是为了方便更多的人了解飞思卡尔imx6这个ARM CortexTM-A9架构处理器性能和架构,同时能够深入了解VGA的具体工作流程和结构,在了解VGA在内核如何工作的过程当中也会跟大家讲解一下Linux内核的基本属性和结构以及内部驱动管理和调用。
1.2项目背景
i.MX6是基于ARM CortexTM-A9架构的高扩展性多核系列嵌入式多媒体应用处理器,普遍使用于工业控制、车载电脑控制、智能移动终端、监控设备、机顶盒、KTV点歌设备等方面。它的强力的3D图像处理引擎、支持多种格式的视频压缩解压功能和内部集成的电源管理等优点使得它成为优秀的智能设备开发平台,同时由于他支持高规格的LCD显示2×4XGA(2048×1536)或2×[1080p+WXGA(1280×720)],因此以前的一些能适用于Linux内核的VGA驱动需要我们嵌入式软件开发人员进行调整。
VGA也就是Video Graphic Array,即显示绘图阵列。它的接口是一个模拟信号接口,在显示领域成为了一种成熟通用的显示器标准接口,由于它的通用性和高性能适应性被各种规格的显示器在硬件上使用和支持。在当今PC机以及各种显示和控制设备中VGA得到大众的欢迎,因此在进行嵌入式软件开发中VGA驱动成为我们调试和开发的重中之重。本文以Linux2.6内核和飞思卡尔IMX6处理器为系统的软、硬件平台,详细论述了基于framebuffer技术开发VGA显示驱动程序的方法。
2总体设计
2.1软件描述
VGA驱动模块结构包含:平台驱动、LCD控制器驱动、外设驱动。进行VGA的嵌入式开发主要是为Android系统嵌入VGA功能模块让我们的移动终端可以通过VGA接口外接显示器满足客户的要求,同时对VGA驱动进行的优化能让我们的系统可以充分发挥出飞思卡尔imx6处理器强劲的图像处理和显示功能提高用户体验。
2.2设计方法
在实现一个功能或者解决某一个问题的时候,我们要经过理论分析,推导,简化,逐步达到目的,因此我们首先应该分析VGA驱动结构和工作流程,抓住关键点预计如何优化显示效果,其次分析如何添加驱动到Linux内核使LCD能够正常显示智能移动终端通过VGA传输的信号,最后结合VGA驱动和LCD优化显示画面,让imx6处理器的优秀性能能够发挥出来。
2.3软件结构
3模块设计说明
3.1平台驱动模块
3.1.1设备定义功能模块
(1)设备定义模块描述。
通过设置 platform_device结构变量mxc_fb_device定义设备。
(2)输入、输出。
3.1.2设备注册功能模块
(1)模块描述。
向系统注册已经被定义的设备,注册状态可被其他模块检测。
(2)模块接口关系。
注册:注册平台设备。
查询调用:被相关函数查询设备注册状态,并自动调用probe函数。
(3)输入输出。无。
(4)函数。
3.2LCD控制器模块
3.2.1定义、注册平台设备驱动模块
(1)模块描述。
注册和定义LCD控制器的设备驱动。
(2)模块接口关系。
已经被定义和注册的设备驱动可以被调用。
(3)函数。
4部分模块功能详细设计
4.1framebuffer数据结构
Framebuffer程序是Linux2.6.x内核中出现的一种驱动程序接口。它把一些显示设备抽象描述成一个缓冲区域,由于Linux不像Windows那样能够直接调用显卡驱动因此framebuffer就提供了一个沟通内存和显卡的桥梁。用户
文档评论(0)