资料介绍
随着嵌入式Linux的迅速发展,由于其没有昂贵的版权费,完全开放源代码,可裁减性与可移植性,因此是开发嵌入式产品的优秀操作系统平台。设备驱动程序是Linux内核的重要组成部分,运行在Linux内核底层,在内核源代码中占较大比例,驱动程序开发逐渐成为嵌入式软件开发中一项重要工作。应项目设计的需要完成了嵌入式Linux下的LCD驱动程序设计。
1 Linux下设备驱动程序
驱动程序从字面上可以理解为一类程序,这类程序的目的一般是驱动硬件正常工作,所以通常所说的驱动程序都是针对特定的硬件来编写的。Linux设备驱动程序是为特定的硬件提供给用户程序的一组标准化接口,它隐藏了设备工作的细节。Linux系统下驱动程序是运行在内核态的,是和内核连接在一起的程序。如果运行在用户态的应用程序想控制硬件设备,必须通过驱动程序来控制。
Linux系统的设备分为3种类型,分别是字符设备、块设备和网络设备。文中所涉及的LCD驱动属于字符型设备驱动程序。在对字符设备发出读、写请求时,实际的硬件I/O一般就紧接着发生了。Linux系统访问设备就像访问文件一样,例如打开关闭设备系统调用open()和close()函数。在Linux内核中,字符设备使用struct file_operations结构来定义设备的各种操作集合。编写字符设备驱动程序,主要是实现str-uct file_operations结构中的各个函数。
2 基于FFamebuffer的LCD驱动程序设计
2.1 LCD简介
设计中采用的嵌入式微处理器是Samsung公司的S3C2410,LCD控制器主要用于传输显示数据和产生控制信号,用户只需通过读写一系列寄存器即可完成配置和显示控制,图1是S3C2410平台LCD控制器的结构图。
其各个信号描述及功能如表1所示。
2.2 Framebutfvr概述
Framebuffer即帧缓冲,是图形设备的一个提取或抽象,他把一些视频设备描绘成一个缓冲区,允许应用程序通过Framebuffer所定义的良好接口访问图形设备。Framebuffer是出现在Linux2.2.xx内核当中的一种驱动程序接口。Linux工作在保护模式下,所以用户态进程无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出Framebuffer这个设备供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象化,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象、统一的,用户不必关心物理显存的位置、换页机制等具体细节,这些由Framebuffer设备驱动完成。
2.3 驱动程序设计与实现
2.3.1 LCD驱动的模块加载与卸载
LCD作为一个相对独立的硬件单元,被认定为平台设备,在驱动模块加载和卸载函数中,就分别注册和注销对应的platform_driver。
2.3.2 LCD驱动的探测与移除函数
探测函数probe主要完成LCD控制器初始化的工作,包括对fb_info结构成员的初始化、内存分配、寄存器的配置、Framebuffer的注册等。模块卸载函数中对平台驱动的注销会导致其中移除函数的执行,这个函数释放显示缓冲区并注销帧缓冲设备。
1 Linux下设备驱动程序
驱动程序从字面上可以理解为一类程序,这类程序的目的一般是驱动硬件正常工作,所以通常所说的驱动程序都是针对特定的硬件来编写的。Linux设备驱动程序是为特定的硬件提供给用户程序的一组标准化接口,它隐藏了设备工作的细节。Linux系统下驱动程序是运行在内核态的,是和内核连接在一起的程序。如果运行在用户态的应用程序想控制硬件设备,必须通过驱动程序来控制。
Linux系统的设备分为3种类型,分别是字符设备、块设备和网络设备。文中所涉及的LCD驱动属于字符型设备驱动程序。在对字符设备发出读、写请求时,实际的硬件I/O一般就紧接着发生了。Linux系统访问设备就像访问文件一样,例如打开关闭设备系统调用open()和close()函数。在Linux内核中,字符设备使用struct file_operations结构来定义设备的各种操作集合。编写字符设备驱动程序,主要是实现str-uct file_operations结构中的各个函数。
2 基于FFamebuffer的LCD驱动程序设计
2.1 LCD简介
设计中采用的嵌入式微处理器是Samsung公司的S3C2410,LCD控制器主要用于传输显示数据和产生控制信号,用户只需通过读写一系列寄存器即可完成配置和显示控制,图1是S3C2410平台LCD控制器的结构图。
其各个信号描述及功能如表1所示。
2.2 Framebutfvr概述
Framebuffer即帧缓冲,是图形设备的一个提取或抽象,他把一些视频设备描绘成一个缓冲区,允许应用程序通过Framebuffer所定义的良好接口访问图形设备。Framebuffer是出现在Linux2.2.xx内核当中的一种驱动程序接口。Linux工作在保护模式下,所以用户态进程无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出Framebuffer这个设备供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象化,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象、统一的,用户不必关心物理显存的位置、换页机制等具体细节,这些由Framebuffer设备驱动完成。
2.3 驱动程序设计与实现
2.3.1 LCD驱动的模块加载与卸载
LCD作为一个相对独立的硬件单元,被认定为平台设备,在驱动模块加载和卸载函数中,就分别注册和注销对应的platform_driver。
2.3.2 LCD驱动的探测与移除函数
探测函数probe主要完成LCD控制器初始化的工作,包括对fb_info结构成员的初始化、内存分配、寄存器的配置、Framebuffer的注册等。模块卸载函数中对平台驱动的注销会导致其中移除函数的执行,这个函数释放显示缓冲区并注销帧缓冲设备。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式Linux的摄像头驱动程序设计与实现
- 细说嵌入式驱动程序设计
- 嵌入式Linux驱动程序开发
- 嵌入式RFID的驱动程序设计
- ARM11嵌入式系统Linux下LCD的驱动的设计
- 嵌入式Linux设备驱动程序开发基础知识总结免费下载 13次下载
- 嵌入式Linux的中断驱动程序设计 3次下载
- 基于Linux下的LCD驱动程序实现 12次下载
- 嵌入式Linux下CAN总线驱动程序设计.rar 51次下载
- Linux下的LCD驱动程序实现
- 基于嵌入式Linux的步进电机驱动程序设计
- 基于Linux的嵌入式LCD设计
- 嵌入式USB从设备驱动程序设计
- 嵌入式通信设备驱动程序设计标准化
- Linux中基于EP7312的LCD驱动程序设计
- 基于V4L技术和摄像头的Linux驱动程序的设计与实现 2811次阅读
- 在Linux系统中如何进行CGI的程序设计,有什么方法 1945次阅读
- 设计嵌入式驱动程序有什么窍门 2508次阅读
- 设计嵌入式驱动程序有哪些小窍门 2553次阅读
- 米尔科技LINUX设备驱动程序教程 1965次阅读
- 基于嵌入式软件的JNI技术应用解析 1020次阅读
- 嵌入式Linux内核的驱动程序开发是怎样的 1415次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1138次阅读
- 基于嵌入式Linux下的I2C设备驱动的总体思路与框架设计 3671次阅读
- 基于嵌入式Linux内核的系统设备驱动程序开发设计 1113次阅读
- 嵌入式系统开发中驱动程序设计的5个方法盘点 3057次阅读
- 基于嵌入式Linux的无线视频监控系统设计 3004次阅读
- 如何用嵌入式Linux系统编写键盘驱动 1312次阅读
- 基于FPGA嵌入式系统的设备驱动开发 2259次阅读
- 一种嵌入式Web服务器的设计方案 4151次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多