LCD驱动

数据结构

重要函数:

mmap:

1.运用层:



1void *mmap(void *addr, size_t length, int prot, int flags,
                  int fd, off_t offset);

功能:在进程的虚拟地址空间建立一个内存映射。
参数: addr :指定映射的起始地址,如果写NULL,系统自动分配
      length:映射的长度
        prot:指定映射区域的访问权限,不能和open的打开模式冲突
                PROT_EXEC :可执行
                PROT_READ :可读
                PROT_WRITE :可写
                PROT_NONE  :不可访问
       flags:指明了映射方式
                    MAP_SHARED  :共享方式,多个进程映射同一区域,应用层映射空间的修改会互相影响, msync或munmap函数调用时回写到内核空间内存。
                    MAP_PRIVATE :私有方式,多个进程映射同一区域,内核中先拷贝同一区域再映射,应用层的修改不会互相影响,不能回到回写到内核中拷贝前的内存。
         fd :文件描述符(普通文件或设备文件)
     offset :偏移量,必须页对齐。映射的开始地址= 文件首地址+偏移量
返回值:void * : 成功返回映射的虚拟地址,失败返回(void *)-1 宏名为:MAP_FAILED,置错误码


 【2int munmap(void *addr, size_t length);
 功能:取消映射
 参数:addr :已经映射的虚拟地址
     length :要取消映射的长度
返回值: int :成功返回0,失败返回-1,并置错错误码
  1. 驱动层:

核心层提供的接口:

fb_info的申请:

fb_info的释放:

注册帧缓冲设备:

注销帧缓冲设备:

源码跟踪心得:

注册及调用流程见思维导图。

原文地址:https://www.cnblogs.com/xxg1992/p/6636374.html