- 博客(33)
- 资源 (15)
- 收藏
- 关注
转载 map的详细用法
[cpp] view plaincopymap的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非
2014-01-22 20:12:41 634
转载 semaphore与Mutex
C# Semaphore Classhttp://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspxwikiSemaphore (programming)http://en.wikipedia.org/wiki/Semaphore_%28programming%29理解Semaphore和
2014-01-16 15:02:28 523
转载 realloc 用法 .
最近在写source code时需要在数组的buffer小时重新申请一块buffer,故找了一些资料,乖乖,竟然原指针还可以“漂移”。。。。。。realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include 有些编译器需要#include 功能:改变mem_address
2014-01-16 13:33:52 875 1
转载 如何让GCC检查类printf函数的参数
来篇又短又水的。大家都知道在c语言中有一类可变参数(variable-argument)的函数,像printf、scanf,这类函数的一大优势是输入参数的数量和类型都可以自由控制,但是问题也很明显,如果可变参数输入的个数或者类型不对,正常情况下编译器检查不出这样的错误,而实际运行却可能破坏堆栈,导致一些古怪的运行结果,很难定位到问题。 gcc中使用__attribute__
2014-01-15 19:17:15 3661
转载 Linux那些事儿之我是SCSI硬盘(3)磁盘磁盘你动起来!
首先我们看sd_revalidate_disk(),这个函数很重要,一定程度上来说,正是这个函数从硬件和软件两个方面掀起了我们了解scsi磁盘的性高潮.这个函数它不是一个函数在战斗,它完全是贾宝玉林黛玉方世玉附体,由这一个函数可以牵连出N个函数.而这N个函数中的一些函数本身又有好几百行,所以我们算是陷进去了. 1496 /** 1497 * sd_revalidat
2014-01-10 18:58:24 5234
转载 Linux那些事儿之我是SCSI硬盘(2)依然probe
虽然scsi disk不难,但是如果你以为scsi disk这个模块每个函数都像init_sd()一样简单,那么我只能说你属于那种被蜘蛛咬了就以为自己是蜘蛛侠,被雷电劈了就以为自己是闪电侠,摸了一次高压电就以为自己是沈殿霞.你不服?咱们来看sd_probe,这个函数就不是那么简单. 1566 /** 1567 * sd_probe - called during d
2014-01-10 16:33:21 2471
转载 Linux那些事儿之我是SCSI硬盘(1)简简单单初始化
在那茫茫人海中,我找到了这两行, 1886 module_init(init_sd); 1887 module_exit(exit_sd);不要问我它们来自哪里,咱们整个故事就是围绕着drivers/sd.c这么一个文件展开,所以除非特别声明的之外,都是来自这个文件. 1831 /** 1832 * init_sd - entry point f
2014-01-10 15:39:30 1643
转载 Linux那些事儿之我是SCSI硬盘-引子
有一天身子问心:"我要是痛了,医生会给我治,你痛了谁给你治啊?"于是心说:"我只能自己给自己治."也许因为这样,每个人都有一个治疗自己心中伤痛的方法.喝酒,唱歌,发火,或哭或笑,跟朋友诉苦,共旅行,跑马拉松,最差的一种方法是逃避这种心痛.我的方法是写这种伪技术的文章.但是写些什么呢?既然有人写了USB,既然有人写了PCI,那么如果不写SCSI,恐怕是天理地理都难容了.就说我们公司吧,机房里
2014-01-10 15:38:29 1942
转载 Linux的时间设置与同步(NTP)
摘要:GMT/UTC/CST;/etc/localtime,/usr/share/zoneinfo/*时区文件,/etc/profile加TZ变量;硬件时间RTC,系统时间;date,hwclock,tzselect;ntp relay server;rpm –ivh ntp-*;ntpdate 0.uk.pool.ntp.org ;ntpq –p,watch n
2014-01-10 11:53:49 1113
转载 Framebuffer 机制
FramebufferFramebuffer是linux系统为显示设备提供的一个接口,它将显示缓存区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。Framebuffer设备是标准的字符设备,主设备号为29,对应于/dev/fbn设备文件。 双缓冲机制 Android系统中使用的此机制,带来的好处是让画面的切换
2014-01-09 13:24:56 2753
转载 LCD硬件原理
LCD硬件原理(RGB interface) 一块LCD屏显示图像不但需要LCD驱动器,还需要有相应的LCD控制器。通常驱动会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则由外部电路来实现,许多MCU内部直接集成了LCD控制器。 TFT屏是目前嵌入式系统应用的主流,下图是TFT屏的典型时序,VCLK、HSYNC和VSYNC分别是像
2014-01-09 11:51:19 1700
转载 Linux驱动子系统之I2C(6)
6 总结下图根据之前的分析丰富的架构图Tips:I2C适配器驱动不一定是基于platform实现,这里是以s3c-i2c为例。 I2c_driver、i2c_client与i2c_adapterI2c_driver与i2c_client是一对多的关系,一个i2c_driver上可以支持多个同等类型的i2c_client。调用i2c_add_dri
2014-01-09 11:42:06 572
转载 Linux驱动子系统之I2C(5)
5 客户驱动5.1 概述I2C客户驱动是对I2C从设备的实现,一个具体的I2C客户驱动包括两个部分:一部分是i2c_driver,用于将设备挂接于i2c总线;另一部分是设备本身的驱动。I2C客户驱动程序主要由i2c_driver和i2c_client来描述。 5.2 实例源码分析好了,我们来深入了解客户驱动代码的实现,drivers/misc/eep
2014-01-09 11:39:00 704
转载 Linux驱动子系统之I2C(4)
4 总线驱动4.1 概述I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和master_xfer的实现函数。I2C总线驱动由i2c_adapter和i2c_algorithm来描述 4.2 S3c2440I2C控制器的硬件描述S3c2440处理器内部集成了一个I2C控制器,通过四个寄存器来进行控制:IIC
2014-01-09 11:16:50 644
转载 Linux驱动子系统之I2C(3)
3 i2c-dev3.1 概述之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动。不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件的打开而产生,并随着设备文件的关闭而撤销。I2c-dev.c针对每个I2C适配器生成一个主设备号为89的设备文件,实现了i2c_driver的成员函数以及文件操作接口,所以i2c-
2014-01-09 10:14:16 881
转载 Linux驱动子系统之I2C(2) .
2 I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。 2、I2C总
2014-01-09 09:50:32 650
转载 用户空间的spi驱动 .
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================1.1 重要的数据结构1. spi_device虽然用户空间不
2014-01-09 09:29:26 636
转载 linux spi子系统 .
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================spi_master/spi_device和spi_driver的关系。
2014-01-08 20:25:48 568
转载 events/0--工作者线程 .
今天在“top”时无意中发现每次都会出现一个events/0进程。网上貌似很少对它的描述,总结一下《Linux内核设计与实现》中的内容(page87)。 我们都知道中断的底半部机制有三种:软中断、tasklet和工作队列。其中软中断很少使用,内核中只有网络在使用,它的延时是最小的。tasklet是软中断的一个应用,所有线程注册的tasklet都会顺序被执行。因此tasklet的执行
2014-01-08 19:37:00 737
转载 Linux驱动子系统之I2C(1)
1 硬件特性1.1 概述I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2C在标准模式下传输速率最高100Kb/s,在快速模式下最高可达400kb/s。属于半双工。在嵌入式系统中,I2C应用非常广泛,大多数微控制器中集成
2014-01-01 14:50:27 694
转载 SD初始化流程
SD初始化流程当host上电后,使所有的卡设备处于卡识别模式,完成设置有效操作电压范围,卡识别和请求卡相对地址等操作。1、 发送指令CMD0使卡设备处于idle状态;2、 发送指令CMD8,如果卡设备有response,说明此卡为SD2.0以上;3、 发送指令CMD55+ACMD41,该指令是用来探测卡设备的工作电压是否符合host端的要
2014-01-01 13:48:13 829
转载 SD总线协议
SD 总线协议SD总线通信是基于指令和数据比特流,起始位开始和停止位结束。SD总线通信有三个元素:Command:由host发送到卡设备,使用CMD线发送;Response:从card端发送到host端,作为对前一个CMD的相应,通过CMD线发送;Data:即能从host传输到card,也能从card传输到host,通过data线传输。 Comman
2014-01-01 13:41:42 1225
转载 MMC子系统介绍
MMC子系统介绍MMC代码分布MMC子系统代码主要在drivers/mmc目录下,共有三个目录: Card:存放闪存卡(块设备)的相关驱动,如MMC/SD卡设备驱动,SDIOUART; Host:针对不同主机端的SDHC、MMC控制器的驱动,这部分需要由驱动工程师来完成; Core:整个MMC的核心层,这部分完
2014-01-01 13:30:14 2130
转载 SD/MMC/SDIO概念区分
SD/MMC/SDIO概念区分 SD(SecureDigital)与 MMC(MultimediaCard)SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代。在维基百科上有相当详细的 SD/MMC 规格说明:[http://zh.wikipedia.org/wiki/
2014-01-01 13:21:06 4240
转载 Linux驱动子系统之输入子系统(6)-gpio-keys
6.Gpio-keys6.1 概述l Gpio-keys是基于input子系统实现的一个通用的GPIO按键驱动。工程中我们常常会利用它来写按键驱动。 l gpio-keys驱动是基于platform来实现,platform driver(通用的部分)位于drivers/input/keyboard/gpio_keys.c,platform device通常和硬件
2014-01-01 11:56:56 2939
转载 linux驱动子系统之输入子系统(5)
linux驱动子系统之输入子系统(5)5. 总结5.1 事件信息的上报过程分析l 上报的大致过程:设备驱动层->核心层->事件处理层->应用层l 具体调用的函数(以evdev为例):input_event()->input_handle_event() ->input_pass_event() ->handle->handler->event(handl
2014-01-01 11:38:42 564
转载 linux驱动子系统之输入子系统(4)
4.事件处理层4.1 概述事件处理层负责和应用层接口,创建设备节点和相关的文件系统文件,把事件信息上报给应用层。每种事件处理层驱动程序都是实现了一个file_operations,当应用调用open,write,read等系统调用访问输入设备文件时,就会调用到file_operations中的方法。4.2 数据结构和函数l Input_handler,用来描述一个
2014-01-01 11:33:35 630
转载 linux驱动子系统之输入子系统(3)
linux驱动子系统之输入子系统(3)3.设备驱动层3.1 概述负责与底层输入设备通信,实现具体硬件设备驱动,获取硬件产生的事件信息报给上层。本层是要我们实现的,内核也提供了很多设备驱动。 3.2 数据结构和函数l input_dev,子系统中用此结构体来描述一个输入设备struct input_dev{ /
2014-01-01 11:24:42 535
转载 linux驱动子系统之输入子系统(2)
linux驱动子系统之输入子系统(2)2. 输入核心层2.1 概述核心层对下提供了设备驱动层的编程接口,对上有提供了事件处理层的编程接口。input.c是核心层实现的文件。 2.2 驱动代码分析l 初始化模块static int __init input_init(void){ err= class_
2014-01-01 11:09:34 605
转载 linux驱动子系统之输入子系统(1)
linux驱动子系统之输入子系统(1)1.输入子系统框架1.1 概述内核提供的输入子系统是对分散的、多种不同类别的输入设备(键盘、鼠标、触摸屏、加速计、跟踪球、操纵杆等)进行统一处理的驱动程序。 输入子系统带来的好处:l 抽象底层形态各异的硬件输入设备,为上层提供了统一的操作接口l 提高了代码重用率和效率,减少了bug
2014-01-01 11:02:36 681
转载 USB设备驱动
1.LINUX USB架构 USB通信都是由host端发起的。USB设备驱动程序分配并初始化一个URB发给USB Core,USB Core改一改,发给USB主机控制器驱动,USB主机控制器驱动把它解析成包,在总线上进行传送。USB Core是由内核实现的,其实也就是把host control driver里的功能更集中的向上抽象了一层,它是用来对最上层的USB设备驱动屏蔽掉hos
2014-01-01 10:29:22 846
转载 USB设备枚举[转载]
USB设备枚举[转载] USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接。USB总线拓扑结构见下图(最顶端为主机的Root Hub):USB总线拓扑结构(USB Bus
2014-01-01 10:09:28 1024
基于FPGA的视频采集
2011-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人