自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(477)
  • 资源 (1)
  • 收藏
  • 关注

转载 fb.h注释

struct fb_info { int node; int flags; struct mutex lock; /* Lock for open/release/ioctl funcs 用于open/release/ioctl函数的锁 */ struct mutex mm_lock; /* Lock for fb_mmap and smem_

2017-06-12 11:07:23 1785

原创 Bit block位块

在计算机图像处理中,由若干像素组成的一个矩形,可视为一个单位,用来描述像素显示特性(如颜色、亮度等)。

2017-06-12 10:33:05 488

转载 fbmem.c分析

int fb_get_color_depth(struct fb_var_screeninfo *var,struct fb_fix_screeninfo *fix){ int depth = 0; if (fix->visual == FB_VISUAL_MONO01 || fix->visual == FB_VISUAL_MONO10)

2017-06-12 10:23:41 1813

原创 linux_logo结构体

结构linux_logo 描述了一个linux logo的全部信息 struct linux_logo { int type; /* one of LINUX_LOGO_*, logo的类型 */ unsigned int width; /* logo的宽度*/ unsigned int height;

2017-06-12 10:09:08 518

原创 FB_VISUAL_XXXXX-------色彩模式宏

在linux系统中,支持以下几种色彩模式 #define FB_VISUAL_MONO01 0 /* Monochr. 0=White 1=Black */ #define FB_VISUAL_MONO10 1 /* Monochr. 1=White 0=Black */ #define FB_VISUAL_TRUECOLOR

2017-06-12 10:05:40 923

原创 fb_var_screeninfo 和fb_fix_screeninfo

struct fb_var_screeninfo { //struct fb_info的成员(可变参数),其记录用户可修改的显示控制器的参数,包括分 //辨率和每个像素点的比特数,其成员需要在驱动程序中初始化和设置 /********可见解析度(实际屏幕)********/ __u32 xres;/* visible re

2017-06-09 10:35:09 10316 4

原创 struct fb_bitfield

struct fb_bitfield { /*fb缓存的RGB位域,该结构描述每一个像素显示缓冲区的组织方式,假如为RGB565模式,R占5位=bit[11:15] G占6位=bit[10:5] B占5位=bit[4:0] */ __u32 offset; /* beginning of bitf

2017-06-09 10:24:00 2448

转载 VISUALS USED BY THE FRAME BUFFER DEVICE API

Monochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10)-------------------------------------------------Each pixel is either black or white.FB_VISUAL_MONO01 /* Monochr. 1=Black 0=White */FB_VISUAL_MON

2017-06-09 10:04:27 250

转载 Video Mode Timings

A monitor draws an image on the screen by using an electron beam (3 electronbeams for color models, 1 electron beam for monochrome monitors). The front ofthe screen is covered by a pattern of colore

2017-06-09 09:46:52 413

转载 module_init宏

我们在学习Linux驱动开发时,首先需要了解Linux的模块化机制(module),但是module并不仅仅用于支撑驱动的加载和卸载。一个最简单的模块例子如下:// filename: HelloWorld.c#include #include static int hello_init(void){ printk(KERN_ALERT "Hello World\n");

2017-06-08 10:27:31 563

转载 MTK 平台LCD 驱动框架

代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.cmodule_init(mtkfb_init);模块初始化函数int__init mtkfb_init(void){ int r = 0; MSG_FUNC_ENTER(); /* Register the driver with LDM */ if(platform_driv

2017-06-08 09:38:11 1532 1

转载 uevent

uevent是sysfs向用户空间发出的消息。比如,device_add函数中,会调用kobject_uevent(&dev->kobj, KOBJ_ADD); 这里kobj是发消息的kobj,KOBJ_ADD是发出的事件。uevent的事件在kobject_action中定义:enum kobject_action { KOBJ_ADD, KOBJ_REMOV

2017-06-07 17:36:11 545

转载 Android创建设备文件

1引言 1.1编写目的 这是一篇介绍Android启动时关于设备文件的加载生成过程。主要介绍android如何实现驱动设备文件如何实现自动生成。 这是篇面向关注底层工程师的文档。 1.2介绍 本文介绍android在启动时如何自动生成驱动设备文件。 1.3定义 NA. 1.4引用 NA. 2目前常用的几种加载方式 目前常用的方式有:1.UDEV 2

2017-06-07 17:16:31 1719

转载 kobject.c 添加注释

/** * populate_dir - populate directory with attributes. * @kobj: object we're working on. * * Most subsystems have a set of default attributes that * are associated with an objec

2017-06-07 15:41:55 335

转载 map.c 添加注释

/* * linux/drivers/base/map.c * * (C) Copyright Al Viro 2002,2003 * Released under GPL v2. * * NOTE: data structure needs to be changed. It works, but for large dev_t * it will be too slow

2017-06-07 15:23:09 402

转载 char_dev.c 添加中文注释

/* * linux/fs/char_dev.c * * Copyright (C) 1991, 1992 Linus Torvalds */#include #include #include #include #include #include #include #include #include #include #include #include

2017-06-07 15:21:54 981

转载 class.c 添加中文注释(3)

int class_device_register(struct class_device *class_dev){ /* [cgw]: 初始化一个struct class_device */ class_device_initialize(class_dev); /* [cgw]: 添加一个struct class_device */ return class_

2017-06-07 15:20:55 244

转载 class.c 添加中文注释(2)

/* Class Device Stuff */int class_device_create_file(struct class_device * class_dev, const struct class_device_attribute * attr){ int error = -EINVAL; /* [cgw]: class

2017-06-07 15:19:58 284

转载 class.c 添加中文注释(1)

/* * class.c - basic device class management * * Copyright (c) 2002-3 Patrick Mochel * Copyright (c) 2002-3 Open Source Development Labs * Copyright (c) 2003-2004 Greg Kroah-Hartman * Copyright

2017-06-07 15:18:59 438

转载 sysfs文件系统之读写文件

------------------------------------------------ #纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang------------------------------------------------- 上面的文章分析了sysfs中文件的创建过程, 既然文件已经建立起

2017-06-07 15:16:10 1834

转载 sysfs文件系统之建立文件

------------------------------------------------ #纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------在linux内核fs/sysfs目录下面dir.c是建立目录的文件,

2017-06-07 15:14:54 534

转载 sysfs文件系统之初始化

------------------------------------------------ #纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang------------------------------------------------- sysfs文件系统和procfs类似,也是一种内存文件系统

2017-06-07 15:13:41 519

转载 Linux文件系统之proc文件系统

----------------------------------------------- #纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------一: 概述 Proc文件系统是一个虚拟文件系统, 它是一

2017-06-07 15:12:29 534

转载 Linux VFS文件系统之读写(read/write)文件

------------------------------------------------ #纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------一: 概述 在上文中讨论了VFS层是如何打开一个文件的,本文就

2017-06-07 15:11:06 2837

转载 Linux VFS文件系统之打开(Open)文件

------------------------------------------------#纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------一: 概述 文件的打开读写操作是一项复杂的工作, 本文只讨论

2017-06-07 15:09:12 1305

转载 Linux VFS文件系统之创建文件

----------------------------#纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang----------------------------一: 概述 在上文中分析了VFS根目录是如何创建的;既然有了根VFS这棵树就能开枝散叶,在内存中慢慢发展壮大;本文将介绍如何在VFS中建立一个目

2017-06-07 15:07:21 1722

转载 Linux VFS文件系统之rootfs注册与挂载

------------------------------------------------#纯属个人理解,如有问题敬请谅解!#kernel version: 2.6.26#Author: andy wang-------------------------------------------------一: 序言       文件系统在linux这个“阿房宫”

2017-06-07 14:47:42 894

原创 Linux内核查找文件操作函数的过程

先根据路径找到父目录项,然后找到对应的i_node,i_ndoe的成员 file_operations * i_fop是指向文件操作函数集的指针。在创建文件的i_node时会设定 file_operations * i_fop的值。一般默认使用init_special_inode()函数进行设置,其代码如下:void init_special_inode(struct inode

2017-06-07 11:32:48 894

转载 linux文件系统的系统分析--(九)sysfs下属性文件的读写

sysfs的属性文件的读写,我们先看下open,open系统调用最终会调用sysfs_open_file       struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;    //获取sysfs_dirent结构struct kobject *kobj = attr_sd->s_parent->s_dir.

2017-06-06 16:23:14 764

转载 linux文件系统的系统分析--(八)sysfs中sysfs_dirent与inode dentry的关系

对于具体的文件系统,因为在vfs层下,所以必须有inode和dentry才能用,但从前两篇中我们只看到了sysfs中的sysfs_dirent搭建起来的目录树,通过sysfs_dirent与kobject的紧密关系,也可看到kobject的层次关系。      但前面的创建目录和创建文件,都没有inode和dentry,下面我们就看看sysfs中sysfs_dirent与inode d

2017-06-06 16:21:35 495

转载 linux文件系统的系统分析--(七)sysfs下属性文件的创建

 属性文件的建立和目录的建立相差不大,因为不管目录还是普通文件,都由一个sysfs_dirent代表sysfs_create_file-->sysfs_add_file-->sysfs_add_file_mode[cpp] view plain copyintsysfs_add_file_mode(struct sysfs_diren

2017-06-06 16:19:31 423

转载 linux文件系统的系统分析--(六)sysfs下目录的创建

对sysfs和设备模型有了解的都会知道sysfs实际是为了将设备模型导出到用户空间的一个内存文件系统。       设备模型的关键结构体kobject会组成设备模型的树形结构,而sysfs的关键结构体sysfs_dirent也是类似的树形的结构,vfs中的dentry同样是类似的树形结构。       sysfs目录文件的创建都是由设备模型的上层构件(bus device dr

2017-06-06 16:17:16 460

转载 linux文件系统的系统分析--(五)路径名的查找

     do_path_lookup是文件系统中最基本的函数,也是非常重要的,里面各种情况,各种goto,总之各种坑爹。。       没能把所有的goto都理清,只看了标准情况下的路径查找,但主要的关键点都是一样的,弄清了关键点,心中对文件系统的路径名查找就有了概念。不管绝对路径名,相对路径名,还是带符号链接的,又有什么质的区别呢?       do_path_lookup分为

2017-06-06 16:14:28 484

转载 linux文件系统的系统分析--(四)sysfs的安装和挂载

在上一次分析rootfs的安装时,其实是不准确的,应该称为安装根文件系统。        安装根文件系统分为两个阶段:        1、内核安装特殊rootfs文件系统,该文件系统仅提供一个作为初始安装点的空目录。        2、内核在空目录上安装实际根文件系统。比如pc上的ext4,比如嵌入式中用到的各种flash的根文件系统。        这一次分析sysfs,

2017-06-06 16:12:22 691

转载 linux文件系统的系统分析--(三)rootfs的安装

在《linux文件系统的系统分析--(一)文件系统类型的注册》我们以rootfs为例分析了文件系统是如何注册的,接着我们就分析rootfs的安装。         在mnt_init-->init_mount_tree:[cpp] view plain copystatic void __init init_mount_tree(

2017-06-06 16:06:29 554

转载 linux文件系统的系统分析--(二)文件系统类型的注册

 因为Linux支持模块机制,所以我们可以将文件系统编译为模块,所以文件系统系统类型的注册的注册有多种方式:要么已经包含在内核映像中,要么作为一个模块被动态加载。我们关注的重点是rootfs和sysfs,他们其实在系统初始化的时候就注册并安装好了,没有rootfs,linux就没法玩了。以rootfs的注册为例,来分析一下文件系统类型的注册:        在start_kernel-

2017-06-06 16:02:55 344

转载 linux文件系统的系统分析--(一)vfs和数据结构

Linux的虚拟文件系统层的特点在于把很多不同种类文件系统的共同信息放入内核;可以通过vfs的转换来利用linux所支持挂载的实际文件系统。实际上,因为有了vfs,也可以较为方便的按照vfs的一些接口将文件系统移植过来,比如win下的ntfs和fat32就是如此。在open read等系统调用之后就是到vfs_read 等式样的函数,在vfs层做些处理后,再根据当前操作的路径所挂载在

2017-06-06 15:56:24 423

原创 SYSCALL_DEFINE

在include/linux/syscall.h里有下面一组宏:点击(此处)折叠或打开#define SYSCALL_DEFINE0(name)     asmlinkage long sys_##name(void)#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARG

2017-06-06 14:30:44 956

转载 从文件 I/O 看 Linux 的虚拟文件系统

         Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat 提供接口机制。本文在简要介绍 VFS 的相关数据结构后,以文件 I/O 为切入点深入 Linux 内核源代

2017-06-06 11:00:47 439

转载 Linux VFS分析(二)

4.对文件系统的管理inode的管理:Inode-cache hash表inode_hashtable索引节点缓存dentry的管理:我们知道,若干dentry描绘了一个树型的目录结构,这就是用户所看到的目录结构,每个dentry指向一个索引节点(inode)结构然而,这些dentry结构并不是常驻内存的,因为整个目录结构可能会非常大,以致于内存根本装不下。Linux的

2017-06-06 10:12:42 545

atmel89s51芯片数码管显示

单片机 atmel89s51芯片 数码管 动态 显示程序

2010-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除