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

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

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

转载 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
1389

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

转载 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
3186
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
1477

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

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

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

原创 自己实现内核中的current宏
说明: current宏,是一个全局指针,指向当前进程的struct task_struct结构体,即表示当前进程。 例如current->pid就能得到当前进程的pid,current-comm就能得到当前进程的名称。 每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。 当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用
2012-09-06 13:56:58
1317
转载 [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
2112
转载 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
3036
转载 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
1167
转载 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
7965
转载 蓝牙BQB测试简介(一)
2013-10-16 10:57:22 来源:摩尔实验室 浏览次数:204 文字大小:【大】【中】【小】关键字:蓝牙BQB 对于蓝牙BQB的射频测试,很多人都是知其然而不知其所以然,当产品认证测试遇到问题时就无从下手,了解蓝牙BQB的射频测试原理,有助于快速定位产品遇到的问题,并制定相应的整改措施。现就蓝牙BQB的射频测试原理总结如下:发射机测试原理
2016-12-26 16:37:05
4352
转载 蓝牙射频调变模式与测量
蓝牙射频调变模式与测量 时间: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
3973
转载 蓝牙的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
1335
转载 蓝牙基础知识进阶——Packet解析
六包的格式解析 在分析其它问题之前,我们需要了解在空气中传播的数据包的格式,这样才能深刻理解我们能通过格式中的各个部分做些什么。Q1:PACKET的基本格式是什么样子的之前我们提到蓝牙传输有两种rate,不同的rate其格式是不同的,我们分别来看一下。Basic Rate:Basic Rate的包格式如下图6-1所示:
2016-12-26 13:56:58
7206
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
734
转载 Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本原理,我把通用中断子系统分为了4个层次,其中的驱动程序接口层和中断通用逻辑层的界限实际上不是很明确,因为中断通用逻辑层的很多接口,既可以被驱动程序使用,也可以被硬件封装层使用,所以我把这两部分的内容放在一起进行讨论。本章我将会讨论这两层对外提供的标准接口和内部实现机制,几乎所有的接口都是围绕着irq_desc
2016-05-16 09:41:03
654
转载 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
1070
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
923
转载 SDIO驱动的命令从何玩起?
SDIO 卡 SDIO 卡是在 SD 内存卡接口的基础上发展起来的接口, SDIO 接口兼容以前的 SD 内存卡,并且可以连接 SDIO 接口的设备,目前根据 SDIO 协议的 SPEC , SDIO 接口支持的设备总类有蓝牙,网卡,电视卡等。 SDIO 协议是由 SD 卡的协议演化升级而来的,很多地方保留了 SD 卡的读写协议,同时 SDIO 协议又在 S
2016-01-26 19:01:24
4494
转载 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
9465
转载 NFC:跟现金和信用卡说不
智能手机很快就将包含近场通信(NFC)无线技术,这使得智能手机能用作钥匙或信用卡。用户只需在NFC阅读器附近挥动他们的手机或与NFC阅读器轻轻接触,两个设备之间就能实现数据交换进而完成交易。自动配对是另外一种新兴应用。无线技术NFC的最大范围大约是20cm,典型的使用距离是4cm至5cm,这对安全性很有好处。近场通信技术顾名思义就是使用近场,而不是人们更加熟悉的远场。远场由
2015-01-12 15:57:12
2353
转载 如何分析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
3676
转载 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
5614
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
3151
转载 设置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
17435
转载 Android 4.3安全機制探討
Android 預設的安全機制是透過Linux User-Authentication Security Control,基於使用者帳號與群組管理,提供每個應用程式單一帳號的管理機制. 這機制又稱為DAC (Discretionary access control, 隨意存取控制),所倚靠的就是使用者帳號/群組(ID/Group)的密碼認證稽核,基於此,Linux也是一個供Multi-User
2014-10-15 17:44:08
1461
转载 版本4.0锁屏下的 NFC discover TAG
今天发现package中 NFC都没怎么好好看过,导致我写一个新的东西很难,所以决定今天把它剖析完。哈,发现找到我想要的东西就不想写全拉,嘿,果然还是很懒!!因为新东西是跟NFC TAG有关,故从这里入手,需要看得为package下面的nfc文件夹里的东东1. NfcService这个是继承自Application. 应该是方便设一些全局变量。里面有几个内部类Nfc
2014-09-26 17:32:03
807
转载 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
7370
2
转载 GPIO的上拉下拉功能说明
上拉寄存器是控制对应端口上拉使能的。当对应位为0时,设置对应引脚上拉使能,为1时,禁止对应引脚上拉使能。如果上拉寄存器使能,无论引脚功能寄存器如何设置(输入,输出,数据,中断等),对应引脚输出高电平。可见对应于S3C2410的GPB-BPH口内部有上拉电阻寄存器,当相应的上拉电阻使能时,对应的I/O引脚悬空时,表现出高电平。反之,表现出低电平。上拉是一个电阻接到一个电压,其实就是增强IO的驱动能力
2014-08-29 14:46:40
49479
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
714
转载 Porting WiFi drivers to Android
经过一周多的奋战,终于把WiFi成功的移植到了android2.3,我的硬件平台是s3c6410处理器, android2.3的无线设置中 成功检测到无线网络,且连接到无线路由,可以使用自带的浏览器上网,祝贺一下,下面把移植过程给大家分享,免得大家走弯路。 先给大家推荐外国朋友写的一篇博客,我发现国内的软件研发人员好多都是翻译这篇文章,我给大家推荐看原版的,因为有的人翻译过来,可能
2014-08-11 21:24:48
1184
转载 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
1649
转载 Android WifiDisplay分析三:RTSP交互以及数据传输
前面我们分析到WifiDisplaySource会调用ANetworkSession的接口去创建一个socket,并在这个socket上监听是否有客户端的连接请求。先来看看Wifi Display规范的一些流程图:从之前的一篇文章中,当ANetworkSession创建好RTSP的listen socket后,就会把它加入到selelct中等待对方的连接,那我们首先
2014-07-28 15:35:21
1064
转载 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
1326
转载 linux input输入子系统分析《四》:input子系统整体流程全面分析
分类: 内核驱动2012-07-31 14:29 3260人阅读 评论(1) 收藏 举报inputlinuxstructlisttablefile目录(?)[+]主要讲述本人在学习Linux内核input子系统的全部过程,如有分析不当,多谢指正。以下方式均可联系,文章欢迎转载,保留联系信息,以便交流。邮箱:eabi010@gmail.co
2014-07-23 00:10:36
601
转载 linux input输入子系统分析《三》:S3C2440的触摸屏驱动实例
主要讲述本人在学习Linux内核input子系统的全部过程,如有分析不当,多谢指正。以下方式均可联系,文章欢迎转载,保留联系信息,以便交流。邮箱:eabi010@gmail.com主页:www.ielife.cn(爱嵌论坛——嵌入式技术学习交流)博客:blog.youkuaiyun.com/ielife1.1 本节阅读前提本节的说明建立在前两节的基础之上,需要先阅读如
2014-07-23 00:09:29
946
Indoor Positioning using Sensor-fusion in Android Devices
2013-10-22
wifi_p2p_technical_specification_v1.1_content.pdf
2013-10-02
深入浅出MIPS
2013-08-29
wp_Miracast_Consumer_201301_Simplified_Chinese.pdf
2013-02-21
apk安装包的中的dex优化
2013-02-17
-Hilman-Runtime-PM
2012-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人