学习LCD驱动想来有两个多月了,但是觉得自己还是很混沌,还是在云里雾里,没什么条理。关于LCD如何将一张图片显示到屏幕上的这个问题一直困扰了我很久,最后面突然发现,其实我早就弄明白了这个数据时怎么流的,现总结如下:
用户程序通过系统调用void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);将fb映射到用户空间,然后用户程序就可以直接操作fb了,将图像数据以像素形式写入fb;fb并不对数据进行任何运算操作;然后由LCD DMA将fb中的数据写到LCD上显示。
请问各位大侠,是这样的吗?
还有我想问的几个问题是:用户将图像数据写入framebuffer后,是如何启动DMA操作的?通过framebuffer设置分辨率是设置fb_fix_screeninfo结构体里面哪些变量呢?一般在哪个函数里面实现?