自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

williamwang2013的专栏

项目的记录与拓展,希望对大家有点用处

  • 博客(63)
  • 资源 (3)
  • 收藏
  • 关注

原创 insmod: can't insert 'hci_uart.ko': invalid parameter

[root@Linux sbin]#insmod hci_uart.ko insmod: can't insert 'hci_uart.ko': invalid parameter先用dmesg查看信息,有可能已经装好了。[root@Linux sbin]#dmesgOnAction_backOnAction_back, action=0issue_acti

2013-01-26 09:20:29 6364

原创 linux命令之sync

sync是一个linux同步命令,含义为迫使缓冲块数据立即写盘并更新超级块。其中包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。[wang@localhost usb]$ man syncNAME       sync - flush file system buffersSYNOPSIS       sync [OPTION]

2013-01-25 13:22:42 31774 1

原创 用md5算法检测文件的完整性

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5全称是报文摘要算法(Message-Digest Algorithm5)此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工

2013-01-25 11:32:36 3192

原创 bluez 扫盲篇

bluez是linux官方蓝牙协议栈。组成bluez分为两个部分:内核代码和用户态程序及工具集内核代码:bluez核心协议和驱动程序等模块组成用户态程序及工具集:应用程序接口和bluez工具集独立模块:linux内核蓝牙子系统核心L2CAP 和 SCO 音频内核层RFCOMM, BNEP, CMTP 和 HIDP内核实现HCI UART, USB

2013-01-24 17:58:09 6034

原创 linux中断控制之工作队列

工作队列是将工作推后执行的一种机制,并且可以睡眠。工作队列结构定义于#include  内核3.1.4  源码位于kernel/workqueue.c先看工作队列结构struct work_struct {atomic_long_t data;struct list_head entry;work_func_t func;#ifdef CONFIG_LOCKDEP

2013-01-24 14:10:33 2486

原创 linux中断控制之tasklet

定义tasklet定义于#include  内核3.1.4先看看tasklet的结构体struct tasklet_struct{struct tasklet_struct *next;    //指向链表的下一个结构unsigned long state;    //任务状态atomic_t count;    //计数void (*func)(uns

2013-01-24 11:14:30 762

原创 linux中断控制之软中断

软中断给系统中对时间要求最严格的下半部使用,执行频率很高,连续性很高,网络和SCSI直接使用软中断。此外,内核定时器和tasklet都是建立在软中断上的。软中断由softirq_action结构表示,定义于#include  内核3.1.4struct softirq_action{void (*action)(struct softirq_action *);

2013-01-23 20:10:53 1102

原创 linux中断控制之总章

程序运行期间,遇到某些特殊情况,需要CPU暂停当前正在执行的程序,转去处理突发事件,处理完后又返回原程序被中断的位置继续运行,这种情况就是中断。中断源:引起中断的原因或发出中断请求的设备中断服务程序:要处理的突发事件程序中断的分类:1.来源    硬中断(外部中断):通过外部设备接口,向CPU的中断请求引脚INT和NMI发中断请求产生    软中断(内部中断):

2013-01-23 17:22:24 978

原创 交叉编译obexd

编译obexd下载obexd-0.40 http://www.kernel.org/pub/linux/bluetooth/解压并进去[root@localhost obexd-0.40]# CC=arm-linux-gcc ./configure CFLAGS=-I/usr/local/newbt/include LDFLAGS=-L/usr/local/newbt/lib --pr

2013-01-23 13:22:17 4323

原创 交叉编译bluez-4.95

编译环境:fedora 11 编译工具 arm-linux-gcc 4.1.1 编译bluez——第一次从 http://www.kernel.org/pub/linux/bluetooth/ 下载bluez-4.95tar zxvf bluez-4.95.tar.gz [root@localhost bluez-4.95]# cd bluez-4.95

2013-01-23 13:20:38 7146

原创 configure -h 参数详解

以编译bluez中的configure为模版,并补充了些选项Usage: ./configure [OPTION]... [VAR=VALUE]...To assign environment variables 指定环境变量(e.g., CC, CFLAGS...), specify them asVAR=VALUE.  See below for descrip

2013-01-22 14:45:00 11059

原创 configure配置调试

configure的作用1.自动进行对目标新系统的猜测过程现在许多开放源代码的程序都会附带有 configure 脚本。在过去,程序会附带一个 Makefile 文件,这个文件中有 6 个不同的编译标记和选项,但只会用到一个,其余全部注释掉,并且会有一个注解,告诉你“为您的系统选择合适的标记”。如果配置选项更复杂,可能还会有一个名为 config.h 的长长的 C 头文件,其中包含一些要设

2013-01-22 11:19:10 3961

原创 linux并发控制之互斥体

互斥体提供了两种机制:经典互斥体和实时互斥体分别定义于#include #include经典互斥体结构体:  (会导致无限制优先级反转问题)struct mutex {/* 1: unlocked, 0: locked, negative: locked, possible waiters */atomic_t count;spinlock_twait_

2013-01-21 17:41:49 1715

原创 linux并发控制之完成量

