自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(435)
  • 资源 (26)
  • 收藏
  • 关注

转载 Linux实现ARP缓存老化时间原理问题深入解析

一.问题 众所周知,ARP是一个链路层的地址解析协议,它以IP地址为键值,查询保有该IP地址主机的MAC地址。协议的详情就不详述了,你可以看RFC,也可以看教科书。这里写这么一篇文章,主要是为了做一点记录,同时也为同学们提供一点思路。具体呢,我遇到过两个问题: 1.使用keepalived进行热备份的系统需要一个虚拟的IP地址,然而该虚拟IP地址到底属于哪台机器是根据热备群的主备来决定的,

2014-06-03 11:15:19 2036

转载 Linux驱动虚拟地址和物理地址的映射

一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。内核空间地址有自己对应的页表,内核的虚拟空间独立于其

2014-03-18 15:38:35 981

转载 mips一致性DMA映射、流式DMA映射的使用

一、流式DMA:1、一般的使用方法是:dma_buf = (void *)__get_free_pages(GFP_ATOMIC|GFP_DMA, get_order(s->fragsize));desc->snd_buffer = dma_buf;desc->snd_dma = dma_map_single(NULL, desc->snd_buffer, s->frags

2014-03-17 20:41:13 1284

转载 I2C总线详细介绍

I2C是一种串行总线的外设接口,它采用同步方式串行接收或发送信息,两个设备在同一个时钟下工作。I2C总线只用两根线:串行数据SDA(Serial Data)、串行时钟SCL(Serial Clock)。由于I2C只有一根数据线,因此其发送信息和接收信息不能同时进行。信息的发送和接收只能分时进行。I2C串行总线工作时传输速率最高可达400K bit/s。I2C总线上的所有器件

2014-02-19 15:15:45 1087

转载 DMA描述符及映射

1.DMA通道DMA(Direct Memory Access)通道建立在设备和RAM之间,DMAC(DMA Controler)与设备I/O控制器相互作用共同实现数据传送。在PC中,DMA控制器位于主板上负责管理I/O总线的南桥上。典型的PC架构的数据通道示意图如下:DMAC一旦被CPU激活,就可以自行传送数据。在实现DMA传输时,由DMA控制

2014-01-03 13:45:31 3062 1

转载 SMP Primer for Android

Android 3.0 and later platformversions are optimized to support multiprocessor architectures. This documentintroduces issues that can arise when writing code for symmetric multiprocessorsystems in C

2013-12-26 10:35:06 1404

转载 Linux内核ARM构架中原子变量的底层实现研究

前段时间重新研究了一下Linux的并发控制机制,对于内核的自旋锁、互斥锁、信号量等机制及其变体做了底层代码上的研究。因为只有从原理上理解了这些机制,在编写驱动的时候才会记得应该注意什么。这些机制基本都从代码上理解了,但是唯有一个不是非常理解的是内核对于ARM构架中原子变量的底层支持,这个机制其实在自旋锁、互斥锁以及读写锁等内核机制中都有类似的使用。这里将学习的结果写出,请大家指正。    假设

2013-12-23 11:32:00 1094

转载 #define barrier() __volatile__("": : :"memory") 中的memory

gcc内嵌汇编简介在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例:__asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编

2013-12-18 17:44:32 806

转载 进程上下文

可执行程序代码是进程的重要组成部分。这些代码从可执行文件载入到进程的地址空间执行。一般程序在用户空间执行当一个程序调用了系统调用或者触发了某个异常,它就陷入了内核空间。此时,我们称内核“代表进程执行”并处于进程上下文。在此上下文中current宏是有效的。除非在此间隙有更高优先级的进程需要执行并由调度器做出了相应调整,否则在内核退出的时候,程序恢复在用户空间继续执行。系统调用和异常处理程序是对

2013-09-14 22:45:28 1424

原创 自己实现内核中的current宏

说明:  current宏,是一个全局指针,指向当前进程的struct task_struct结构体,即表示当前进程。  例如current->pid就能得到当前进程的pid,current-comm就能得到当前进程的名称。  每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。  当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用

2012-09-06 13:56:58 1243

转载 [sdio] Common Information Area (CIA) 分析及初始化过程

一 , CIA 概述SDIO 卡寄存器存储区中有一固定的公共端口区域,简称为 CIA 。 CIA中的寄存器包括了对 I/O 端口功能, 中断产生以及端口工作信息, 可以通过读写功能 0对 CIA 所定义的寄存器进行相关操作。 CIA 包含了 CCCR (Card Common Control Registers), FBR (Function Basic Registers) 和

2017-08-12 14:34:15 1733

转载 linux下MMC/SD/SDIO驱动系列之四 ---- SDIO的识别与操作

从上篇文章的最后,我们知道host在扫描卡的过程中,其识别的顺序为SDIO  SD MMC,并且从它的注释可以看出,这个顺序是很重要的。那这篇文章,我们就看看SDIO的识别过程,它对应的函数就是mmc_attach_sdio(host) (函数位于文件drivers/mmc/core/sdio.c)                这个函数大概来说做了如下的工作             

2017-08-12 14:32:52 2562

转载 SDIO驱动总结

内核:Linux 2.6.35.7硬件:三星的s5pv210平台SDIO驱动包括SDIO 控制器驱动和SDIO卡驱动,属于主从结构类型,相信看过usb驱动的朋友会更容易理解SDIO的驱动框架。本文初略分析了SDIO控制器驱动与SDIO卡驱动的调用过程,待以再对SDIO做进一步分析。1. SDIO 控制器驱动三星的s5pv210平台使用的SDIO控制器涉及到的驱动文件主要.\ d

2017-08-12 10:22:52 1041

转载 i2c信号的ACK与NACK

i2c信号的ACK与NACK        我们平时在调试I2C的时候可能很少去关注NACK信号,只知道如果Master发送数据,MSB先发,LSB后发,连续发送一个字节(8个bit),之后Slave会回复一个ACK信号,但是有时I2C slave可能会发出NACK信号,下面让我们来看看NACK信号存在的情况。1、从spec下摘取一段:

2017-03-13 16:40:20 6890

转载 蓝牙BQB测试简介(一)

2013-10-16 10:57:22   来源:摩尔实验室  浏览次数:204  文字大小:【大】【中】【小】关键字:蓝牙BQB    对于蓝牙BQB的射频测试,很多人都是知其然而不知其所以然,当产品认证测试遇到问题时就无从下手,了解蓝牙BQB的射频测试原理,有助于快速定位产品遇到的问题,并制定相应的整改措施。现就蓝牙BQB的射频测试原理总结如下:发射机测试原理 

2016-12-26 16:37:05 3944

转载 蓝牙射频调变模式与测量

蓝牙射频调变模式与测量  时间:2009-12-18 08:42 字体大小:小 中 大 点击:  1 引 言   蓝牙是一种无线个人区域网络(WPAN)技术,IEEE将其作为802.15.1,它具有非常广阔的应用前景。蓝牙1.2版(标准速率)当前提供721 kb/s的最大数据传输率,理论值为1 Mb/s。蓝牙2.0版(增强速率EDR)的是蓝牙无线

2016-12-26 16:30:31 3751

转载 蓝牙的Baseband说明

蓝牙的radio部分使用2.4GHz的ISM段,2400 - 2483.5 MHz,通道间隔1MHz,GFS调制,采用跳频技术,每秒至少1600次。连接完成后的跳频次数为1600次/s,在inquiry和page时为3200次/s。1.时钟有三种是CLK,如下图:CLK是Master的时钟,代表某一个piconet的是时钟。slave根据下图来调整自己的时钟以达到和master

2016-12-26 16:24:46 1180

转载 蓝牙基础知识进阶——Packet解析

六包的格式解析   在分析其它问题之前,我们需要了解在空气中传播的数据包的格式,这样才能深刻理解我们能通过格式中的各个部分做些什么。Q1:PACKET的基本格式是什么样子的之前我们提到蓝牙传输有两种rate,不同的rate其格式是不同的,我们分别来看一下。Basic Rate:Basic Rate的包格式如下图6-1所示:

2016-12-26 13:56:58 6343 1

转载 Receive packet steering patch详解

Receive packet steering简称rps,是google贡献给linux kernel的一个patch,主要的功能是解决多核情况下,网络协议栈的软中断的负载均衡。这里的负载均衡也就是指能够将软中断均衡的放在不同的cpu核心上运行。 简介在这里: http://lwn.net/Articles/362339/ linux现在网卡的驱动支持两种模式,一种是N

2016-07-08 15:56:28 666

转载 Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层

在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc

2016-05-16 09:41:03 601

转载 linux kernel的中断子系统之(八):softirq

一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那么紧急需要处理的事情。在执行bottom half的时候,是开中断的。有多种bottom half的机制,例如:softirq、tasklet、workqueue或是直接创建一个kernel t

2016-03-26 14:54:03 918 1

转载 SD初始化过程以及Cmd解析

1条CMD线,所有的命令和回应都是通过这条线一位一位的传输.不同模式或不同版本下,命令有不同含义.(SD(SD[0],SD[3:0]),SPI))1条时钟线,时钟源是来自APH总线时钟4条数据线,SPI模式下用了两条(一条输出,一条输入),SD的一位模式下一条(输出输入),也可以用完四条(输出输入,DATA[0]将分时复用). SD卡是以块为单位,初始化时有配置,一

