黑白屏160*160 UC1698控制器,i80接口可以使用framebuffer吗?

muma96131 2014-07-07 04:16:35
目前正在学习Linux嵌入开发 芯片是at91sam9260 屏是:黑白屏160*160 UC1698控制器,与芯片的接口是:i80接口,驱动想写成framebuffer形式的怎么处理?
/* 1. 分配一个fb_info */
at91_lcd = framebuffer_alloc(0, NULL);

/* 2. 设置 */
/* 2.1 设置固定的参数 */
strcpy(at91_lcd->fix.id, "mylcd");
at91_lcd->fix.smem_len = 160*160/8;
at91_lcd->fix.type = FB_TYPE_PACKED_PIXELS;
at91_lcd->fix.visual = FB_VISUAL_MONO01; /* TFT */
at91_lcd->fix.line_length = 160/8;

/* 2.2 设置可变的参数 */
at91_lcd->var.xres = 160;
at91_lcd->var.yres = 160;
at91_lcd->var.xres_virtual = 160;
at91_lcd->var.yres_virtual = 160;
at91_lcd->var.bits_per_pixel = 1;

/* RGB:565 */
// at91_lcd->var.red.offset = 11;
// at91_lcd->var.red.length = 5;

// at91_lcd->var.green.offset = 5;
// at91_lcd->var.green.length = 6;

// at91_lcd->var.blue.offset = 0;
// at91_lcd->var.blue.length = 5;

at91_lcd->var.activate = FB_ACTIVATE_NOW;


/* 2.3 设置操作函数 */
at91_lcd->fbops = &at91_lcdfb_ops;

/* 2.4 其他的设置 */
at91_lcd->screen_size = 160*160/8;
at91_lcd->screen_base = dma_alloc_writecombine(NULL, at91_lcd->fix.smem_len, (dma_addr_t *)&at91_lcd->fix.smem_start, GFP_KERNEL);

static struct fb_ops at91_lcdfb_ops = {
.owner = THIS_MODULE,
.fb_fillrect = cfb_fillrect,
.fb_copyarea = cfb_copyarea,
.fb_imageblit = cfb_imageblit,
};
驱动是装载没有问题 cat abc > /dev/fb0屏幕上也可以显示几个点,但是cat abc > /dev/tty1 屏幕却没有显示怎么回事
...全文
256 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
muma96131 2014-07-17
  • 打赏
  • 举报
回复
-/bin/sh: con2fb: not found 系统里没有con2fb这个命令啊
曹大夯 2014-07-08
  • 打赏
  • 举报
回复
/dev/tty1在系统里存在么?另外,你将/dev/fb0配置成console输出了么? 比如执行"con2fb /dev/fb0 /dev/tty1".

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