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

    文章

    770

    浏览量

    47229
  • Framebuffer
    +关注

    关注

    0

    文章

    7

    浏览量

    8000

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

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

收藏 人收藏

    评论

    相关推荐

    请问怎样去设计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次下载

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

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

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

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

    编写Small RTOS51 的驱动程序

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

    I2C总线驱动程序的实现

    I2C总线驱动程序的实现 I2C 驱动程序的简介本驱动程序为标准的51 系列CPU 编写,让CPU 模拟成一个I2C 总线主器件,并部分支
    发表于 09-26 17:25 5539次阅读
    I2C总线<b class='flag-5'>驱动程序</b>的实现

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

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

    Linux设备驱动程序编写

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

    S3C2410下LCD驱动程序移植及GUI程序编写

    我以一个实例来叙述S3C2410下一个驱动程序编写(本文的初始化源码以华恒公司提供的s3c2410fb.c为基础)及简单的GUI程序编写
    发表于 02-15 15:30 50次下载
    S3C2410下LCD<b class='flag-5'>驱动程序</b>移植及GUI<b class='flag-5'>程序</b><b class='flag-5'>编写</b>

    Linux系统网络驱动程序编写

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

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

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

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

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

    系统芯片设计—驱动程序(Driver)

    由于硬件驱动程序与硬件设备紧密相关,硬件驱动程序通常由系统芯片厂商提供。硬件厂商根据硬件特性编写硬件驱动程序。硬件驱动程序所需实现的接口和功
    的头像 发表于 08-12 14:48 3592次阅读

    如何编写ADX122驱动程序

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