LCD驅動程序
時間:2018-09-29 來源:未知
LCD驅動程序
通用文件是fbmem.c
假設
app: open("/dev/fb0", ...) 主設備號: 29, 次設備號: 0
kernel:
fb_open
int fbidx = iminor(inode);
struct fb_info *info = = registered_fb[0];
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)
問1. registered_fb在哪里被設置?
答1. register_framebuffer
怎么寫LCD驅動程序?
1. 分配一個fb_info結構體: framebuffer_alloc
2. 設置
3. 注冊: register_framebuffer
4. 硬件相關的操作

