自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 进程上下文

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

2013-09-14 22:45:28 1425

转载 Linux中断(interrupt)子系统之一:中断系统基本原理

这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到当前的通用中断子系统后,大的框架性的东西并没有太大的改变。 /******************************************************

2013-09-25 21:00:39 1084

转载 Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现

上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件。内核从2.6.16开始加入了高精度定时器架构。在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点:

2013-09-25 20:55:32 1048

转载 Linux时间子系统之五:低分辨率定时器的原理和实现

利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当然只能使用这种低分辨率定时器,我们有时候把这种基于HZ的定时器机制成为时间轮:time wheel。虽

2013-09-25 20:53:49 588

转载 Linux时间子系统之四:定时器的引擎:clock_event_device

早期的内核版本中,进程的调度基于一个称之为tick的时钟滴答,通常使用时钟中断来定时地产生tick信号,每次tick定时中断都会进行进程的统计和调度,并对tick进行计数,记录在一个jiffies变量中,定时器的设计也是基于jiffies。这时候的内核代码中,几乎所有关于时钟的操作都是在machine级的代码中实现,很多公共的代码要在每个平台上重复实现。随后,随着通用时钟框架的引入,内核需要支持高

2013-09-25 20:52:30 861

转载 Linux时间子系统之三:时间的维护者:timekeeper

本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,clocksource只能提供一个按给定频率不停递增的周期计数,如何把它和真实的墙上时间相关联?本节的内容正是要讨论这一点。1.  时间的种类内核管理着多种时间,它们分别是:RTC时间wall

2013-09-25 20:51:26 870

转载 Linux时间子系统之一:clock source(时钟源)

目录(?)[+]clock source用于为linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间。在硬件层,它通常实现为一个由固定时钟频率驱动的计数器,计数器只能单调地增加,直到溢出为止。时钟源是内核计时的基础,系统启动时,内核通过硬件RTC获得当前时间,在这以后,在大多数情

2013-09-25 20:49:33 1027

转载 ARM平台上蓝牙协议栈Bluez的移植使用和配置(写的狠不错) .

目录(?)[-]相关说明网站资源工作环境编译内核Bluez Lib / Utils蓝牙硬件初始化及基础服务启动何谓硬件初始化硬件初始化步骤关于PSKEY的获取Daemon进程的启动Paring配对Passkey_agent关于自动配对和请求的发起A2DP配置问题DUN的使用系统配置连接步骤Bluez

2013-09-19 19:37:37 1260

原创 linux Kernel 多核多线程编程

一.线程/进程进程:资源管理的最小单位线程:执行任务的最小单位内核线程:内核空间创建,类似用户进程,但运行期间不能被抢断用户线程:用户空间创建,拥有进程上下文,可调度可睡眠 二.内核线程的同步原因@中断:几乎可以在任何时刻发生,随时打断当前执行的代码;@睡眠和与用户空间的同步:内核线程的睡眠,会唤醒调度程序,从而导致新用户进程执行;@对称对处理:多个cpu可以同

2013-09-19 19:09:28 5756

转载 Android NFC分析

NFC和RFID简介NFC是基于RFID发展而来。RFID即电子标签,跟条码的作用相同,但RFID由于通过RF进行识别,无须露在产品外部。NFC所支持的标准14443和15693也都是RFID的标准。 14443为Proximity Card标准,其radio范围为几厘米15693为Vicinity Card标准,范围较长,可达1~1.5米 NFC为

2013-09-19 18:58:06 1564

转载 Android筆記-Linux Kernel Ftrace (Function Trace)解析(非常强悍的性能分析方法)

[email protected] by loda 在軟體開發時,通常都會面臨到系統效能調教的需求,我們希望知道哪些區塊的程式碼或函式被執行的次數頻繁,或是佔據較高的處理器時間,以便藉此優化程式碼撰寫的行為,或是改善耗CPU時間的算法,以Linux平台來說,OProfile(http://oprofile.sourceforge.net )會是一個大家常推薦的工具,OProfil

2013-09-19 18:52:18 3039

转载 How to connect WN111 & WNR834Bv2 using WPS PIN method?

Things to check before you begin:Install the latest WN111 software on your computer. You may download the latest driver on this link,http://kbserver.netgear.com/products/WN111.asp.Make sure

2013-09-19 18:50:50 1364

转载 linux调度器(九)——调度器的配置参数 .

调度器的配置参数/proc/sys/kernel/sched_min_granularity_ns(4000000ns):sysctl_sched_min_granularity,表示进程最少运行时间,防止频繁的切换,对于交互系统(如桌面),该值可以设置得较小,这样可以保证交互得到更快的响应(见周期调度器的check_preempt_tick过程)/proc/sys/kernel/sc

2013-09-19 17:22:19 1910

转载 linux调度器(十)——调度器/proc信息解读

分类: linux基础 2013-02-06 20:46619人阅读 评论(0)收藏举报linuxLinuxLINUX注下面的时间或时刻都是从rq->clock中获得的,而这个值是由update_rq_clock底层cpu来更新的。并且很多信息是需要内核配置CONFIG_SCHEDSTATS才有。/proc//sched$cat /pro

2013-09-19 17:21:21 1168

转载 Android ANR

1)什么引发了ANR?在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的。当它监测到以下情况中的一个时,Android就会针对特定的应用程序显示ANR:在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)BroadcastReceiver在10秒内没有执行完毕一个ANR对话框显示给用户2)如何避免

2013-09-19 16:33:01 904

转载 通过Android trace文件分析死锁ANR实例过程

对于从事Android开发的人来说,遇到ANR(Application Not Responding)是比较常见的问题。一般情况下,如果有ANR发生,系统都会在/data/anr/目录下生成trace文件,通过分析trace文件,可以定位产生ANR的原因。产生ANR的原因有很多,比如CPU使用过高、事件没有得到及时的响应、死锁等,下面将通过一次因为死锁导致的ANR问题,来说明如何通过trace文件

2013-09-19 16:19:29 1288

转载 WIFI驱动结构介绍

1        WLAN驱动结构介绍1.1      SDIO驱动在drivers/mmc下面是mmc卡,SD卡和SDIO卡驱动部分,其中包括host驱动,card驱动和core部分,由于网络接口卡挂接在SDIO总线上,所以在此之前我们先看一下SDIO的驱动结构。其驱动在drivers/mmc目录下的结构为: |-- mmc|   |-- card|   |-- core

2013-09-19 14:26:12 2624

转载 Linux进程与调度学习

一:Linux进程的四大要素: 1:一段供进程执行的程序,该程序可以被多个进程执行。     2:独立的内核堆栈。     3:进程控制快(task_struct:有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。同时,这个结构还记录着进程所占用的各项资源。)     4:独立的存储空间:即拥有专有的用户空间,除了前面的内核空间还有用户空间。 ★Note:与线

2013-09-19 14:20:42 683

转载 Linux系统调用

目录:1. Linux系统调用原理2. 系统调用的实现3. Linux系统调用分类及列表4.系统调用、用户编程接口(API)、系统命令和内核函数的关系5. Linux系统调用实例6. Linux自定义系统调用1.系统调用原理系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的

2013-09-19 14:15:53 1198

转载 android 通过DHCP获取IP初步流程

wifi note:1.java中实现log的方法是Log.v(TAG, "Static IP configuration succeeded");1.D/WifiStateTracker(  860): DhcpHandler: DHCP request started发生在 ./frameworks/base/wifi/java/android/net/wifi/Wif

2013-09-19 13:57:44 2385

转载 WPS support in NM (client mode)

WPS support in NM (client mode)Simple push-button (PBC) supportThe most simple is push-button support, it could look like this:The AP name is obtained from the WPS scan resul

2013-09-19 13:55:28 1251

转载 IEEE 802.1d协议

本节从IEEE 802.1d协议谈起,介绍几个主要的IEEE 802.1系列协议。后面将要介绍的IEEE 802.1w协议,由IEEE 802.1d协议改进而来的,因此想搞懂IEEE 802.1w协议,也得先了解什么是IEEE 802.1d协议。1.IEEE 802.1d协议简介早期的以太网Bridge(网桥)采用了基于MAC地址在不同端口之间转发,而每一个端口对应的是一个以太网的网段,是

2013-09-15 16:29:20 4393

转载 详细介绍三层交换机原理

华为认证技术文章1华为公司三层以太网交换机基本原理及转发流程本文简要介绍了华为公司三层以太网交换机的二三层转发机制,主要目的是帮助读者进一步了解华为交换机的基本原理及转发流程,以期有利于更好的从事设备维护工作和建立于进一步学习的索引。三层以太网交换机的转发机制主要分为两个部分:二层转发和三层交换。1. 二层转发流程1.1. MAC地址介绍MAC地址是48bi

2013-09-15 15:19:06 1857

转载 VLAN

VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。VLAN是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的新兴数据交换技术。这一新兴技术主要应用于交换机和路由器中,但主流应用还是在交换机之中。VLAN是一个在物理网络上根据用途,工作组、应用等来逻辑划分的局域网络,是一个广播域,与用户的物理位置没有关系。VLAN中的网络用户是通过LAN交换机来

2013-09-15 09:21:38 1168

转载 do...while(0)的妙用

在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在

2013-09-11 23:50:42 560

转载 C++随记总结(1)----关于C++中的大小端、位段(惑位域)和内存对齐

听到好几个朋友说到去一些公司做面试,总是遇到关于大小端、位段(或者叫位域)和内存对齐的考题,然后就不知所措了。虽然我认为很多开发根本就用不到这个,但是我认为很有必要学习理解这些知识点,因为它可以让你更了解C++的,了解程序在内存的运行情况,也能加深对计算机系统的理解。        声明:由于本文的代码会受到计算机环境的影响,故在此说明本篇博文中的程序的运行环境。         1、Mi

2013-09-11 23:45:03 870

转载 用printf打印MAC地址的时候为什么要后面的&0xFF?

悬赏分:10 | 解决时间:2011-4-25 22:03 | 提问者:尤孟 MAC[i]是MAC地址的一个字节,如果去掉后面的&0xFF则会打印出00:50:56:ffffffeb:0e:ffffff86:(正确:00:50:56:eb:0e:86:),请问后面0xFF的作用是什么?最佳答案 MAC[i]应该是被定义成了char了,char是有符号的,完整的类型名是signe

2013-09-11 23:40:02 3014

转载 运算符

醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度酸-算术,5个: * / % + -减味-位移,2个: >灌-关系,6个: >= == 等于 != 不等于味-位逻,3个: & 按位与 ^ 按位异或 | 按位或落-逻辑,2个: && 逻辑与 || 逻辑或跳-条

2013-09-11 23:38:22 743

转载 逻辑右移和算术右移

先做两个小题先。  (1)unsigned char x=3;  x>1是多少?  (2)char x=3;  x>1是多少?  (3)char x=-3;  x>1是多少?  3写成二进制数是00000011;-3写成二进制数是(补码)11111101。  程序执行的时候,操作的是数值的编码表示,也就是数值在内存中的二进制表示。比如说,程序取-3的时候,就去取11

2013-09-11 23:37:06 4814

转载 程序编译时内存分配

在c程序里只有全局和静态变量有固定的逻辑地址(通常存在于数据段中),而所有局部变量的逻辑地址是运行时确定的,局部变量都是在运行时从栈分配的内存。在编译时产生的目标文件都是从地址0开始的,在连接时将各个目标文件进行符号替换,这时会修改相应的地址,最后产生一个从地址0开始的可执行文件。在该可执行文件中的地址称为逻辑地址,也就是在c中所说的内存地址。在运行时加载器会把可执行程序(通常是可执行

2013-09-11 23:35:22 1005

转载 Linux 系统内核空间与用户空间通信的实现与分析[转载]

多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux 进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用netlink 套接字实现中断环境与用户态进程通信。1 引言Linux是一个源码开放的操作系统,无论是普通用户还是企业用户都可以编写自己的内核代码,再加上对标准内核的裁剪从

2013-09-11 23:35:07 570

原创 性能优化

cache操作快转bufcapwap分片二层转发MAC地址表 轮询&中断内存对齐

2013-09-11 23:22:11 643

转载 信号量与线程互斥锁的区别

援引CU上一篇帖子的内容:“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量

2013-09-11 23:14:28 584

转载 区别.text, .data , .bss

.text, .data , .bss, .constdata, stack, heap; RO, RW, ZI 2008年06月06日 星期五 15:52.text段是代码段。它用来放程序代码(code)。它通常是只读的(程序代码,编译好了就确定了,不可能改来改去的嘛)。.data段是数据段。它用来存放初始化了的(initailized)全局变量(global)和初始化了的静态变量(

2013-09-11 23:10:18 2802

转载 c语言位域问题

#include using namespace std;struct BIT3{ int a1 : 31; unsigned int a2 : 1;};struct BIT4{ int a1 : 31; int a2 : 1;};int main(){ BIT3 bit3; bit3.a2=1; cout<<bit3.a2<<endl; /

2013-09-11 23:07:40 757

转载 linux下 ls -l 命令显示结果每一列代表什么意思

linux下 ls -l 命令显示结果每一列代表什么意思,谢谢?见图片2011-11-17 10:13jxwen2148 |分类:Linux| 浏览3915次2011-11-17 10:24提问者采纳ls -l(这个参数是字母L的小写,不是数字1)  这个命令可以使用长格式显示文件内容,如果需要察看

2013-09-11 15:13:26 5033

转载 Linux内核部件分析--原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前

2013-09-11 11:42:16 863

原创 wifi-direct 流程

09-10 20:21:44.048   545   614 D WifiP2pService:  address: ca:dd:c9:f2:0f:c309-10 20:21:44.048   545   614 D WifiP2pService:  wps:  setup: 009-10 20:21:44.048   545   614 D WifiP2pService:  BSSID:

2013-09-10 21:18:25 5370

转载 linux中断嵌套以及中断丢失

在linux内核里,如果驱动在申请注册中断的时候没有特别的指定,do_irq在做中断响应的时候,是开启中断的,如果在驱动的中断处理函数正在执行的过程中,出现同一设备的中断或者不同设备的中断,这时候新的中断会被立即处理,还是被pending,等当前中断处理完成后,再做处理。在2.4和2.6内核里,关于这一块是否有什么不同。一般申请中断的时候都允许开中断,即不使用SA_INTERRUPT标志。

2013-09-09 11:49:59 1216

转载 中断为何会丢失

正在读ULK3,第四章中断中关于__DO_IRQ()的代码中涉及中断丢失的部分有点迷惑。代码如下:spin_lock(&(irq_desc[irq].lock));irq_desc[irq].handler->ack(irq);irq_desc[irq].status &= ~(IRQ_REPLAY | IRQ_WAITING);irq_desc[irq].status

2013-09-09 11:47:26 4136

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关注的人

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