zoukankan      html  css  js  c++  java
  • 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的释放:

    注册帧缓冲设备:

    注销帧缓冲设备:

    源码跟踪心得:

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

  • 相关阅读:
    Codeforces Round #353 (Div. 2)
    Codeforces Round #304 (Div. 2)
    Codeforces Round #250 (Div. 2)D
    Codeforces Round #368 (Div. 2)
    hdu4348区间更新的主席树+标记永久化
    poj3468线段树标记永久化
    Educational Codeforces Round 35 (Rated for Div. 2)
    一维数组取一部分
    序列化数组。
    禅道常识
  • 原文地址:https://www.cnblogs.com/xxg1992/p/6636374.html
Copyright © 2011-2022 走看看