自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (24)
  • 收藏
  • 关注

转载 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

参照在Ubuntu上为Android系统编写Linux内核驱动程序一文所示,准备好示例内核驱动序。完成这个内核驱动程序后,便可以在Android系统中得到三个文件,分别是/dev/hello、/sys/class/hello/hello/val和/proc/hello。在本文中,我们将通过设备文件/dev/hello来连接硬件抽象层模块和Linux内核驱动程序模块。      二. 进入到在h

2013-07-26 14:03:14 670

转载 常用driver模板

给应用程序写read,write驱动头文件#include #include #include #include #include #include #include #include "hello.h"/*主设备和从设备号变量*/static int hello_major = 0;static int hello_minor = 0;/*设备类别和设备变

2013-07-26 13:51:02 962

转载 Linux USB-Wifi Driver

1. USB设备枚举过程     设备在插入USB 接口到设备成功找到它自己的驱动这一过程为:当把USB 设备插到USB 接口上后,USB 中央控制器会检测到有设备插入USB 接口了,Linux 内核会给设备分配一个数据结构来代表这个设备,Linux 会分配一个struct usb_device 数据结构来代表该设备,该数据结构记录设备的一些属性及数据。并把该数据结构挂载到一个全局的USB 设

2013-07-26 13:28:07 4842 1

转载 Android WiFi 应用程序例子

首先需要强调一点的是wifi只能在真机上测试!        在Android里,所有的wifi操作都在android.net.wifi包里,而常用的类也就只用几个,对于一般的开发人员来说,常用的操作也是有限的,不需要刻意的去记,用的时候现查就ok了,下面是《Android应用开发揭秘》里面关于wifi的范例,个人感觉还挺齐全,跟大家分享一下!package com.yarin.andro

2013-07-26 13:15:52 819

转载 WiFi信号强度--SIGNAL_POLL

WiFi Command流程 3. wpa_supplicant启动流程4. WifiService启动流程5. SIGNAL_POLL调用流程eloop_run->..wpa_supplicant_ctrl_iface_receive-> //接收并处理来自framework的commandwpa_supplicant_ctrl_iface_process->

2013-07-26 10:39:56 2657

转载 Android4.x 如何处理Power按键

1. 简介        Android4.x在Framework的PhoneWindowManager对Power(KeyEvent.KEYCODE_POWER)和Home(KeyEvent.KEYCODE_HOME)键做了处理,不会把这些键传送上层应用程序。如需要把这些键发送给Activity和Service,需要在PhoneWindowManager处理这些键时“发送一个广播出去,然后在

2013-07-26 10:30:49 838

转载 Android4.0 G-Sensor工作流程

1. 简介    在了解Sensor工作流程以前,一直以为其事件是通过Event Hub来进行输送的,可是研究完Android4.0代码之后,才发现自己错了。    其主要框架如下图所示: 2.功能模块2.1 SensorManager.java与下层接口功能:1) 在SensorManager函数中   (1) 调用native sensors_module_

2013-07-26 09:57:59 1440

原创 iperf交叉编译

下载iperf-2.0.5.tar.gz# tar xvf iperf-2.0.5.tar.gz # cd iperf-2.0.5# export PATH=/opt/buildroot-gcc342/bin:$PATH/*如果是arm,则arm-linux。要保持跟gcc一致。*例如arm平台一般是arm-linux-gcc,则设置host=arm-linux。如

2013-07-25 17:59:17 7772

转载 linux 时钟详解

在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的应用。最后对全文进行了总结。◆1、

2013-07-24 15:38:23 2099

转载 中断处理中tasklet与工作队列的使用

#include #include #include #include //define a devidstatic int mydev=1119;static int irq;static char* devname=NULL;//define arguments for this modulemodule_param(irq,int,0644);module_par

2013-07-24 11:33:13 758

转载 platform_get_resource解析

