0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Framebuffer 驱动程序框架

嵌入式开发星球 来源:嵌入式开发爱好者 作者:嵌入式开发爱好者 2024-05-11 08:49 次阅读

1. 怎么编写字符设备驱动程序

wKgaomY_EYWALQiBAAFocwCI-0c762.png

主设备号

构造 file_operations 结构体,填充 open/read/write 等成员函数

注册驱动:register_chrdev(major, name, &fops)

入口函数

出口函数

2. Framebuffer 驱动程序框架

分为上下两层:

fbmem.c:承上启下

实现、注册 file_operations 结构体

把 APP 的调用向下转发到具体的硬件驱动程序

xxx_fb.c:硬件相关的驱动程序

实现、注册 fb_info 结构体

实现硬件操作

调用关系:

例子1:
app:open("/dev/fb0",...)主设备号:29,次设备号:0
--------------------------------------------------------------
kernel:
fb_open
intfbidx=iminor(inode);
structfb_info*info==registered_fb[0];


例子2:
app:read()
---------------------------------------------------------------
kernel:
fb_read
intfbidx=iminor(inode);
structfb_info*info=registered_fb[fbidx];
if(info->fbops->fb_read)
returninfo->fbops->fb_read(info,buf,count,ppos);
src=(u32__iomem*)(info->screen_base+p);
dst=buffer;
*dst++=fb_readl(src++);
copy_to_user(buf,buffer,c)

3. 怎么编写Framebuffer驱动程序

核心结构体:

wKgZomY_EYWAcJCxAAEfM6MlzgU508.png

分配 fb_info

framebuffer_alloc

设置 fb_info

var

fbops

硬件相关操作

注册 fb_info

register_framebuffer

4. 阅读源码

阅读 AndroidLinux kernel 源码:

http://aospxref.com/

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    403

    浏览量

    17476
  • 驱动程序
    +关注

    关注

    19

    文章

    831

    浏览量

    48026
  • Framebuffer
    +关注

    关注

    0

    文章

    8

    浏览量

    8056
收藏 人收藏

    评论

    相关推荐

    2. 29 Framebuffer驱动程序框架 - 第1节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:50:46

    2. 29 Framebuffer驱动程序框架 - 第2节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:51:36

    2. 29 Framebuffer驱动程序框架 - 第3节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:52:26

    2. 29 Framebuffer驱动程序框架 - 第4节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:53:17

    2. 29 Framebuffer驱动程序框架 - 第5节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:54:07

    2. 29 Framebuffer驱动程序框架 - 第6节 #硬声创作季

    arm程序开发环境
    充八万
    发布于 :2023年08月16日 10:54:57

    请问怎样去设计Framebuffer驱动程序

    液晶显示器的功能有哪些?怎样去设计Framebuffer驱动程序
    发表于 04-27 06:03

    如何编写RK3288 framebuffer驱动程序

    Framebuffer驱动程序框架首先framebuffer是一个字符驱动设备,它分为上下两层:fbmem.c:中间承上启下实现、注册fil
    发表于 05-13 11:32

    rk3288 LCD驱动程序配置与分析

    一、Linux驱动程序框架Linux驱动程序 = 驱动程序框架 + 硬件编程之前已经学习了在QEMU编写了LCD
    发表于 05-13 14:42

    Linux驱动程序缺陷检测研究

    的Linux驱动程序缺陷检测框架,以及多性质制导的符号执行方法,支持针对多个缺陷性质的快速缺陷检测。在LLVM和KLEE的基础上实现了提出的框架和方法,并在实际的Linux驱动程序上开
    发表于 11-21 15:26 9次下载
    Linux<b class='flag-5'>驱动程序</b>缺陷检测研究

    微软发布开源框架驱动程序模块新框架

    为了方便开发人员为Windows编写驱动程序,微软昨天发布了一个开源框架驱动程序模块框架(DMF)。这个新框架将允许开发人员编写简单和结构化
    发表于 08-22 11:37 1134次阅读

    USB串行驱动程序Usbser

    适用于你的通信和 CDC 控制设备的 Microsoft 提供的内置驱动程序 (Usbser.sys)在Windows10中已使用内核模式驱动程序框架重新编写了该驱动程序,此
    发表于 11-05 08:00 11次下载

    Linux设备驱动程序的平台驱动程序和字符驱动程序介绍

    了解Linux设备驱动程序的基础知识,重点介绍平台驱动程序和字符驱动程序。 提出了简单的平台驱动程序实现和简单的字符驱动程序实现。
    的头像 发表于 11-27 06:32 4300次阅读

    如何使用Linux内核实现USB驱动程序框架

    Linux内核提供了完整的USB驱动程序框架。USB总线采用树形结构,在一条总线上只能有唯一的主机设备。 Linux内核从主机和设备两个角度观察USB总线结构。本节介绍 Linux内核USB驱动程序
    发表于 11-06 17:59 20次下载
    如何使用Linux内核实现USB<b class='flag-5'>驱动程序</b><b class='flag-5'>框架</b>

    怎么编写Framebuffer驱动程序

    Framebuffer 驱动程序框架 分为上下两层: fbmem.c:承上启下 实现、注册 file_operations 结构体 把 APP 的调用向下转发到具体的硬件
    的头像 发表于 03-22 09:13 555次阅读
    怎么编写<b class='flag-5'>Framebuffer</b><b class='flag-5'>驱动程序</b>