LCD驱动
分为三部分:驱动程序架构、程序分析、程序实现
1.驱动程序架构:
从裸机程序可以知道LCD驱动有两部分组成:初始化(控制器初始化、端口初始化、非常重要–指明帧缓冲)、LCD图形显示(将图形数据写入帧缓冲) 所以说帧缓冲很重要
帧缓冲:简单讲就是内存中的一块区域,只是这些内存告诉 LCD控制器 这些的内存的地址,然后控制器就会从帧缓冲中一行一行的显示到LCD上面(裸机阶段)
在驱动中依然是存在这样的帧缓冲,使用工具 Img2Lcd 将bmp格式的图片设置成二进制的格式 ok.bin形式 ,将文件复制到开发板,然后cat ok.bin > /dev/fb0 就可以显示图片了,说明我们在linux中依然是帧缓冲的方式来控制LCD ,只不过在linux中帧缓冲的名字是/dev/fb0这样的设备文件的方式出现的(名字就是fb0)
Linux帧缓冲架构:应用程序就是将我们的相应的图形数据写入到/dev/fb0(帧缓冲)这个设备文件当中去,使用ls -l 可以看到是 字符设备;找到代码 fbmem.c这个文件,然后找到fbmem_init()这个函数,里面有一个注册设备文件的函数 register_chrdev(FB_MAJOR,”FB”