自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(256)
  • 资源 (5)
  • 收藏
  • 关注

转载 Linux驱动修炼之道-内存映射 mmap()/phys_to_virt()

void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);  内存映射函数mmap负责把文件内容映射到进程的虚拟内存空间,通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。addr:指定映射的起始地址,通常设为NULL,由系统指定。leng

2013-04-15 15:07:06 14207 1

转载 Linux camera

camera曝光 exposure为了讲清曝光这个词,我们还是回到小孔成像。假设一个黑乎乎的密闭房间,一面墙壁上开了个小圆窗户,窗对面的内壁上安上感光材料(白沥青,大型胶卷或CCD/CMOS)。这就是一台大型房式照相机。在没有打开小窗之前,房间里是黑乎乎的。我们打开小窗,光线从小孔而入,射到对面墙壁的胶卷上,产生光化反应(或光电反应,如果是CCD/CMOS),照片就诞生了。此过程就叫做

2013-04-09 16:14:40 7901

转载 type pthread_t / pthread_create()

pthread_t: This type is basically an integer (On hawk, it is just defined as an unsigned int. Its use is as a thread identifier.Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include i

2013-04-06 15:42:46 1138

转载 open和fopen的区别

open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存“缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作

2013-04-02 15:24:59 1157

原创 Pointers ON C

1、数组下标编译器并不检查程序对数组下标的引用是否在数组的合法范围内。因此,如果下标值是从那些已知是正确的值计算得来的,那么就无需检查它的值。如果一个用作下标的值是根据某种方法从用户输入的数据产生而来的,那么在使用它之前必须进行检测,确保它们位于有效范围之内。

2013-03-26 23:02:09 598

转载 非常好的将framebuffer驱动的文章,看过后受益匪浅

*一、FrameBuffer的原理*     FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这-个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Fram

2013-03-12 23:57:28 1288

转载 Linux的帧缓冲设备

http://www.rosoo.net/a/201111/15305.htmlandroid上的设备为 /dev/graphics/fbxLinux 下还可支持多个帧缓冲设备,最多可达 32个,分别为/dev/fb0 到/dev/fb31,而/dev/fb则为当前缺省的帧缓冲设备,通常指向/dev/fb0。当然在嵌入式系统中支持一个显示设备就够了。帧缓冲设备为标准字符设备,主设备号为

2013-03-07 16:56:54 2717

原创 linux 源码网站

http://lxr.oss.org.cn/linux I2c device bus driver 内核框架framebuffer设备驱动

2013-03-05 22:50:29 721

原创 i2c-core.c 学习笔记 红色标记表示待学习

68 static int i2c_device_match(struct device *dev, struct device_driver *drv) 69 { 70 struct i2c_client *client = i2c_verify_client(dev); 71 struct i2c_driver *driver

2013-03-03 17:39:18 712

转载 介绍struct bus_type非常好的

http://blog.csdn.net/yalizhi123/article/details/5832266总线总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在

2013-02-27 17:57:07 968

转载 遍历Linux kernel的链表时删除节点的方法 list_for_each_safe

如果在遍历链表的时候需要删除当前节点,应该使用的遍历函数为:list_for_each_safe(pos, n, head)         内核的链表list_head设计相当巧妙。今天我说一下对list_head链表的遍历时如何删除元素。         链表遍历时,如果删除当前元素,一般都是会出错的。在所有语言的各种库中的链表都是如此。list_head也一样。

2013-02-27 15:57:04 6206

转载 详解Linux内核之双向循环链表

详解Linux内核之双向循环链表Sailor_forever sailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/05/23/2471129.aspx  【摘要】本文详解了内核中面向对象的list结构的原理,以及如何以list为内嵌对象来构造自己的链表结构,如何从内嵌l

2013-02-26 17:19:00 1917

转载 详解Linux内核之双向循环链表(2) list_for_each/list_entry/list_for_each_entry

介绍了上面的几种基本宏后,对list_entry的理解就容易了。----------------list_entry()--------------------list_entry()宏,获取当前list_head链表节点所在的宿主结构项。第一个参数为当前list_head节点的指针,即指向宿主结构项的list_head成员。第二个参数是宿主数据结构的定义类型。第三个参数为宿主结构

2013-02-26 17:08:17 4716

转载 Linux设备驱动之I2C架构分析 adapter注册

一:前言  I2c是philips提出的外设总线。I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线。另外,I2C是一种多主机控制总线。它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以。而I2C是基于multi master机制。一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述

2013-02-26 14:39:36 5226

转载 linux 牛人博客

http://www.cnblogs.com/riky/archive/2006/12/28/606242.htmlhttp://blog.csdn.net/sailor_8318?viewmode=contentshttp://blog.csdn.net/xubin341719?viewmode=contentshttp://blog.sina.com.cn/

2013-02-25 18:09:52 569

转载 list_for_each_entry/list_entry/container_of

参考:http://blog.sina.com.cn/s/blog_5e99b41e0100rxgf.htmlhttp://hi.baidu.com/shiftedmind/blog/item/1a7c8381e6a67fa56d8119da.html         在Linux内核源码中,经常要对链表进行操作,其中一个很重要的宏是list_for_each_entry:意思大体

2013-02-25 17:59:16 771

转载 Linux设备驱动之I2C架构分析

一:前言  I2c是philips提出的外设总线。I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线。另外,I2C是一种多主机控制总线。它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以。而I2C是基于multi master机制。一同总线上可允许多个master.关于I2C协议的知识,这里不再赘述

2013-02-25 17:57:30 618

转载 浅谈linux内核中的idr机制

idr在linux内核中指的就是整数ID管理机制,从本质上来说,这就是一种将整数ID号和特定指针关联在一起的机制。这个机制最早是在2003年2月加入内核的,当时是作为POSIX定时器的一个补丁。现在,在内核的很多地方都可以找到idr的身影。idr机制适用在那些需要把某个整数和特定指针关联在一起的地方。举个例子,在I2C总线中,每个设备都有自己的地址,要想在总线上找到特定的设备,就必须要先发送该

2013-02-25 14:06:37 565

转载 嵌入式系统Linux内核开发工程师必须掌握的三十道题

仔细看了一下,居然只知道几个,我很不合格。1)      Linux中主要有哪几种内核锁?2)      Linux中的用户模式和内核模式是什么含意?3)      怎样申请大块内核内存?4)      用户进程间通信主要哪几种方式?5)      通过伙伴系统申请内核内存的函数有哪些?6)      通过slab分配器申请内核内存的函数有?

2013-02-17 17:34:09 655

转载 make clean、 make mrproper、make distclean的区别

内核编译时, 到底用make clean, make mrproper还是make distclean在编译内核时, 被make clean, make mrproer 和 make distclean搞的纠结, 稍微总结一下这三者之间的区别:解压内核源码包后, 到内核源代码目录树的顶层目录, 执行# make helpCleaning targets:clean

2013-01-22 11:15:23 1078

转载 linux C 遍历目录及其子目录 opendir -> readdir -> closedir

1 在linux下遍历某一目录下内容LINUX下历遍目录的方法一般是这样的2 打开目录->读取->关闭目录3 相关函数是opendir -> readdir -> closedir,其原型如下:4 #include 5 DIR *opendir(const char *dirname);6 struct dirent *readdir(DIR *dirp);7 int closedir

2013-01-15 00:16:39 38452 2

转载 文件操作opendir()/readdir()/closedir()/stat()

头文件:#include#include在Linux下opendir()、readdir()和closedir()这三个函数主要用来遍历目录。int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。opendir():函数原型:DIR * ope

2013-01-14 23:59:22 7848

转载 用Linux命令查看已安装的软件版本

查询软件包:rpm -qa 查询系统中安装的所有RPM软件包rpm -q 软件名 查询指定的软件包是否被安装 rpm -qi 软件名 查询系统中已安装的软件包的详细信息rpm -ql 软件名 查询已安装软件包包含的文件rpm -qf 文件名 查询指定的文件所属的软件包是哪个如你要查你的mysql的版本可以用下面的命令:

2013-01-14 22:28:35 16072

转载 Linux 关机命令详解

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。1.shutdownshutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其

2013-01-14 22:23:21 684

转载 yum更新时提示:另外一个程序锁定了 yum

Fedora 无法开始yum更新?看见很多人问这样一个问题:“为什么Fedoa开机以后使用yum命令不成功?系统提示 Another app is currently holding the yum lock; waiting for it to exit..?”字面意思是说另外一个程序给yum加了锁,要等到那个程序退出以后才可以进行,那么是什么东西在加锁呢?答案是──yum- updates

2013-01-13 18:35:17 10543

转载 windows7和linux fedora17 双系统 安装

对于初学Linux者(我也是),不希望在虚拟机里面搞弄Linux,又不希望用wubi装Ubuntu这个集成比较多使用相对简单的Linux,想装Fedora、Redhat或者CentOS等学一下比较基本的Linux操作,所以我们一般都是在Windows下划个空间然后在里面装Linux。这样对于初学者有个不好的地方是假如GRUB引导出错或者我刚开始不大懂想图个方便在Windows下直接把Linux分区

2013-01-13 17:33:40 1605

转载 编写Linux下Input设备的检测程序

最近玩了下Android-x86的eclair,主题风格相对之前的1.6好看了很多,而且还加了不少之前没有的功能。但是触摸屏不能用,在终端下用getevent命令查看事件信息,发现得到的绝对坐标有很大出入(4096*4096)。于是想自己试着去解决这个问题。同时在Ubuntu下测试,发现居然没有getevent命令,当然可以用cat /dev/inpu/eventX查看事件信息,但是显示出来的

2013-01-11 21:23:47 1138

转载 Linux Kernel and Android 休眠与唤醒(中文版)

http://www.byywee.com/page/M0/S633/633654.htmlhttp://blog.csdn.net/h490516509/article/details/7719432http://www.cnblogs.com/sdphome/archive/2011/11/07/2240371.htmlhttp://blog.csdn.net/angl

2013-01-03 16:57:16 1077

转载 工作队列(workqueue) create_workqueue/schedule_work/queue_work

项目需要,在驱动模块里用内核计时器timer_list实现了一个状态机。郁闷的是,运行时总报错“Scheduling while atomic”,网上搜了一下:"Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spinlo

2012-12-28 16:12:29 22599

转载 platform_set_drvdata()/platform_get_drvdata()/container_of()

platform_set_drvdata(struct platform_device *pdev, void *data)platform_get_drvdata(const struct platform_device *pdev):驱动中常用到platform_set_drvdata 和 platform_get_drvdata这两个函数,用于保存局部变量:inc

2012-12-27 15:32:05 3189

转载 select()/FD_ZERO()/FD_SET()/FD_CLR()/FD_ISSET()

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。        可是使用Select就可

2012-12-23 18:06:26 1043

转载 struct timeval

DESCRIPTION   The functions gettimeofday and settimeofday can get and set the time as   well as a timezone. The tv argument is a timeval struct, as specified   in :   struct

2012-12-22 17:11:11 2381

转载 linux设备驱动中file_operations结构体分析

struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.loff_t (*llseek) (struct file *, loff_t, int);llseek 方

2012-12-19 10:15:41 850

转载 MISC混杂设备 struct miscdevice /misc_register()/misc_deregister()

在Linux系统中,存在一类字符设备,他们共享一个主设备号(10),但此设备号不同,我们称这类设备为混杂设备(miscdeivce),查看/proc/device中可以看到一个名为misc的主设备号为10.所有的混杂设备形成一个链表,对设备访问时内核根据次设备号找到对应的miscdevice设备。相对于普通字符设备驱动,它不需要自己去生成设备文件。Linux内核使用struct miscd

2012-12-19 10:02:28 11669 1

转载 struct platform_device/platform_driver

一个现实的linux设备和驱动通常要挂接在一种总线上,像pci,usb,iic,spi等都是总线结构,这当然不是问题,但是嵌入式系统中,Soc系统集成的独立外设控制器,挂接在soc内存空间的外设等却不依附于此类总线。基于这个背景,linux发明了一种虚拟总线:platform总线,相应的设备称为platform_device,而驱动成为platform_driver。注意,platfo

2012-12-18 19:52:58 1821

转载 在内核中创建文件 filp_open/sys_open

之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件. 用户空间                   内核open()                    sys_open(), filp_open()close()                   sys_close(), filp_close()rea

2012-12-18 17:47:06 1873

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

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

2012-12-18 17:07:22 12862 1

转载 files_struct 与 struct file

files_struct结构files_struct结构保存了进程打开的所有文件表数据,描述一个正被打开的文件。Linux中一个进程最多只能同时打开NR_OPEN_DEFAULT个文件,而且前三项分别设为标准输入、标准输出和出错信息输出文件,定义如下。struct files_struct {      atomic_t        count;              //自动增

2012-12-18 16:07:08 3487

转载 在linux内核中操作文件的方法--使用get_fs()和set_fs(KERNEL_DS) .bin file write/read

例1:#include linux/kernel.h>#include linux/module.h>#include linux/init.h>#include linux/fs.h>#include linux/string.h>#include linux/mm.h>#include linux/syscalls.h>#include asm/unistd.h

2012-12-18 16:05:48 3079

转载 signal_pending()

检测进程p是否有待处理的信号(p->thread_info->flags中TIF_SIGPENDING位是否置位)-----------------------------------------------------static inline int signal_pending(struct task_struct *p){    return unlikely(test

2012-12-14 16:27:52 2564

slickedit color theme solarized

slickedit color theme solarized

2013-11-27

slickedit bitstream vera fonts

slickedit bitstream vera fonts

2013-11-27

slickedit v18 18.0.1.2 序列号 破解

亲测windows7 32,ubuntu12.0.4 64 内附序列号生成软件 read_me.txt为详细使用方法。

2013-11-26

slickedit 2013 v18 win linux mac

slickedit 2013 v18 (18.0.1.2) 包含win mac linux 32/64 但个人使用的是linux 64位的 se_18000102_linux64.tar.gz

2013-11-22

UNIX环境高级编程

UNIX环境高级编程(第二版中文) 影印版

2012-12-24

空空如也

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

TA关注的人

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