1. 怎么編寫字符設備驅(qū)動程序

主設備號
構造 file_operations 結(jié)構體,填充 open/read/write 等成員函數(shù)
注冊驅(qū)動:register_chrdev(major, name, &fops)
入口函數(shù)
出口函數(shù)
2. Framebuffer 驅(qū)動程序框架
分為上下兩層:
fbmem.c:承上啟下
實現(xiàn)、注冊 file_operations 結(jié)構體
把 APP 的調(diào)用向下轉(zhuǎn)發(fā)到具體的硬件驅(qū)動程序
xxx_fb.c:硬件相關的驅(qū)動程序
實現(xiàn)、注冊 fb_info 結(jié)構體
實現(xiàn)硬件操作
調(diào)用關系:
例子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驅(qū)動程序
核心結(jié)構體:

分配 fb_info
framebuffer_alloc
設置 fb_info
var
fbops
硬件相關操作
注冊 fb_info
register_framebuffer
4. 閱讀源碼
http://aospxref.com/
審核編輯 黃宇
-
框架
+關注
關注
0文章
404瀏覽量
18416 -
驅(qū)動程序
+關注
關注
19文章
869瀏覽量
50449 -
Framebuffer
+關注
關注
0文章
8瀏覽量
8406
發(fā)布評論請先 登錄
2. 29 Framebuffer驅(qū)動程序框架 - 第1節(jié) #硬聲創(chuàng)作季
2. 29 Framebuffer驅(qū)動程序框架 - 第2節(jié) #硬聲創(chuàng)作季
2. 29 Framebuffer驅(qū)動程序框架 - 第3節(jié) #硬聲創(chuàng)作季
2. 29 Framebuffer驅(qū)動程序框架 - 第4節(jié) #硬聲創(chuàng)作季
2. 29 Framebuffer驅(qū)動程序框架 - 第5節(jié) #硬聲創(chuàng)作季
2. 29 Framebuffer驅(qū)動程序框架 - 第6節(jié) #硬聲創(chuàng)作季
如何編寫RK3288 framebuffer驅(qū)動程序呢
rk3288 LCD驅(qū)動程序配置與分析
Linux驅(qū)動程序缺陷檢測研究
微軟發(fā)布開源框架驅(qū)動程序模塊新框架
USB串行驅(qū)動程序Usbser
Linux設備驅(qū)動程序的平臺驅(qū)動程序和字符驅(qū)動程序介紹
如何使用Linux內(nèi)核實現(xiàn)USB驅(qū)動程序框架
怎么編寫Framebuffer驅(qū)動程序
Framebuffer 驅(qū)動程序框架
評論