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

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

3天内不再提示

怎么编写Framebuffer驱动程序

嵌入式开发爱好者 来源:嵌入式开发爱好者 2024-03-22 09:13 次阅读

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

1020db28-e79e-11ee-a297-92fbcf53809c.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驱动程序

核心结构体:

10981756-e79e-11ee-a297-92fbcf53809c.png

分配 fb_info

framebuffer_alloc

设置 fb_info

var

fbops

硬件相关操作

注册 fb_info

register_framebuffer

审核编辑:黄飞

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

    关注

    19

    文章

    827

    浏览量

    47983
  • Framebuffer
    +关注

    关注

    0

    文章

    8

    浏览量

    8043

原文标题:Framebuffer 驱动程序框架

文章出处:【微信号:嵌入式开发爱好者,微信公众号:嵌入式开发爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Framebuffer 驱动程序框架

    1. 怎么编写字符设备驱动程序 主设备号 构造 file_operations 结构体,填充 open/read/write 等成员函数 注册驱动:register_chrdev(major
    的头像 发表于 05-11 08:49 763次阅读
    <b class='flag-5'>Framebuffer</b> <b class='flag-5'>驱动程序</b>框架

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

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

    如何编写RK3288 framebuffer驱动程序

    显示内存的物理地址和长度等。另外一个重要成员是fb_ops,其是LCD底层硬件操作接口集。如何编写Framebuffer驱动程序分配fb_info使用framebuffer_alloc
    发表于 05-13 11:32

    Windows XP驱动程序编写方法

    Windows XP驱动程序编写方法—Step by StepVS.NET+WIN XP DDK+DriverStudio3.2开发环境版1.  驱动程序的开发环境    本电子讲义可以作
    发表于 03-25 14:36 122次下载

    Windows98/2000驱动程序编写方法

    Windows98/2000驱动程序编写方法1.  驱动程序的开发环境对于VxD的开发,需要的开发环境是:Visual C++ 5.0/6.0Windosw 95DDK &nbs
    发表于 03-25 14:38 29次下载

    实时系统VxWorks下设备驱动程序编写详解

    实时系统VxWorks下设备驱动程序编写详解
    发表于 03-29 12:26 15次下载

    ARM Boot分析及驱动程序编写举例

    ARM Boot分析及驱动程序编写举例
    发表于 07-22 17:20 57次下载

    编写Small RTOS51 的驱动程序

    编写Small RTOS51 的驱动程序 函数的可重入我们在编写一个驱动程序之前要判断该函数是否为可重入函数。如果一个函数可能被
    发表于 09-26 17:05 1723次阅读

    Windows设备驱动程序编写时的主要问题及解决方案

    Windows设备驱动程序编写时的主要问题及解决方案 结合“通用高速PCI总线目标模块”的驱动程序设计,全面地讨论了Windows设备(特别
    发表于 05-03 11:58 1639次阅读

    Linux设备驱动程序编写

    本站提供的Linux设备驱动程序编写资料,希望对你的学习有帮助。 世界各地都有人在钻研Linux内核,大多是在写设备驱动程序。尽管每个驱动程序都不一样,而且你还要知道自己设备
    发表于 05-25 16:24 108次下载

    Linux系统网络驱动程序编写

    驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 1.2 编写驱动程
    发表于 11-07 10:40 0次下载

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

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

    如何为Linux编写用户空间设备驱动程序

    了解如何为Linux编写用户空间设备驱动程序。 用户空间驱动程序为某些设备提供内核空间驱动程序的替代方案
    的头像 发表于 11-22 07:04 3721次阅读

    如何编写基于ARM的裸机程序和基于Linux的驱动程序

    在嵌入式开发中,ADC应用比较频繁,本文主要讲解ADC的基本原理以及如何编写基于ARM的裸机程序和基于Linux的驱动程序
    的头像 发表于 09-13 09:25 3300次阅读
    如何<b class='flag-5'>编写</b>基于ARM的裸机<b class='flag-5'>程序</b>和基于Linux的<b class='flag-5'>驱动程序</b>

    如何编写ADX122驱动程序

    大概是能看的出来兼容adx112的,采用的是spi的接口,在这个章节我们主要讲是如何编写驱动程序,所以先跳过一些重要信息。
    发表于 08-02 14:59 1143次阅读
    如何<b class='flag-5'>编写</b>ADX122<b class='flag-5'>驱动程序</b>?