完成量:表示一个执行单元需要等待另一个执行单元完成某事后方可执行。1.它是一种轻量级机制,为了完成进程间的同步而设计2.使用完成量等待时,调用进程是以独占睡眠方式进行等待的3.不是忙等待理解:定义于#include其结构体为struct completion {unsigned int done;wait_queue_head_t wait;};

2013-01-21 17:20:34 3391

原创 linux并发控制之读写信号量

读写信号量与信号量之间的关系类似于自旋锁与读写自旋锁。读写信号量可能会引起进程阻塞,但是它允许N个读执行单元同时访问共享资源,而最多只允许有一个写执行单元访问共享资源;因此,读写信号量是一种相对放宽条件的、粒度稍大于信号量的互斥机制。注意:信号量不允许任何操作之间有并发。理解:定义于#include 实际上在arch/X86/include/asm/rwsem.h

2013-01-21 16:44:09 1488

原创 linux并发控制之信号量

信号量(semaphore)是用于保护临界区的一种常用方法,它的使用方式与自旋锁类似与自旋锁相同的是,只有得到信号量的进程才能执行临界区的代码与自旋锁不同的是,当获取不到信号量的时候,进程不会在原地打转,而是进入休眠等待状态;理解:定义于#includestruct semaphore {spinlock_tlock;unsigned intcoun

2013-01-21 15:50:00 3354

原创 linux并发控制之RCU

RCU:读-拷贝-更新众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用,但是它存在两个问题。1.它的开销相对于CPU速度而言就越来越大随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问

2013-01-21 13:50:14 3767

原创 linux并发控制之顺序锁

顺序锁是对读写锁的一种优化。    1.读执行单元绝对不会被写执行单元阻塞。即读执行单元可以在写执行单元对被顺序锁保护的共享资源进行写操作的同时仍然可以继续读,而不必等待写执行单元完成之后再去读,同样,写执行单元也不必等待所有的读执行单元读完之后才去进行写操作    2.写执行单元与写执行单元之间仍然是互斥的。    3.如果读执行单元在读操作期间,写执行单元已经发生了写操作,那么,读

2013-01-21 10:16:35 5229

原创 linux并发控制之读写自旋锁

读写自旋锁(rwlock)是一种比自旋锁粒度更小的自旋锁机制,它保留了“自旋”的概念。但是在写操作方面,只能最多有一个写进程,在读方面,同时可拥有多个执行单元,当然读和写也不能同时进行。一句话:防写不防读 理解推荐: http://blog.sina.com.cn/s/blog_6d7fa49b01014q86.html操作:定义于#include或#include

2013-01-18 17:34:03 2586

原创 linux并发控制之自旋锁

自旋锁是一种对临界资源进行互斥访问的典型手段,其名来源于它的工作方式。通俗的讲,自旋锁就是一个变量,该变量把一个临界区标记为“我当前在运行,请等待”或者标记为“我当前不在运行,可以被使用”, 如果A执行单元首先获得锁,那么当B进入同一个例程时将获知自旋锁已被持有,需等待A释放后才能进入,所以B只好原地打转(自旋)。特点:    1.自旋锁主要针对SMP或单CPU且内核可抢占的情

2013-01-18 16:26:20 1428

原创 linux并发控制之原子操作

原子操作指的是在执行过程中不会被别的代码路径所中断的操作。分为两类:整型原子操作 和 位原子操作。特点:1.任何情况下操作都是原子的。2.都依赖底层的CPU的原子操作来实现,所以和CPU架构密切相关。注意:    1.原子操作在不同体系架构实现的方法不同,基本采用汇编实现    2.上述的整数原子函数集仅针对32位,内核中关于64位有另一套函数    3

2013-01-18 15:03:09 7073

原创 linux并发控制之中断屏蔽

在单CPU范围内避免竞态的一个简单方法。注意:    中断对系统正常运行很重要,长时间屏蔽很危险,所以中断屏蔽后应尽可能快的执行完毕。    宜与自旋锁联合使用。使用    local_irq_disable()    local_irq_enable()只能禁止和使能本地CPU的中断,所以不能解决多CPU引发的竞态    local_i

2013-01-18 13:43:19 2520

原创 linux并发控制之总章

一.概念1.并发(concurrency)指多个执行单元同时,并行被执行。2.并发的执行单元对共享资源,(比如说,硬件资源,全局变量,静态变量等)访问很容易导致竞态(race conditions)。举个简单事例,古代皇帝有很多妃子,皇帝第一个时辰是宜妃的,第二个时辰是萱妃,最后时间是皇后的,这是原来正常的顺序。假如宜妃让皇帝赖床了,萱妃不爽了,然后萱妃时间冲突了,皇后也不爽了,竞争就

2013-01-18 12:59:25 851

iso14443协议中文版.pdf

iso14443协议中文版.pdf

2020-05-08

ISO7816中英版zip.zip

ISO7816中英版zip.zip

2020-05-08

串口模拟单片机S7816.zip

串口模拟单片机S7816.zip

2020-05-08

空空如也

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

TA关注的人

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