LCD驱动 15 -2
1.分配一个fb_info结构体: framebuffer_alloc
2.设置
3.注册
4.硬件相关操
struct fb_fix_screeninfo {
char id[16]; /* identification string eg "TT Builtin" */
unsigned long smem_start; /* Start of frame buffer mem */
/* (physical address) */
__u32 smem_len; /* Length of frame buffer mem */
__u32 type; /* see FB_TYPE_* */
__u32 visual; /* see FB_VISUAL_* */
__u32 line_length; /* length of a line in bytes */
};
struct fb_var_screeninfo {
__u32 xres; /* visible resolution */
__u32 yres;
__u32 xres_virtual; /* virtual resolution */
__u32 yres_virtual;
__u32 bits_per_pixel; /* guess what */
struct fb_bitfield red; /* bitfield in fb mem if true color, */
struct fb_bitfield green; /* else only length is significant */
struct fb_bitfield blue;
__u32 activate; /* see FB_ACTIVATE_* */
};
1 static int lcd_init(void)
2 {
3 /* 1. 分配一个fb_info */
4 s3c_lcd = framebuffer_alloc(0, NULL);
5
6 /* 2. 设置 */
7 /* 2.1 设置固定的参数 */
8 strcpy(s3c_lcd->fix.id, "mylcd");
9 s3c_lcd->fix.smem_len = 480 * 272 * 16 / 8;
10 s3c_lcd->fix.type = FB_TYPE_PACKED_PIXELS;
11 s3c_lcd->fix.visual = FB_VISUAL_TRUECOLOR; /*TFT*/
12 s3c_lcd->fix.line_length = 480 * 2;
13
14 /* 2.2 设置可变的参数 */
15 s3c_lcd->var.xres = 480;
16 s3c_lcd->var.yres = 272;
17 s3c_lcd->var.xres_virtual = 480;
18 s3c_lcd->var.yres_virtual = 272;
19 s3c_lcd->var.bits_per_pixel = 16;
20
21 /* RGB:565 */
22 s3c_lcd->var.red.offset = 11;
23 s3c_lcd->var.red.length = 5;
24
25 s3c_lcd->var.green.offset = 5;
26 s3c_lcd->var.green.length = 6;
27
28 s3c_lcd->var.blue.offset = 0;
29 s3c_lcd->var.blue.length = 5;
30
31 s3c_lcd->var.activate = FB_ACTIVATE_NOW;
32
33 /* 2.3 设置操作函数 */
34 s3c_lcd->fbops = &s3c_lcdfb_ops;
35
36 /* 2.4 其他设置 */
37 //s3c_lcd->pseudo_palette;
38 //s3c_lcd->screen_base; //显存的虚拟地址
39 //s3c_lcd->screen_size = 480 * 272 * 16 / 8;
40 /* 3. 硬件相关的设置 */
41 /* 3.1 配置GPIO用于LCD */
42 /* 3.2 根据LCD手册设置LCD控制器,比如VCLK的频率等 */
43 /* 3.3 分配显存(framebuffer),并把地址告诉LCD控制器 */
44
45 /* 4. 注册 */
46
47 register_framebuffer(s3c_lcd);
48
49 return 0;
50 }
LCD驱动 15 -2的更多相关文章
- 嵌入式Linux驱动学习之路(十八)LCD驱动
驱动代码: /************************************************************************* > File Name: lcd ...
- FL2440驱动添加(3)LCD驱动添加学习笔记
FL2440 LCD内置控制器,320*240 TFT型LCD. 自我理解总结的两种添加驱动模式: 非platform方式添加驱动: 加载驱动: 1,硬件初始化,申请内存,并作地址映射 2,分配设备号 ...
- Smart210学习-----lcd驱动
帧缓冲设备 1.1帧缓冲设备:帧缓冲(framebuffer)是 Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行 ...
- S3C2440 LCD驱动(FrameBuffer)实例开发<一>(转)
1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示 ...
- LCD驱动(FrameBuffer)实例开发讲解
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...
- LCD驱动移植在在mini2440(linux2.6.29)和FS4412(linux3.14.78)上实现对比(deep dive)
1.Linux帧缓冲子系统 帧缓冲(FrameBuffer)是Linux为显示设备提供的一个接口,用户可以将帧缓冲看成是显示内存的一种映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作 ...
- lcd驱动框架
目录 lcd驱动框架 框图 程序分析 入口 打开open 读read 初始化registered_fb 注册 小结 程序设计 测试 方式一操作fb0 方式二操作tty 方式三操作终端 完整程序 tit ...
- linux 驱动之LCD驱动(有framebuffer)
<简介> LCD驱动里有个很重要的概念叫帧缓冲(framebuffer),它是Linux系统为显示设备提供的一个接口,应用程序在图形模式允许对显示缓冲区进行读写操作.用户根本不用关心物理显 ...
- LCD驱动分析【转】
转自:http://blog.csdn.net/hanmengaidudu/article/details/21559153 1.S3C2440上LCD驱动 (FrameBuffer)实例开发讲解 其 ...
随机推荐
- maven项目搭建
一.Maven简介 Maven是基于Java平台的项目构建(mvn clean install).依赖管理(中央仓库,Nexus)和项目信息管理的项目管理工具. Maven是基于项目对象模型(POM) ...
- Windows的命令行查看,修改,删除,添加环境变量
查看当前所有可用的环境变量:输入 set 即可查看. 显示某环境变量: 例如:echo %SystemDrive% 类似linux下面的echo $PATH这种用法. 首先明确一点:所有的在cmd命令 ...
- about shell
摘抄 cat 等 cat主要有三大功能:1.一次显示整个文件.$ cat filename2.从键盘创建一个文件.$ cat > filename只能创建新文件,不能编辑已有文件.3.将 ...
- 【转载】【Oracle 11gR2】db_install.rsp详解
[原文]http://blog.csdn.net/jameshadoop/article/details/48086933 ###################################### ...
- Android布局_相对布局RelativeLayout
一.RelativeLayout(相对布局)概述 RelativeLayout是相对布局控件,它包含的子控件将以控件之间的相对位置或者子类控件相对父类容器的位置的方式排列 二.RelativeLayo ...
- J2EE 第二阶段项目之编写代码(六)
三张表的增 修改 查看.明天可以完成. 周末继续统计.
- python中用filter求素数
#用filter求素数 #生成器,生成一个无限序列 def _odd_iter(): n=1 while True: n=n+2 yield n #筛选函数 def _not_divisible(n) ...
- 如何设置session过期时间为30分钟
今天在我的微博(Laruence)上发出一个问题: 我在面试的时候, 经常会问一个问题: “如何设置一个30分钟过期的Session?”, 大家不要觉得看似简单, 这里面包含的知识挺多, 特别适合考察 ...
- flasCC技术点记录
[待测试特性] 一.C接口导出相关 1.重载函数. 2.虚函数. 3.template相关 二.内存相关 1.as直接往c分配的内存写数据. 2.c直接往as对象写数据. 三.C访问AS 1.访问as ...
- 4.2 EF的CRUD控制器代码
以下的例子以留言本作为依据. 1.添加 public ActionResult Create() { return View(); } // // POST: /Contact/Create [Htt ...