jz2440 4.3寸屏学习 framebuffer架构调试记录

**

jz2440 4.3寸屏学习 framebuffer架构调试记录

**

static struct fb_info *brooke_frambuff;
1.brooke_frambuff = framebuffer_alloc(0, NULL);//fb_info空间分配

2.fb_info 中var,fix 相关结构体填充
strcpy(brooke_frambuff->fix.id, “brookelcd”);

brooke_frambuff->fix.smem_len = 48027216/8;//像素大小
brooke_frambuff->fix.type = FB_TYPE_PACKED_PIXELS;
brooke_frambuff->fix.visual = FB_VISUAL_TRUECOLOR;//FB_VISUAL_TRUECOLOR
brooke_frambuff->fix.line_length = 480*2;//行像素

brooke_frambuff->var.xres = 480;//分辨率
brooke_frambuff->var.yres = 272;
brooke_frambuff->var.xres_virtual = 480;//虚拟分辨率
brooke_frambuff->var.yres_virtual = 272;
brooke_frambuff->var.bits_per_pixel = 16;
/RGB 565 /
brooke_frambuff->var.red.offset = 11;//偏移
brooke_frambuff->var.red.length = 5;//大小
brooke_frambuff->var.green.offset = 5;
brooke_frambuff->var.green.length = 6;
brooke_frambuff->var.blue.offset = 0;
brooke_frambuff->var.blue.length = 5;
brooke_frambuff->var.activate = FB_ACTIVATE_NOW;
3.buffer 空间分配返回虚拟地址
dma_alloc_writecombine(NULL,
brooke_frambuff->fix.smem_len,&brooke_frambuff->fix.smem_start, GFP_KERNEL);
brooke_frambuff->screen_size = 480
272
16/8;

4.brooke_frambuff->fbops = &s3c2440fb_ops;//操作函数
static struct fb_ops s3c2440fb_ops = {
.owner = THIS_MODULE,
.fb_setcolreg = s3c2440fb_setcolreg,
.fb_fillrect = cfb_fillrect,
.fb_copyarea = cfb_copyarea,
.fb_imageblit = cfb_imageblit,
};
brooke_frambuff->pseudo_palette = pseudo_palette;

5.注册fb_info结构体,register_framebuffer(brooke_frambuff);

相关命令:
mount -t nfs -o nolock,vers=2 192.168.1.21:/work/drivers /mnt

insmod cfbfillrect.ko && insmod cfbcopyarea.ko && insmod cfbimgblt.ko && insmod lcd.ko

echo hello > /dev/tty1

cat lcd.ko > /dev/fb0

相关参数计算:
vbpd ,vfpd
hbpd ,hfpd
hsync,vsync

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值