概述
百问网技术交流群,百万嵌入式工程师聚集地:
https://www.100ask.net/page/2248041
资料下载
coding无法使用浏览器打开,必须用git工具下载:
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
视频观看
百问网驱动大全
Framebuffer驱动程序框架
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
int fbidx = iminor(inode);
struct fb_info *info = = registered_fb[0];
例子2:
app: read()
---------------------------------------------------------------
kernel:
fb_read
int fbidx = iminor(inode);
struct fb_info *info = registered_fb[fbidx];
if (info->fbops->fb_read)
return info->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
百问网技术交流群,百万嵌入式工程师聚集地:
https://www.100ask.net/page/2248041
百问网技术论坛:
http://bbs.100ask.net/
百问网嵌入式视频官网:
https://www.100ask.net/index
百问网开发板:
淘宝:https://100ask.taobao.com/
天猫:https://weidongshan.tmall.com/
最后
以上就是暴躁世界为你收集整理的Linux系统驱动之Framebuffer驱动程序框架的全部内容,希望文章能够帮你解决Linux系统驱动之Framebuffer驱动程序框架所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复