自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pthread_rwlock读写锁的使用细节

在使用的过程中,往往会有一些细节上的疑问,心中会有模棱两可的地方,然后自己做了试验,并记录下来。首先,我们先来看一下 pthread_rwlock_t 结构体的定义:  struct  {    int __lock;    unsigned int __nr_readers;       unsigned int __readers_wakeup;    unsign

2013-04-13 22:45:55 12057

转载 RCU机制(转)

本文转自:http://blog.csdn.net/junguo/article/details/8244530感谢作者。      简介        RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链

2012-12-03 22:16:32 694

转载 linux名称解析函数简介——gethostbyname与getaddrinfo

使用这个东西,首先要包含2个头文件:#include #include struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名,例如"www.google.com","wpc"等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。struct hostent {

2012-05-25 18:08:10 7735

转载 使用 GDB 调试多进程程序

GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程 Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试

2012-05-25 13:08:00 661

转载 getopt的使用

getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include        extern char *optarg;  //选项的参数指针       extern int optind,   //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。        extern int opterr,  //当opterr=0时,g

2012-05-24 21:03:02 334

转载 关于网络接口的ioctl使用

本文转自:http://hi.baidu.com/kevert/blog/item/4c95b052b86bb10e0cf3e3c8.htmlioctl函数(1)2007-02-09 16:45ioctl函数 本函数影响由fd参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../*

2012-05-05 18:31:15 669

转载 Linux工作队列解析(二)

工作、工作队列和工作者线程如前所述,我们把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events,自己也可以创建自己的工作者线程。表示工作的数据结构工作用中定义的work_

2012-01-12 22:44:39 521

转载 linux工作队列解析(一)

INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看见一些同志抱怨说最近某个模块编译失败了,说什么make的时候遇见这么一个错误:

2012-01-12 22:43:19 869

转载 转发一篇写得不错的关于iptables的文章

本文作者:张天成 zhangtiancheng#gmail.com 转发请注明出处。iptables是一个Linux下优秀的nat+防火墙工具,我使用该工具以较低配置的传统pc配置了一个灵活强劲的防火墙+nat系统,小有心得,看了网上也有很多这方面的文章,但是似乎要么说的比较少,要么就是比较偏,内容不全,容易误导,我研究了一段时间的iptables同时也用了很久,有点滴经验,写来供大家参考

2011-12-09 18:55:29 3313

原创 input子系统——linux驱动学习笔记(三)

整个Input子系统的结构:         前面一片文章我们介绍的属于输入子系统核心层,该层主要负责对驱动层提供接口,比如之前介绍input_allocate_device()、input_register_device(button_dev)、input_report_key(button_dev, BTN_0, 1)、input_sync(button_dev)等。同时向上提

2011-11-10 13:01:16 1464 1

原创 input子系统——linux驱动学习笔记(二)

为了更深入的了解input子系统,光把一个按键驱动写好是不够的,我们下面来看input子系统跟我们写的程序是怎么联系起来的。我们首先来看在前面的按键输入驱动中的 struct input_dev * button_dev = input_allocate_device();struct input_dev *input_allocate_device(void){struc

2011-11-10 12:58:35 3399

原创 input子系统——linux驱动学习笔记(一)

我们下面通过自己编译个最简单的按键输入程序,来学习和理解input子系统。程序的功能就是一个单独的按键,按下后产生中断并执行相应的程序,代码如下:#include#include#include#include#include#include#include#include#include#include#include#include

2011-11-10 12:53:32 1390

转载 内核定时器 struct timer_list

本文来自:http://hi.baidu.com/zhlg_hzh/blog/item/d298b49b57a1cab2c8eaf42b.html 定时器,有时也称为动态定时器或内核定时器,是管理内核时间的基础。内核经常要推后执行某些代码,比如下半部机制就是为了将工作推后执行。我们需要一种工具,使工作能够在指定时间点上执行,正好在希望的时间点上,内核定时器正是这样一种工具。定时器使用简

2011-11-08 20:53:23 562

转载 request_irq()——注册中断服务

在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include ,2.6 内核中需要包含的头文件则是#include 。函数原型如下:2.4 内核int request_irq (unsigned int irq, void (*handler)(int, void *, struct

2011-11-08 14:59:16 1378

原创 s3c2440的ADC触摸屏驱动——学习笔记

我们首先来分析drivers/input/touchsreen/s3c2410_ts.c这个文件:static struct device_driver s3c2410ts_driver = {       .name           = "s3c2410-ts",    //在注册这个driver的时候,系统就是以这个结构的.name来查找相同name的设备的。

2011-11-08 09:56:33 1321

原创 RTC驱动程序——学习笔记

一、RTC简介:RTC(Real Time Clock)是为了给操作系统提供一个可靠的时间,且在断电情况下使用备用电池供电(即在断电情况下,也能确保时间的正确性)。RTC是通过依靠一个频率为32.768KHZ的外部晶振,产生周期的脉冲信号,每一个脉冲信号到来,计数器(TICNT)减一,来完成计时功能的。从下图可以看出来,XTIrtc和XTOrtc产生脉冲信号,传给2^15分频器

2011-11-06 18:39:49 1437

原创 驱动学习之——内核等待队列的使用

在中,结构体定义如下:struct __wait_queue_head {spinlock_t lock;struct list_head task_list;};typedef struct __wait_queue_head wait_queue_head_t;且struct list_head {struct list_head *next, *p

2011-11-06 17:50:29 504

原创 LCD驱动学习笔记

2.  Linux 驱动2.1  FrameBufferLinux是工作在保护模式下,所以用户态进程是无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux仿显卡的功能,将显抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer

2011-11-05 09:08:05 1295

转载 STL使用总结

1.    概述泛型编程思想最早缘于A.Stepanov提出的部分算法可独立于数据结构的论断。20世纪90年代初A.Stepanov和Meng Lee根据泛型编程的理论用C++共同编写了STL。但直至1998年,STL才成为C++的正式标准。在后来的几年中,各大主流编译器也都相继加入了对STL的支持,至此STL才开始得到广泛的应用。STL体现的是泛型编程的核心思想:独立数据结构和算法(这是

2011-10-23 15:07:28 6644

转载 ubuntu软件包管理命令的详细用法

说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方法。一、Ubuntu中软件安装方法1、APT方式(1)普通安装:apt-get install softname1 softname2 …;(2)修复安装:apt-get -f i

2011-10-21 17:20:00 4156

转载 文件系统(三)——陈莉君老师经典

儒家倡导“修身齐家治国平天下”,认为“天下之本在国,国之本在家,家之本在身”。在儒家看来,通过修身养性而实现的人内在的身心和谐,是实现人际和谐、群己和谐,最后达至天人和谐的必要前提。只有“成己”才能“成人”,只有“成己”才能“成物”,出发点都是“成己”,就是自我内在的身心和谐。

2011-10-16 20:22:17 739

转载 文件系统(二)——陈莉君老师经典

儒家和谐的思想不仅主导着我们的日常生活和社会关系,而且在Unix/Linux文件系统的设计中充分体现。先秦儒家以西周末年太史史伯提出的“和实生物,同则不继。”《国语·郑语》中,则对和谐思想做了进一步的完善和发展,把“和”作为处理人的身心关系、人际关系、群己关系、人与自然关系的根本

2011-10-16 20:21:34 440

转载 文件系统(一)——陈莉君老师经典

文件是一个抽象的概念,它是存放一切数据化信息的仓库。用户为了保存数据或信息,首先要创建一个文件,然后把数据或信息写入该文件。文件的载体通常情况下是磁盘,只要给出存放文件的路径和文件名,文件系统就可以在磁盘上找到该文件的物理位置,并把它调入内存供用户使用。目录提供了管理文件

2011-10-16 20:20:30 742

转载 STL的vector使用精讲

C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include 。vector 是一个类模板。不是一种数据类型,ve

2011-10-16 17:10:07 1437 2

转载 函数调用的过程

C代码:int fun(int para){  int a=0;  return 0;}void main(){  fun(1);}汇编代码:1:2:3:    int fun(int par

2011-10-15 21:46:28 372

转载 中断絮说(二)——陈莉君老师经典

计算机系统实现中断机制是非常复杂的一件工作,再怎么说人都是高度智能化的生物,而计算机作为一个铁疙瘩,没有程序的教导就一事无成。而处理一个中断过程,它受到的限制和需要学习的东西太多了。首先,计算机能够接收的外部信号形式非常有限。中断是由外部的输入引起的,可以说是一种刺激。在

2011-10-15 20:30:45 689

转载 中断絮说(一)——陈莉君老师经典

这部分内容来自http://www.kerneltravel.net/内核之旅的电子杂志第八期《中断》,再次提起,是希望你知道,那个困扰我们的中断原来不过如此。一、中断是什么中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻

2011-10-15 20:21:11 930

转载 中断处理之RTC——陈莉君老师(经典)

中断絮说(三)-从外而内,Linux对中断的支持在Linux中,中断处理程序看起来就是普普通通的C函数。只不过这些函数必须按照特定的类型声明,以便内核能够以标准的方式传递处理程序的信息,在其他方面,它们与一般的函数看起来别无二致。中断处理程序与其它内核函数的真正区别在于,

2011-10-07 18:07:08 1493

转载 关于IO内存

在平台设备驱动中:内存空间:内存地址寻址范围,32位操作系统内存空间为2的32次幂,即4G。物理内存:实实在在的物理设备,一般IO空间:X86特有的一个空间,与内存空间彼此独立的地址空间,32位X86有64K的IO空间。IO端口:当一个寄存器或

2011-10-07 14:57:12 392

转载 unix进程状态转换

3.7 UNIX SVR4 进程管理UNIX 系统V 使用了一种简单但是功能强大的进程机制,且对用户可见。UNIX 采用图3.15b 中的模型,其中大部分操作系统在用户进程环境中执行。UNIX 使用两类进程,即系统进程和用户进程。系统进程在内核态下运行,执行操作系统代码以

2011-09-30 18:56:39 5336

转载 C语言的inline

一直以来我就认为inline关键字是C++中的。今天我看到一篇讲关于C语言的inline关键字的。呵呵。。。原来是我弄错了。看来以后定义一些宏命令完全可以用这样的一些inline函数来代替了。以下是我从网上搜集来的知识点(来源:http://superding.spaces.

2011-09-29 18:00:06 505

linux常用C函数大全

包括了绝大部分在linux的应用层开发所用到的函数说明,索引的结构组织得非常清晰,非常实用。

2011-11-28

空空如也

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

TA关注的人

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