2016-01-26 19:02:58 800

转载 SDIO驱动的命令从何玩起?

SDIO 卡       SDIO 卡是在 SD 内存卡接口的基础上发展起来的接口, SDIO 接口兼容以前的 SD 内存卡,并且可以连接 SDIO 接口的设备,目前根据 SDIO 协议的 SPEC , SDIO 接口支持的设备总类有蓝牙,网卡,电视卡等。       SDIO 协议是由 SD 卡的协议演化升级而来的,很多地方保留了 SD 卡的读写协议,同时 SDIO 协议又在 S

2016-01-26 19:01:24 4180

转载 802.11的物理层-CS/CCA过程

参考文献[1] 802.11 Wireless Networks: The Definitive Guide, Mattbew S. Gast[2] Overhaul of IEEE 802.11 Modeling and Simulation in NS-2, Qi Chen, Felix Schmidt-Eisenlohr.[3] C++ Source codes of

2016-01-12 14:50:35 9148

转载 NFC:跟现金和信用卡说不

智能手机很快就将包含近场通信(NFC)无线技术,这使得智能手机能用作钥匙或信用卡。用户只需在NFC阅读器附近挥动他们的手机或与NFC阅读器轻轻接触,两个设备之间就能实现数据交换进而完成交易。自动配对是另外一种新兴应用。无线技术NFC的最大范围大约是20cm,典型的使用距离是4cm至5cm,这对安全性很有好处。近场通信技术顾名思义就是使用近场,而不是人们更加熟悉的远场。远场由

