lcd

lcd画面显示是由一个个像素点发光展示,如800X480的屏幕,那么有800480=307200个像素点,每个像素点有RGB三个颜色,那么有3072003=921600字节,那么lcd的显存大小为921600字节
RGB一般都是888或者565,如果有透明度的颜色,那么就是8888,一般称为真彩色

裸机中我们可以随意的分配显存,但是在 Linux 系统中内存的管理很严格,显存是
需要申请的,不是想用就能用的。而且因为虚拟内存的存在,驱动程序设置的显存和应用程
序访问的显存要是同一片物理内存
通过操作显存来操作操作lcd

framebuffer

framebuffer(帧缓冲)是Linux系统中一个重要的图形子系统组件,是应用程序操作显存的一种机制。而操作显存可以操作lcd
主要作用如下:

  1. 抽象硬件显示接口

    • framebuffer为应用程序提供了一个统一的显示接口,屏蔽了底层不同显示硬件的差异
    • 应用程序无需关心具体的LCD控制器型号和硬件细节
  2. 内存映射机制

    • 将显存映射到应用程序的虚拟地址空间
    • 允许应用程序直接通过内存读写操作来控制屏幕显示内容
    • 保证驱动程序和应用程序使用同一片物理内存
  3. 简化图形操作

    • 应用程序可以像操作普通内存一样操作显存
    • 通过简单的内存拷贝就能实现图像显示
    • 支持各种颜色格式(如RGB565、RGB888等)
  4. 系统级支持

    • Linux内核提供标准的framebuffer驱动框架
    • 支持多种显示设备和LCD控制器
    • 提供设备节点(如/dev/fb0)供应用程序访问