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)实例开发讲解 其 ...
随机推荐
- Target runtime Apache Tomcat v7.0 is not defined.
打开项目,找到.settings--->org.eclipse.wst.common.project.facet.core 修改这个文件中: <?xml version="1.0 ...
- iOS开发之 Xcode 6 创建一个Empty Application
参考链接http://jingyan.baidu.com/article/2a138328bd73f2074b134f6d.html Xcode 6 正式版如何创建一个Empty Applicatio ...
- 有趣的JavaScript小程序
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ID和Name的区别
HTML元素的ID和Name属性的区别一直认为ID和NAME是一样的,两个又可以一起出现,甚是疑惑.今天BAIDU了一下,才发现里面大有文章.发出来研究研究:最classical的答案:ID就像是一个 ...
- golang执行linux命令
golang exec 执行系统命令 golang 2014-09-25 13:17:44 2779 0 0 exec.Command() 最简单的方法: cmd := exe ...
- bzoj3529(莫比乌斯反演+离线+树状数组)
在你以为理解mobus的时候,苦苦想通过化简公式来降低复杂度时,这题又打了我一巴掌. 看来我并没有理解到acmicpc比赛的宗旨啊. 这么多次查询可以考虑离线操作,使用树状数组单点更新. /***** ...
- Mysql 联结表
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...
- 【bzoj1791】岛屿
[bzoj1791]岛屿 题意 求基环树的直径. \(n\leq 100000\) 分析 这道题的题解貌似很少啊. 所以自己也写一份吧. 首先找出基环树的环. 那么树的直径有两种情况: ①以环为根的某 ...
- Git入门及上传项目到github中
最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...