2015-01-12 15:57:12 2139

转载 如何分析GPSLog

对于GPSLog有两种类型的文件,主要是依据其文件内容划分。文件内部存储的只是$GP开口的log,那么这种log称为NMEA log;文件内部除了$GP的log,还有其他的一些log,例如$PMTK的log等等,这种log称为GPS DebugLog。其实一般情况下,可以通过NMEALog就可以看出来很多的信息。看NMEALog主要是对NMEA协议里的集中常用NMEA语句的各个字段熟悉即可。

2014-12-22 11:31:02 3452

转载 linux2.6内核compat_ioctl函数

一、内核原型(linux2.6.28-7)     long (*compat_ioctl)(struct tty_struct *tty, struct file * file,                     unsigned int cmd, unsigned long arg);     implement ioctl processing for 32

2014-12-01 13:29:59 5493 1

转载 QoS/WMM (EDCA)

For QoS/WMM (EDCA) a mac80211 driver needs to have at least four queues. mac80211 will then program the queues according to the advertised access parameters.Legend:MQ: mac80211 queueAC: Ac

2014-11-13 13:35:56 2946

转载 设置socket IP_TOS选项

|举报|字号 订阅在IP头中,有一Type-of-Service字段,该字段描述了IP包的优先级和QoS选项,使用IP_TOS可以来设定该字段的值:使用setsockopt设置IP_TOS代码如下:unsigned char  service_type = 0xe0 | IPTOS_LOWDELAY | IPTOS_RELIABILITY;

2014-11-06 11:30:06 15603

转载 Android 4.3安全機制探討

Android 預設的安全機制是透過Linux User-Authentication Security Control,基於使用者帳號與群組管理,提供每個應用程式單一帳號的管理機制. 這機制又稱為DAC (Discretionary access control, 隨意存取控制),所倚靠的就是使用者帳號/群組(ID/Group)的密碼認證稽核,基於此,Linux也是一個供Multi-User

2014-10-15 17:44:08 1403

转载 版本4.0锁屏下的 NFC discover TAG

今天发现package中 NFC都没怎么好好看过,导致我写一个新的东西很难,所以决定今天把它剖析完。哈,发现找到我想要的东西就不想写全拉,嘿,果然还是很懒!!因为新东西是跟NFC TAG有关,故从这里入手,需要看得为package下面的nfc文件夹里的东东1. NfcService这个是继承自Application. 应该是方便设一些全局变量。里面有几个内部类Nfc

2014-09-26 17:32:03 725

转载 GPIO初始化

PXA3xx_MFP_CFG(desc, pin, af, drv, rdh, lpm, edge)宏定义中rdh参数是用来设置进入或退出low power时GPIO的电平由什么决定,为0时进入low power时由lpm决定,离开时恢复原值,为1时GPIO的值由ASCR[RDH]决定,一般该参数设置为0;lpm参数的作用是当系统由工作模式进入省电模式后,该GPIO的状态,是输出0或1,还