platform_get_resource函数源码如下:struct resource *platform_get_resource(struct platform_device *dev, unsigned int type, unsigned int num){ int i; for (i = 0; i num_r

2013-07-24 10:48:15 7753

原创 platform_device和platform_driver

platform_device和platform_driver(一)首先介绍一下注册一个驱动的步骤:1、定义一个platform_driver结构2、初始化这个结构,指定其probe、remove等函数,并初始化其中的driver变量3、实现其probe、remove等函数看platform_driver结构,定义于include/linux/platform_device

2013-07-24 10:44:38 812

原创 linux driver wait queue

在Linux驱动程序中,可以使用等待队列(wait queue)来实现阻塞进程的唤醒。wait queue很早就作为一种基本的功能单位出现在Linux内核里了,它以队列位基础数据结构,与进程调度机制紧密结合,能够用于实现内核中异步事件通知机制。等待队列可以用来同步对系统资源的访问。(信号量在内核中也依赖等待队列来实现).    Linux-2.6提供如下关于等待队列的操作:    (1)

2013-07-23 17:22:25 773

转载 linux drver Makefile模板

################################################################## file name: Makefile# A simple Makefile for driver# by Late Lee at www.latelee.org# based on LDD3 and other guys works# copyleft

2013-07-23 16:42:26 1146

转载 快速选择SELECT算法的实现

本节,咱们将依据下图所示的步骤,采取中位数的中位数选取枢纽元的方法来实现此SELECT算法,    不过,在实现之前,有个细节我还是必须要提醒你,即上文中2.2节开头处所述,“数组元素索引是从“0...i”开始计数的,所以第k小的元素应该是返回a[i]=a[k-1].即k-1=i。换句话就是说,第k小元素,实际上应该在数组中对应下标为k-1”这句话,我想,你应该明白了:返回数组中第k小的元素,

2013-07-23 11:27:14 6021

原创 如何给10^7个数据量的磁盘文件排序

//purpose: 生成随机的不重复的测试数据 //1000w数据量,要保证生成不重复的数据量,一般的程序没有做到。但,本程序做到了。 #include #include #include #include #include #include #include #include #include #define BITSPERWORD 32#defin

2013-07-23 10:17:55 783

原创 高效产生不重复的随机数

//purpose: 生成随机的不重复的测试数据 //1000w数据量,要保证生成不重复的数据量,一般的程序没有做到。但,本程序做到了。 #include #include #include #include #include #include #define size 10000000 int num[size] = {0}; void swap(i

2013-07-22 16:37:37 1119

转载 位操作

/* base.h:基本操作的位运算实现 */#ifndef BASE_H#define BASE_H#define word int#define uword unsigned int/* 将最右侧的1位改成0位 */#define right1to0(x) ((x)&((x)-1))/* 向右传播最右侧的1位 */#define right1torig(x) ((x)

2013-07-22 13:17:39 908

转载 boom filter

boomfilter.h#ifndef __BLOOM_H__#define __BLOOM_H__#include typedef unsigned int (*hashfunc_t)(const char *);typedef struct { size_t asize; unsigned char *a; size_t nfuncs; hash

2013-07-22 11:01:44 1012

转载 bit-map海量数据处理

海量数据排序问题:文件包含1千万条电话号码记录(10**7次方),每条记录都是7位整数,没有重复的整数。要求对文件进行排序,注意大约只有1MB的内存空间可用,有充足的磁盘存储空间可用。请设计一个高效的算法。  (1)运用多趟算法:如果每个号码都使用32位整数来表示,则在1MB存储空间里大约可以存250000个号码。因此,可以使用遍历输入文件40趟的程序来完成排序。在第一趟中,将0至249999

2013-07-22 10:54:57 744

转载 排序

1、直接插入排序:把后面未排序部分的首个数插入到前面已排序部分的正确位置上去,直到全部排好顺序。直接插入排序是稳定的,算法时间复杂度O(n^2)。[cpp] view plaincopy/* 直接插入排序 */  void insert_sort(int v[],int n){      register int i,j,temp;      for(i=1; i/* 

2013-07-22 10:50:22 584

转载 数据结构之队列

queue.h #ifndef __QUEUE_H__ #define __QUEUE_H__ typedef struct Queue_node { void *data; struct Queue_node* next; }Queue_node; typedef struct Queue {

2013-07-19 17:37:15 656

转载 查找有序序列中 重复/不存在 的数算法

/* * 查找有序序列中 重复/不存在 的数算法演示 * 版权所有:http://www.cppblog.com/converse/ */#include #include #include #define FUNC_IN() printf("\nin %s\n\n", __FUNCTION__)#define FUNC_OUT() printf("\nout %s\n

2013-07-19 14:25:33 1172

原创 二分查找算法

int search(int array[], int n, int v){ int left, right, middle; left = 0, right = n - 1; while (left <= right) { middle = (left + right) / 2; if (array[middle] > v)

2013-07-19 14:17:42 588

原创 fls - find last (most-significant) bit set

static int fls(int x) { int r = 32; if (!x) return 0; if (!(x & 0xffff0000u)) { x <<= 16; r -= 16; } if (!(x & 0xff000000u)) {

2013-07-19 14:15:11 1017

原创 android OTA修改

def WriteFullOTAPackage(input_zip, output_zip): # TODO: how to determine this? We don't know what version it will # be installed on top of. For now, we expect the API just won't # change very

2013-07-18 17:01:26 5030

转载 android OTA

Android原生系统中就已经支持OTA升级。所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件。一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级。     OTA升级首要是生成OTA升级包,升级包又分为升级全包和升级差分包(或要增量包)。升级全包是编译当前系统得到的软件包,这个包很大,有上百兆,但是不依赖与当前手机里的软件版本;升级差分包是对手机两个软件版

2013-07-18 16:43:09 6624

转载 Android中调用系统所装的软件打开文件

在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下!这个是打开文件的一个方法: /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent

2013-07-18 16:24:12 801

转载 Android的init过程详解

目前Linux有很多通讯机制可以在用户空间和内核空间之间交互,例如设备驱动文件(位于/dev目录中)、内存文件(/proc、/sys目录等)。了解Linux的同学都应该知道Linux的重要特征之一就是一切都是以文件的形式存在的,例如,一个设备通常与一个或多个设备文件对应。这些与内核空间交互的文件都在用户空间,所以在Linux内核装载完,需要首先建立这些文件所在的目录。而完成这些工作的程序就是本文要

2013-07-17 18:00:27 889

转载 linux sys节点属性

从底层把值传给上层有很多种方法,sysfs就是很简单的一个:提到sysfs,就不得不提函数宏 DEVICE_ATTRDEVICE_ATTR的原型:#define DEVICE_ATTR(_name,_mode,_show,_store)\struct device_atttribute dev_attr_##_name = __ATTR(_name,_mode,_show,_sto

2013-07-17 13:46:19 5261

转载 driver MODULE参数

1. MODULE_DEVICE_TABLE (usb, skel_table);该宏生成一个名为__mod_pci_device_table的局部变量,该变量指向第二个参数。内核构建时,depmod程序会在所有模块中搜索符号__mod_pci_device_table,把数据(设备列表)从模块中抽出,添加到映射文件/lib/modules/KERNEL_VERSION/modules.pci

2013-07-17 13:14:19 980

转载 platform设备驱动全透析

1.platform总线、设备与驱动       在Linux 3.x 的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。        一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等

2013-07-17 11:04:10 651

转载 网卡驱动编写方法

在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册

2013-07-17 10:01:19 6916

转载 Qt5.0.2 + MinGW编译出来的程序发布

鉴于自己在windos下发布Qt5.02程序时遇到的问题,花了几天的实际终于解决了。为方便后来者发布Qt程序遇到相同的问题,避免走不必要的弯路,浪费时间。现将在windows下发布Qt5.0.2程序遇到的问题,及相应的解决方案详细描述如下: Qt5.0.2 + MinGW编译出来的程序发布的时候,大致需要以下dll文件:  在Qt的安装目录下可以找到这些dll, 目录为:C:\Qt\Q

2013-07-16 15:43:59 9008 2

原创 pthread_cond_broadcast相关

pthread_cond_timedwait()函数阻塞住调用该函数的线程,等待由cond指定的条件被触发(pthread_cond_broadcast() or pthread_cond_signal())。当pthread_cond_timedwait()被调用时,调用线程必须已经锁住了mutex。函数pthread_cond_timedwait()会对mutex进行【解锁和执行对条件

2013-07-15 14:28:13 25919 4

转载 Linux 计时器 函数

程序注册三个定时器,分别对实际时间、进程使用CPU时间、用户使用CPU时间进行即时,计时时间为10秒。同时设定一个用户信号,当该信号在用户指定的空计次循环后到来。在用户信号到来后,打印各个计时器走过的时间值,并计算出内核所用的时间。到实际时间计时器到达10秒后产生定时器信号时,程序打印各计时器走过的时间,并退出程序。因为需要获得定时器的时间,因此,我们需要使用setitimer和getitim

2013-07-15 14:10:55 721

转载 linux driver Makefile模板

################################################################## file name: Makefile# A simple Makefile for driver# by Late Lee at www.latelee.org# based on LDD3 and other guys works# copy

2013-07-12 14:53:55 1081

原创 linux daemon例子

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。  守护进程的编程本身并不

2013-07-12 14:41:48 7134

转载 socket select等例子

一、 select方式:设置放置socket句柄的集合变量把要判断的socket句柄放到集合设置超时时间执行select操作根据select操作返回值做相应处理(连接、读、写等)#include #include #include #include #include #include #include #include #include #define MYPORT

2013-07-12 11:33:00 638

原创 makefile模板(应用程序)

TARGET := uart2netSRCS := main.c \ fifo.c \ serial.c \ epoll.cCROSS_COMPILE =GCC := $(CROSS_COMPILE)gccG++ := $(CROSS_COMPILE)g++ OBJS := ${SRCS:.c=.o} DEPS := ${

2013-07-11 15:05:57 2344

DQPSK MATLAB 实现演示

DQPSK MATLAB 实现演示

2022-11-29

无线信道模型简介,Jakes' models

无线信道模型简介,Jakes' models

2022-11-29

802.11az 参考文档

IEEE 802.11az 参考文档

2022-11-29

WIFI 7 IEEE 802.11BE

WIFI 7 IEEE 802.11BE标准文档,WIFI协议开发参考手册

2022-11-29

Core_v5.2.zip

压缩包里面包含了最新的bluetooth 协议完整描述,包括BLE 2M。对研究蓝牙PHY,MAC层有参考意义

2020-08-11

C++ 11英文原版参考书

C++ 11英文原版参考书。做为C++ 11开发不可多得的参考书籍

2017-11-21

深入理解 C++ 11 PDF文档

深入理解 C++ 11 PDF文档,带书签。作为学习C++ 11新特性的一本参考书籍

2017-11-21

visualgdb 5.1r4

visualgdb 5.1r4的破解版 ,方便大家在windows是开发Linux代码

2016-08-01

Sublime Text 3

Sublime Text 3 ,开发神器。方便快捷的编辑器

2015-07-03

SecureCRT_x86 v7.0

SecureCRT_x86 v7.0,非常好用的调试工具。欢迎大家下载使用

2015-07-03

c#控制摄像头

c#控制摄像头,能够录像视频和抓取照片,列出所有USB摄像头。简单的一个demo程序

2015-04-25

IEEE 802.11N

IEEE 802.11N 的标准文档。希望对研究wifi协议的朋友有用

2015-04-15

ieee 802.11 b文档

IEEE 802.11b的协议文档。学习wifi协议必备,希望对大家有用

2015-04-15

IxChariot 6.70 + Endpoint 7.10 (linux & windows)005

IxChariot 6.70 Console 加 Windows(32bit&64bit) 及 Linux(ubuntu: 32bit & 64bit) 7.10 版本的endpoint; linux中也有7.30的endpoint, 但没测试。 在windows 8.1 及 ubuntu 12.04上亲测可用。 由于附件限制60M, 所以分了5个包, 下载后请使用7z解压。

2014-08-20

IxChariot 6.70 + Endpoint 7.10 (linux & windows)004

IxChariot 6.70 Console 加 Windows(32bit&64bit) 及 Linux(ubuntu: 32bit & 64bit) 7.10 版本的endpoint; linux中也有7.30的endpoint, 但没测试。 在windows 8.1 及 ubuntu 12.04上亲测可用。 由于附件限制60M, 所以分了5个包, 下载后请使用7z解压

2014-08-20

IxChariot 6.70 + Endpoint 7.10 (linux & windows) 003

IxChariot 6.70 Console 加 Windows(32bit&64bit) 及 Linux(ubuntu: 32bit & 64bit) 7.10 版本的endpoint; linux中也有7.30的endpoint, 但没测试。 在windows 8.1 及 ubuntu 12.04上亲测可用。 由于附件限制60M, 所以分了5个包, 下载后请使用7z解压

2014-08-20

IxChariot 6.70 + Endpoint 7.10 (linux & windows) 002

IxChariot 6.70 Console 加 Windows(32bit&64bit) 及 Linux(ubuntu: 32bit & 64bit) 7.10 版本的endpoint; linux中也有7.30的endpoint, 但没测试。 在windows 8.1 及 ubuntu 12.04上亲测可用。 由于附件限制60M, 所以分了5个包, 下载后请使用7z解压。

2014-08-20

IxChariot 6.70 + Endpoint 7.10 (linux & windows) 001

IxChariot 6.70 Console 加 Windows(32bit&64bit) 及 Linux(ubuntu: 32bit & 64bit) 7.10 版本的endpoint; linux中也有7.30的endpoint, 但没测试。 在windows 8.1 及 ubuntu 12.04上亲测可用。 由于附件限制60M, 所以分了4个包, 下载后请使用7z解压。

2014-08-20

内核fifo在应用层的实现

linux 内核中的kfifo在应用层上的实现。可以很好的拿来做memroy pool测试

2013-07-29

FAT16与FAT32文件系统

关于嵌入式方面的FAT16与FAT32文件系统的实现,包括了ISO9660方面的东西

2009-11-16

windows下的汉字字模提取

提取windows下的ttf矢量字体的字模,生成单色字模文件。可用于单色字库的生成

2009-11-16

服务器均衡负载的开源代码

国外比较著名的服务器均衡负载的开源代码,希望对大家有用

2009-11-16

VHDL语言开发参考

一个VHDL语言开发的参考书籍。希望大家喜欢

2009-03-14

空空如也

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

TA关注的人

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