首页 > 资讯 > 产业政策

Framebuffer 驱动程序框架

人阅读 2024-05-11 16:44:42

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

主设备号

构造 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驱动程序

核心结构体:

分配 fb_info

framebuffer_alloc

设置 fb_info

var

fbops

硬件相关操作

注册 fb_info

register_framebuffer

4. 阅读源码

阅读 Android 和 Linux kernel 源码:

http://aospxref.com/

审核编辑 黄宇

LOT物联网

iot产品 iot技术 iot应用 iot工程

Powered By LOT物联网  闽ICP备2024036174号-1

联系邮箱:support1012@126.com