2014-08-29 16:08:02 7131 2

转载 GPIO的上拉下拉功能说明

上拉寄存器是控制对应端口上拉使能的。当对应位为0时,设置对应引脚上拉使能,为1时,禁止对应引脚上拉使能。如果上拉寄存器使能,无论引脚功能寄存器如何设置(输入,输出,数据,中断等),对应引脚输出高电平。可见对应于S3C2410的GPB-BPH口内部有上拉电阻寄存器,当相应的上拉电阻使能时,对应的I/O引脚悬空时,表现出高电平。反之,表现出低电平。上拉是一个电阻接到一个电压,其实就是增强IO的驱动能力

2014-08-29 14:46:40 46673 3

转载 linux 链接ln的使用 创建和删除符号连接(软、硬链接)

1 . 使用方式 :ln [option] source_file dist_file   (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)                    -f 建立时,将同档案名删除.                     -i 删除前进行询问.                     ln -s abc cde 建

2014-08-25 14:07:28 668

转载 Porting WiFi drivers to Android

经过一周多的奋战,终于把WiFi成功的移植到了android2.3,我的硬件平台是s3c6410处理器,  android2.3的无线设置中 成功检测到无线网络,且连接到无线路由,可以使用自带的浏览器上网,祝贺一下,下面把移植过程给大家分享,免得大家走弯路。    先给大家推荐外国朋友写的一篇博客,我发现国内的软件研发人员好多都是翻译这篇文章,我给大家推荐看原版的,因为有的人翻译过来,可能

2014-08-11 21:24:48 1107

转载 NFC framework introduce

NFC framework introduce 1 NFC 简介对于NFC,是google在android4.0上推出来的,简单介绍下。近场通讯(NFC)是一系列短距离无线技术,一般需要4cm或者更短去初始化连接。近场通讯(NFC)允许你在NFC tag和Android设备或者两个Android设备间共享小负载数据。优酷上有其应用的视频:http://v.youku.c

2014-08-07 19:46:22 1499

转载 Android WifiDisplay分析三:RTSP交互以及数据传输

前面我们分析到WifiDisplaySource会调用ANetworkSession的接口去创建一个socket,并在这个socket上监听是否有客户端的连接请求。先来看看Wifi Display规范的一些流程图:从之前的一篇文章中,当ANetworkSession创建好RTSP的listen socket后,就会把它加入到selelct中等待对方的连接,那我们首先

2014-07-28 15:35:21 989

转载 Android WifiDisplay分析二:Wifi display连接过程

这一章中我们来看Wifi Display连接过程的建立,包含P2P的部分和RTSP的部分,首先来大致看一下Wifi Display规范相关的东西。HIDC: Human Interface Device Class  (遵循HID标准的设备类)UIBC: User Input Back Channel  (UIBC分为两种,一种是Generic,包含鼠标、键盘等;另一种是H

2014-07-28 15:32:54 1196

转载 linux input输入子系统分析《四》:input子系统整体流程全面分析

分类: 内核驱动2012-07-31 14:29 3260人阅读 评论(1) 收藏 举报inputlinuxstructlisttablefile目录(?)[+]主要讲述本人在学习Linux内核input子系统的全部过程,如有分析不当,多谢指正。以下方式均可联系,文章欢迎转载,保留联系信息,以便交流。邮箱:[email protected]

2014-07-23 00:10:36 566

转载 linux input输入子系统分析《三》:S3C2440的触摸屏驱动实例

主要讲述本人在学习Linux内核input子系统的全部过程,如有分析不当,多谢指正。以下方式均可联系,文章欢迎转载,保留联系信息,以便交流。邮箱:[email protected]主页:www.ielife.cn(爱嵌论坛——嵌入式技术学习交流)博客:blog.csdn.net/ielife1.1    本节阅读前提本节的说明建立在前两节的基础之上,需要先阅读如

2014-07-23 00:09:29 903

Source Insight v3.50.0058.

Source Insight v3.50.0058.

2014-07-03

notepadpp_v631.zip

notepadpp_v631.zip

2013-10-23

WindowsGrep23

WindowsGrep23

2013-10-23

Indoor Positioning using Sensor-fusion in Android Devices

Indoor Positioning using Sensor-fusion in Android Devices

2013-10-22

wifi-display.pkt

wifi-display.pkt

2013-10-02

wifi_p2p_technical_specification_v1.1_content.pdf

wifi_p2p_technical_specification_v1.1_content.pdf

2013-10-02

wps-pbc-pkt

wps-pbc.apc

2013-10-01

wifi-direct.pkt

wifi-direct.pkt

2013-10-01

深入浅出MIPS

英国科学家 Dominic Sweetman(经典著作 See MIPS Run 的作者),称 MIPS 为“高效的 RISC 体系结构中最优雅的一种体系结构”。 它是一个双关语: 即是 Microcomputer without Interlocked Pipeline Stages 的缩写,同时又是 Millions of Instructions Per Second 的缩 写。 MIPS 的处理单元是一个五级流水线:Instruction Fetch, Register & Decoder, ALU, Memory 以及 Write back。一开始的 MIPS 是为 32 位系统设计的,实际上,后续的 64 位扩 展,也依然对 32 位的工作模式向下兼容着。一如其他的 RISC 处理器,MIPS 的每条指令长度 是固定的 32bit。(因此,最长的局部跳转指令只能跳转 2 的 26 次方 Byte,也就是 2 的 24 次 方,16777216 条指令) MIPS 有 32 个通用寄存器,编程者可以使用其中除$0 外的所有寄存器暂存数据。$0 寄存 器,在硬件上被设计为永远读出 0。我们可以用$0 寄存器的此特性,实现一些技巧性的编程, 譬如实现 NOP 操作。MIPS 本没有 NOP 指令,但由于对$0 寄存器的写入实际上无意义,可以 作为空操作使用。 事实上,编译器从高级语言(典型如 C/C++)转换为 MIPS 汇编指令时,一般总是遵守一 定的寄存器使用约定。某些寄存器用来从函数中传入和传出参数,存储临时数据,另一些则起特 殊作用,如保存调用函数时的指令地址,或作为堆栈指针等。如果你使用汇编开发,理论上可以 无视这点约定,但是,一般地,遵守这个约定,与人方便,也为己方便。关于寄存器使用的约定, 以后会展开论述。 一如所有的 RISC 处理器,MIPS 没有 CISC 那样复杂多变的寻址方式,统一为 Load/Store 寻址。任何载入和存储操作,都可写为如下形式: lw $1, offset ($2) 这条指令的操作符可以为 Load 或 Store,一次 Load/Store 操作的范围可以为字/半字/ 字节(对应 gcc 的 int, short 和 char)。偏移量是一个带符号的 16bit 整数。两个作为操作数 的寄存器可以是任何通用寄存器。(你可以向$0 写入,但无任何意义,等同于空操作)。对于 64 位模式下,也可以对 double 类型进行操作。注意 Load/Store 都必须对应一个对齐的地址,否 则会引发一个异常(Exception)。 MIPS 支持最多 4 个协处理器。协处理器 CP0 为 CPU 的控制协处理器,是体系结构中必须 实现的。CP1 为浮点处理器。CP2 保留,各生产厂商往往用来实现一些自己的特色功能,例如 RMI 的 Fast Message Ring 等。CP3 原本也是保留共扩展用,但很多 MIPS III 和 MIPS IV 时代的扩展指令集使用了它。对于 CP0,我们会有专门的一段用来讨论。 为适应处理器向多核时代的演进, MIPS 引入了多核操作必要的原子指令 (Atomic operation)、内存屏障(Barrier)等操作。在 SMP 或 AMP 等多核架构中,这些指令是并行计算 同步的保障。

2013-08-29

blcr-0.8.5.

blcr-0.8.5

2013-06-21

wp_Miracast_Consumer_201301_Simplified_Chinese.pdf

wp_Miracast_Consumer_201301_Simplified_Chinese.pdf

2013-02-21

Makefile经典教程

Makefile经典教程

2013-02-19

busybox

busybox

2013-02-17

apk安装包的中的dex优化

apk安装包的中的dex优化,这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。

2013-02-17

win8/win7启用wifi热点

win8/win7启用wifi热点

2013-01-27

Ath6kl_Android_ICS.pptx

Ath6kl_Android_ICS.pptx

2012-10-15

AR6000_Family_Programmers_Guide_Atheros

AR6000_Family_Programmers_Guide_Atheros

2012-10-15

liunx驱动程序第三版examples

liunx驱动程序第三版examples

2012-09-13

802.11无线网络权威指南

802.11无线网络权威指南(第二版全,非扫描).

2012-09-13

Runtime Power Management Framework

Runtime Power Management Framework

2012-09-13

-Hilman-Runtime-PM

New PM framework  Independent PM of devices at runtime  Idle devices can suspend  Merged in 2.6.32  Author: Rafael Wysocki

2012-09-13

空空如也

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

TA关注的人

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