嵌入式Linux下的LCD驱动程序设计与实现

欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入

  2.3.4 Framebuffer设备驱动程序的设计

  驱动程序主要完成的工作有以下5部分:

  (1)编写初始化函数

  Framebuffer驱动首先要初始化LCD控制器,通过相关寄存器来设置LCD相对应的显示模式和颜色数,然后分配显示缓冲区。通常用vmall-oc()函数分配一段连续空间,缓冲区的大小可以用“点阵行数×点阵列数×一个像素的位数/8”计算得到。

  如果使用模块化加载方式,加载LCD驱动模块时,系统调用fb_init()函数。卸载LCD驱动模块时,系统首先调用unregister_framebuffer()取消注册,然后释放显示缓冲区的内存。

  (2)编写成员函数

  (3)读/写(read/write)

  完成对帧缓冲区的读写操作。

  (4)映射(map)

  Linux有内核空间和用户空间,平时工作在保护模式,每个应用程序进程都有自己的虚拟地址空间,应用程序不能直接访问物理缓冲地址。但是,Linux在文件操作接口(file_operations)中提供了地址映射(mmap)操作,它可以将文件的内容映射到用户空间,这样用户就可以通过读写这段地址来访问缓冲区,并在屏幕上绘图。

  (5)输入/输出控制

  设备文件的ioctl()调用可以读取和设置显示设备的参数,如分辨率、支持颜色数、屏幕大小等。

  3 结束语

  在编写完驱动程序后,将该驱动程序以加载模块的方式进行编译,并将编译好的LCD设备驱动下载到目标板上,通过编写一个简单的测试Framebuffer设备驱动的应用程序,实现了设备的打开、关闭、内存映射和iotcl等具体操作,完成了在LCD液晶屏不同行上绘制不同颜色,通过编译此程序,在目标板上运行,即可在LCD上显示彩色条纹,这就完成了驱动程序的设计要求。

[1][2]

第一个青春是上帝给的;第二个的青春是*自己努力的

嵌入式Linux下的LCD驱动程序设计与实现

相关文章:

你感兴趣的文章:

标签云: