自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

转载 misc设备驱动模型及实例解析

1、misc设备驱动模型      本节我们来看一下misc设备驱动模型的有关内容,首先是看看它的设备结构体,定义在include/linux/miscdevice.h中:[cpp] view plaincopystruct miscdevice  {      int minor;                  //次设备号

2015-03-29 11:04:30 670

转载 makefile中的patsubst

1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makef

2015-03-03 11:36:09 436

转载 MINI2440启动配置文件/etc/init.d/rcS文件分析

MINI2440启动配置文件/etc/init.d/rcS文件分析2011年2月5日 mail:174997990@qq.com Mini2440启动配置文件说明 对于mini2440,虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由busybox完成,Qtopia(qpe)只是在启动的最后阶段被开启。由于默认的内核命令行

2015-02-13 15:01:56 437

转载 linux文件属性详细说明

转自:http://hi.baidu.com/inclover/blog/item/0a7f6f97efddde6755fb96e5.html1、 Linux 文件属性概说;Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容;[root@localhost ~]# ls -lih总计 1

2015-02-13 14:26:56 429

原创 内核学习网站收集

http://www.cnblogs.com/king-77024128/articles/2275545.htmlhttp://linux.chinaunix.net/techdoc/develop/2008/09/14/1032319.shtmlhttp://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c438

2015-02-11 20:24:18 453

转载 Makefile 中:= ?= += =的区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendififeq ($(OPT),define)    VRE ?= “Hello World! First!”endif

2015-02-11 11:28:03 337

转载 busybox详解

根文件系统及Busybox详解之一根文件系统及Busybox简介目录1.根文件系统简介…22.Busybox简介…22.1Busybox简介…22.2Busybox目录结构简介…22.3init进程简介…33.构建自己的根文件系统…93.1编译Busybox.93.2向Busybox中添加新命令…194.附录…264.1Busybox实现的简

2015-01-30 17:32:14 1616

转载 ll命令字段所代表的意思

ll命令:查看文件的属性 ll命令:查看文件的属性功能:以长格式显示目标文件或目录的属性。语法:ll [选项] 文件或目录-h或--human-readable  和ls命令的-h一样,用"K","M","G"来显示文件和目录的大小。-c 以更改时间排序,显示文件和目录例:1、查看两个文件的属性linux@server:~

2015-01-30 15:08:15 1449

转载 Linux软连接和硬链接

Linux软连接和硬链接 1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在L

2015-01-27 20:49:52 407

转载 Linux驱动中的platform

**********************************************************************************************http://www.chineselinuxuniversity.net/articles/49421.shtml从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device

2015-01-07 15:39:49 412

转载 linux下svn的用法

http://blog.chinaunix.net/uid-22150747-id-189264.html 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件s

2014-12-30 19:35:14 558

转载 gpio_request()

今天再次学习SD卡驱动,遇到gpio_request这个函数,始终不知道其什么意思,看了几遍源代码才有了点感觉。现将其关键部分再此说明一下,以备自己以后复习,或是路客参考。 一般gpio_request封装了mem_request(),起保护作用,最后要调用mem_free之类的。主要是告诉内核这地址被占用了。当其它地方调用同一地址的gpio_request就会报告错误,该地址已被申请。在

2014-12-25 10:39:54 3042 4

转载 dump_stack分析与应用

一、dump_stack(堆栈转储)作用:主要用于内核调试,打印内核堆栈段信息。使用dump_stack在driver开发期间清晰查看内核中函数调用流程二、使用前便已内核时:使用前,先在内核配置中把kernel debug选上: make menuconfig:kernel hacking-->kernel debug三、arch/x86/kernel/dumpstack.c

2014-12-25 09:02:17 1671

转载 uboot启动阶段修改启动参数方法及分析

uboot启动阶段修改启动参数方法及分析作者:围补本来启动方式这节不是什么复杂的事儿,不过想简单的说清楚明白,还真是不知道怎么组织。毕竟文字跟有声语言表达有别。但愿简单的东西别让我讲的太复杂!Arm板系统文件一般有三个——bootloader(uboot)、kernel(uImage)及根文件系统(rootfs)。在arm板上电后,按uboot->kernel->roo

2014-12-16 20:18:27 486

转载 Linux下/proc目录简介

1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文

2014-12-04 21:03:53 417

转载 windows快捷键

单独按Windows:显示或隐藏 “开始”功能表Windows+BREAK:显示“系统属性” 对话框Windows+D:显示桌面 Windows+M:最小化所有窗口 Windows+Shift+M:还原最小化的窗口 Windows+E:开启“资源管理器” Windows+F:查找文件或文件夹 Windows+CTRL+ F:查找电脑 Windows+F1:显示 Wi

2014-12-04 10:13:46 442

转载 /sys/bus/i2c/devices下的内容与i2c_board_info结构体

在目录/sys/bus/i2c/devices下能发现系统中的I2C设备,如下:view plaincopy to clipboardprint?# ls   0-0034   0-0030   0-0011   0-0058  # ls0-00340-00300-00110-0058 这些设备就是系统中存在的设备。这些设备是怎么来的?在你对

2014-11-27 15:52:58 761

转载 地址空间、内核空间、IO地址空间

http://blog.csdn.net/sweety_0628/article/details/7179392 有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的?先 回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and LinkableF

2014-11-26 20:27:40 1477

转载 i2c_driver结构体

/** * struct i2c_driver - represent an I2C device driver * @class: What kind of i2c device we instantiate (for detect) * @attach_adapter: Callback for bus addition (for legacy drivers) * @deta

2014-11-26 09:56:50 829

转载 i2c_client,i2c_adapter和I2C-core的简介

I2C的主要有两大数据结构,struct i2c_client 和 struct i2c_adapter。2.1 i2c_clientstruct i2c_client {unsigned short flags; unsigned short addr; char name[I2C_NAME_SIZE];struct i2c_adapter *adapter;

2014-11-25 16:51:39 610

转载 source insight快捷键及使用技巧

source insight快捷键及使用技巧 退出程序                             : Alt+F4重画屏幕                             : Ctrl+Alt+Space完成语法                             : Ctrl+E复制一行                        

2014-11-14 11:06:06 363

转载 话说2.6 内核 系统调用中的sys_open ,sys_read 不见了???

话说2.6 内核 系统调用中的sys_open ,sys_read 不见了???在2.6的xx以后的fs/open.c好像就没有了sys_open的足迹,找了半天也找不到,但是它又的确的使用了,困惑了n久之后,小小的发现了一个#define SYSCALL_DEFINE3 SYSCALL_DEFINE3(open, const char __user *, filename, 

2014-11-12 16:18:41 610

转载 glibc定义的系统调用

最近有人问道,glibc 中对我们常见的那些系统调用的定义在哪里?比如write(2),recv(2)。这个问题我以前在看glibc的代码时注意到了。我们通常可以直接找到的所谓定义,比如下面这个:PLAIN TEXTC:ssize_t__libc_write (int fd, const void *buf, size_

2014-11-12 16:16:53 524

转载 浅谈Linux内核和CPU架构

Linux由用户空间和内核两部分组成,之所以有这两部分构成,我想应该是由于考虑CPU体系结构嵌入式ARM处理器有七种工作状态,分别是用户模式、快速中断、外部中断、管理模式、数据访问终止模式、系统模式和为定义指令模式,而X86体系结构的CPU则有RING0~RING3 四种工作模式,这些工作模式是有权限限制的,例如在访问IO设备上Linux利用CPU这中架构,用户空间和内核空间分别工作在

2014-11-06 14:21:18 1933

转载 块设备驱动程序

块设备驱动程序.块设备和字符设备的区别 1,读取数据的单元不同,块设备读写数据的基本单元式块,字符设备的基本单元是字节。 2,块设备可以随机访问,字符设备只能顺序访问。.linux内核中块设备的描述 struct gendisk {  int major;主设备号  int first_minor;次设备号  int minors;  char disk_nam

2014-11-06 09:58:19 443

转载 linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间

linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。  Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较

2014-11-05 09:54:03 487

转载 linux内核之文件系统

linux内核之文件系统 作者:harvey wang 邮箱:harvey.perfect@gmail.com   本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文

2014-10-29 20:00:09 381

转载 并发 并行 同步 异步 多线程的区别

1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步

2014-10-25 15:22:29 369

转载 线程属性pthread_attr_t简介

本文编辑整理自: http://hi.baidu.com/7828058/blog/item/256e16decd1a385e94ee3784.htmlhttp://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part1/   Posix线程中的线程属性pthread_attr_t主要包括scope属性、de

2014-10-24 15:11:52 351

转载 tar 解压缩命令

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出

2014-10-24 14:12:10 403

转载 linux格式化

mkfs -t ext3 /dev/sda5mkfs.vfat /dev/sdb2mount -t vfat /dev/sdb2 /sdb2文件系统的优化:mkfs.ext3 -b 1024 /dev/sda文件的大小来决定数据块的大小文件很大,但是数据块很小,影响读取的速度文件很小,但是数据块很大,浪费数据块mkfs.ext3 -b 1024 -i 2048 -m

2014-10-24 10:48:46 500

转载 mpstat 命令详解

mpstat  另一个用于获取 CPU 相关统计信息的有用的命令是 mpstat。下面是一个示例输出:   # mpstat -P ALL 5 2   Linux 2.6.9-67.ELsmp (oraclerac1)       12/20/2008     10:42:38 PM  CPU   %user   %nice %system %iowait    %irq   %soft   %i

2014-10-21 11:45:33 427

转载 线程绑定CPU核

Linux系统提供API函数sched_setaffinity和sched_getaffinity用于设置或获取线程的可以使用的CPU核。int sched_setaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask);这个函数中pid表示需要设置或获取绑定信息的线程id(或进程id),如果为0,表示对当前调用的线程进行设

2014-10-21 11:37:59 418

转载 linux下让进程运行在指定的cpu上

最近负责的svr压力比较大,业务逻辑有点复杂,能优化的地方已经全部优化了,目前每秒3k次,cpu负载还是比较高 top看一下,4核的cpu负载不是太均衡,打算考虑一下将业务进程指定到3个cpu上运行,另外一个cpu专门负责处理网络收发包;打算尝试一下,如果还是不行,再过段时间,访问量再增加的话,就要加机器了,呜呜   补充:今天测试了一下,效果挺好,同样进程数的情况下,

2014-10-21 11:32:47 473

转载 clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别

1. clock_gettime( ) 提供了纳秒的精确度int clock_gettime(clockid_t clk_id, struct timespect *tp);clockid_t clk_id用于指定计时时钟的类型,对于我们Programmr以下三种比较常用:CLOCK_REALTIME, a system-wide realtime clock.CLOCK_PR

2014-10-16 10:17:44 771

转载 C里面怎么把字符串转成数字

字符串"123"转成数字123 怎么转?atof(将字符串转换成浮点型数) 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而

2014-10-10 13:44:21 1861

转载 read和write系统调用

http://blog.chinaunix.net/space.php?uid=12567959&do=blog&id=161002read()和write()系统调用 read()和write()系统调用非常相似。它们都需要三个参数:一个文件描述符fd,一个内存区的地址buf(该缓冲区包含接受的数据或者要传送的数据的存放位置),以及一个数count(指定应该传送多少字节)。两个系统调

2014-10-09 16:21:54 1128

原创 字符设备驱动程序

/* * gobalvar.c -- A simple virtual char device driver */#include #include #include #include #include #include MODULE_LICENSE("GPL");MODULE_AUTHOR("leander");#define MINIOR_NUM 0

2014-10-09 15:17:31 807

转载 结构体初始化

对结构体struct a {int b;int c;}有几种初始化方式:struct a a1 = { .b = 1, .c = 2};或者struct a a1 = { b:1, c:2}或者struct a a1 = { 1, 2};内核喜欢用第一种,使用第一种和第二种时,成员初始化顺序可变。  转一篇文章http

2014-10-08 18:31:42 434

转载 为什么要构造内核源码树?编写驱动时必须简历内核树吗?

问:编写驱程序必须建立内核树网查要先载内核源码进行编译内核源码树指我电脑明明装linux要载源码(都已经安装完)进行编译呢已经载新源码编译本机已经安装linux系统影响刚刚接触linux麻烦知道朋友帮忙介绍内核源码树电脑已经安装linux区别呢

2014-09-29 20:38:19 912

空空如也

空空如也

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

TA关注的人

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