自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(294)
  • 资源 (801)
  • 收藏
  • 关注

原创 检查数组的每个单元对应的bit位是否相同为0,相同就set

for (i = 0;i  {  zerocount = 0;  for (row = 0; row pdata->num_rows; row++) {   if(!((new_data[row] >> i) & 0x01))    {    zeroco

2011-09-02 07:52:19 945

原创 Hostapd简介

Hostapd简介 hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(Soft AP)。 Hostapd的功能就是作为AP的认证服务器,负责控制管理stations(通常可以认为带无线网卡的PC)的接

2011-08-12 01:42:02 16418 2

原创 BT 和WIFI的共存

蓝牙和WIFI的共存主要是解决蓝牙和WIFI的共用一根天线的问题。一般是3线模式,有3根线,分别是BT_ACTIVE    WIFI_ACTIVE    和BT_priority当BT要用天线的时候BT_ACTIVE   信号有效,告诉WIFI,希望将天线却换到BT状态;

2011-08-12 01:24:13 10267

原创 手机modem信号流程

打电话发射信号的流程声音经过MIC,放大后经过基带芯片的ADC变成数字音频信号转换为基带I,Q信号,再通过transceiver,上变换为高频信号,通过信号切换开关进入功率放大后经过声表面滤波器后由天线发射出去到基站。打电话接收信号的流程基站的高频信号通过

2011-08-12 01:14:18 4540

原创 sdio 热插拔流程

sdio 热插拔流程 由于SD卡插槽采用的是机械式开关,在插拔卡的时候,机械开关断开、闭合.系统初始化时,开关检测引脚被设置为上升沿和下降沿触发,因此引脚电平发生变化时,都会有中断产生。当硬件产生中断时,系统进入核心ISR,对开关检测引脚进行检测,返回相应的中断标识码,对于是SD插入还是拔出,则由驱动程序的IST来处理。由于SD卡插槽采用的是机械式开关,在插拔卡的时候,机械开关

2011-08-05 07:14:37 7967 3

原创 如何改变只读的system或者根文件系统为读写

mount  -o  rw,remount  /system     改变只读的system文件系统为读写mount  -o  rw,remount  /              改变只读的根文件系统为读写修改了文件后要sync

2011-08-04 00:18:18 10778

原创 如何touch一个目录及其下所有嵌套子目录中的文件?

如何touch一个目录及其下所有嵌套子目录中的文件?touch `find 目录名 -name *.c`就可以了。

2011-08-04 00:14:59 11057

原创 WIFI的电源管理

iwconfig   ps_mode   是设置设备与AP处于链接状态,不同通信的间隔来省电sleepmode 是将网卡进入deepsleep或者断电的模式来省电

2011-07-26 23:51:29 4573 1

原创 wifi移植

1,更改device目录的boardconfig.mk 增加驱动的环境变量2,更改kernel/arch/arm/mach-xxx/board-xxxx.c增加struct platform_device xxx_device_wifi= { .name = "ar-wifi",

2011-07-23 07:32:02 2967

原创 android WIFI 流程

android WIFI 流程 一、WIFI的基本架构    1、wifi用户空间的程序和库:         external/wpa_supplicant/       生成库libwpaclient.so和守护进程wpa_supplicant。    2、hardware/

2011-07-22 00:45:29 4639 2

原创 Trace32 Simulator for ARM工具。

Trace32 Simulator for ARM Trace32 ICD ARM USB能实时Debug程序在手机中的运行情况,需要连接Trace32硬件才可以工作。当机器crash死机后使用Trace32的WIN32版本,把手机Crash时的寄存器信息dump出来,就能在WIN32下定位到死在程序代码的那一行.Qualcomm QPST获取dump    手机死机时,按"#

2011-06-30 23:09:00 13657

原创 android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制

android下如何通过jni监控wifi网络连接、dhcpcd执行和power电源控制=============================================================================================================libs/android_runtime/android_net_wifi_Wifi.cp

2011-06-30 00:24:00 5862 1

原创 android WIFI 架构和控制流程

一、WIFI的基本架构    1、wifi用户空间的程序和库:         external/wpa_supplicant/       生成库libwpaclient.so和守护进程wpa_supplicant。    2、hardware/libhardware_legary/wifi/是wifi管理库。    3、JNI部分:         frameworks/base/

2011-06-29 22:11:00 8899

原创 wifi 流程

启动wifi的过程1. WIFI JAVA layer:1.1. 当android系统启动WIFI 模块时, 它将调用 Wifiserver 类的setWifiEnabledBlocking函数。1.2. 在该函数中,如果是使能WIFI, 它将做四件事:    a. load wifi driver.    b. 启动wpa_supplicant.    c. 启动 event loop. 

2011-06-29 22:02:00 3048

原创 wifi 层次

 UI  |  |MMI (JAVA)   |   |hardware level (C++ /C)   |   |DRIVER   (C)   |   |model hardware   UI  |wifi-manager  |wifi.c  |supplicant  |driver

2011-06-28 23:49:00 1735

原创 Linux关于总线、设备、驱动的注册顺序

<br />Linux关于总线、设备、驱动的注册顺序<br />        设备挂接到总线上时,与总线上的所有驱动进行匹配(用bus_type.match进行匹配),<br />         如果匹配成功,则调用bus_type.probe或者driver.probe初始化该设备,挂接到总线上<br />         如果匹配失败,则只是将该设备挂接到总线上。 <br />+----> devices<br />|<br />|<br />|<br />---------------------

2011-05-22 01:54:00 4089

原创 如何修改设备驱动的加载顺序

<br />内核启动的时候,各个驱动初始化的工作在文件init/main.c中的do_basic_setup()函数中做.------------------------------------------------------------------------------------------------------<br />static void __init do_basic_setup(void)<br />{<br />        /* drivers will send hotplu

2011-05-22 01:38:00 4390 2

原创 enable_irq_wake(irq);有嵌套层次

  enable_irq_wake(irq);有嵌套层次,多次执行后如果去执行一次disable_irq_wake,结果不能够disable irq wake,要enable和disable的次数相同static inline int enable_irq_wake(unsigned int irq){ return set_irq_wake(irq, 1);}static inline int disable_irq_wake(unsigned int irq){ return set_irq_wake(

2011-05-15 03:01:00 5415

原创 android 的init rc 命名方法

<br />如果在root dir增加init。rc,由于init对其解析的时候要判断他的名字<br />所以有注意命名方法<br />比如原来平台的名字叫goldfish,如果你要增加init  rc,<br />名字就要init.goldfish.autotest.rc <br />也就是init.平台名字.XXXX.rc<br />否则不会执行

2011-05-15 02:50:00 1317

原创 gpio键盘的原理1

<br />#define GPIO_EVENT_DEV_NAME "gpio-event"<br />1,定义<br />static struct gpio_keys_button gpio_keys_buttons[] = {<br /> {<br />  .code           = SW_LID,<br />  .gpio           = LID_SENSOR_GPIO,<br />  .desc           = "Lid",<br />  .active_low     =

2011-05-15 02:40:00 2598

原创 gpio键盘的原理

gpio键盘1,定义gpio键盘的设备数据结构platform_device#define RX51_GPIO_CAMERA_LENS_COVER 110#define RX51_GPIO_CAMERA_FOCUS  68#define RX51_GPIO_CAMERA_CAPTURE 69#define RX51_GPIO_KEYPAD_SLIDE  71#define

2011-05-15 02:25:00 6629

原创 android 启动过程

<br />1. Boot系统初始化, (system/core/init/Init.c)中的main函数,这时候,手机或者模拟器出现的画面是一个console,显示“ANDROID”msg。<br /> <br />2. 初始化成功后,就开始mounting系统,具体参见(system/core/mountd/Mountd.c)  中的main函数。<br /> <br />3.接下来运行ndroidRuntime,并开始启动java虚拟机dalvikvm。<br /> <br />4. Java虚拟机启

2011-05-09 02:39:00 1386

原创 android poweroff 流程

<br />android poweroff 流程<br />关机流程<br /> <br />android系统都有一个关机按键,长按这个按键系统会进行关机操作。具体实现流程如下:<br /> <br />   在android层通过系统调用reboot(arg)调用内核中的sys_reboot,具体流程如下:<br />    reboot——>sys_reboot()——>kernel_power_off()——>machine_power_off()——>pm_power_off();<br />p

2011-05-09 02:33:00 2250

原创 bit操作

<br />#define BIT(nr)                 (1UL << (nr))<br />#define BIT_MASK(nr)            (1UL << ((nr) % BITS_PER_LONG))<br />#define BIT_WORD(nr)            ((nr) / BITS_PER_LONG)<br />#define BITS_PER_BYTE           8<br />#define BITS_TO_LONGS(nr)      

2011-04-24 22:20:00 1810

原创 ARM linux 内核gpio模拟I2C

gpio模拟I2CI2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA)。I2C是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位

2011-03-24 00:47:00 6331 2

原创 单片机看门狗的作用

看门狗的作用是系统CPU正常工作时定时给看门狗喂狗,复位定时器,如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。系统用初始化后注册看门狗中断request_irq(WDT0_ACCSCSSNBARK_INT, wdog_bark_handler, 0,      "apps_wdog_bark", NULL);和初始化看门狗的超时时间bark time, __raw_w

2011-03-22 23:26:00 12257

原创 android上层应用apk到G-sensor driver的大致流程

<br />android上层应用apk到G-sensor driver的大致流程:<br />Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念<br />1,源代码和目标位置<br />源代码: /hardware/libhardware目录,该目录的目录结构如下:<br />/hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录<br />/hardware/libhard

2011-03-19 01:27:00 11126 4

原创 延迟机制work_queue

<br />由于i2cbus的读写操作是可能休眠的,而中断中不允许调用可能休眠的函数,故通过linux提供的延迟机制work_queue来解决。<br />

2011-03-19 00:44:00 1632 2

原创 驱动调试基本条件和经验

驱动调试是要硬件相关的,经常要使用万用表,示波器,甚至逻辑分析仪检查问题。1,电源电压和电流要符合datasheet的规定范围,要多动手测试,特别是硬件刚刚准备开始调试的时候,电源要放在第一位。2,时钟要符合要求,工作频率和电平都要符合要求,幅度不能够过低或者过高,特别是不能够过低,否则不能够正常工作。3,复位电路是否正常,包括复位电平和复位的时间是否达到datasheet的要求。

2011-03-16 23:53:00 1444

原创 iphone红外传感器

红外距离感应原理      红外距离感应原理是通过发射特别短的光脉冲,并测量此光脉冲从发射到被物体反射回来的时间,通过测时间来计算与物体之间的距离。      红外距离感应器一般都需要两个感应装置,其中一个是发送一个则是接收。发送感应器先是垂直方向发送红外信号,当人的面部或其它靠近到有效范围时,红外信号通过面部进行反射,再将信号反射回接收部分从而实现距离感应功能。大家可以做个试验用通话时用一块透明的玻璃来遮挡距离感应部分,然后在用镜子(反光性最强)来遮挡,通过试验大家可以用看到玻璃遮挡是没有任何效果的,而镜

2011-03-12 01:21:00 9309

原创 linux gpio 键盘设备工作流程

<br />#####################################################################################################<br />以下以内核自带的gpio_keys驱动为例,介绍输入子系统的使用.<br />主要的原因是gpio_keys驱动比较简单易懂,另外不是没个人都有触摸屏,但键盘的话相信每一块开发板上都配有.,先从下到上的分析底层驱动是如何提交输入事件的:<br />###################

2011-03-11 01:48:00 3968 1

原创 enable_irq_wake

键盘驱动初始化时加入enable_irq_wake,当按键中断来时,就可以唤醒贪睡的内核

2011-03-10 23:26:00 12762 1

原创 耳机类型检测

耳机检测手机的耳机常见的3芯音频插头立体声耳机或带有麦克风的单声道耳机。可以用比较器区分出立体声和单声道+麦克风耳机。电路设计依据为:耳机电阻很低(通常为8Ω、16Ω或32Ω),而麦克风电阻很高(600Ω至10kΩ)。在一个3芯音频插孔中,“插头”前端在立体声耳机承载左声道音频信号,在带麦克风的单声道耳机中承载麦克风信号。对于立体声耳机,“金属环”位置连接右声道信号,“套筒”接地;对于带麦克风的单声道耳机,“金属环”连接单声道麦克风的输进音频通道,“套筒”接地。检测电路通过在比较器的输入端接2.2K的上拉电

2011-03-06 08:41:00 5770

原创 ARM的GPIO设置

ARM的GPIO设置主要1,设置GPIO的ID,设置哪一个gpio;2,设置GPIO的功能号,设置为那种模式,包括普通GPIO,特殊功能1,特殊功能2,。。。比如某个GPIO可以选择设置为普通gpio或者串口的输入,或者USB的D+功能之一,主要看datasheet的功能表3,设置GPIO方向为输入还是输出4,设置GPIO的驱动能力,1ma,2ma,3ma,4ma,5ma,6ma,

2011-03-06 01:36:00 11883 1

原创 RTC功能

<br />RTC的功能是日历功能和闹钟功能<br />设置和获取日历的年月日,时分秒<br />设置闹钟的年月日时分秒<br />设置闹钟步骤,<br />1,首先复位alarm,消除状态<br />2,关闭中断,<br />3,注册中断服务程序<br />4,将要设置的闹钟时间设置到RTC,如果给的alarm时间是相对的时间秒数,还要读出当前的时间,将alarm的相对秒数加上当前的时间的绝对秒数,在将年月日时分秒设置到RTC,如果给你参数是绝对的秒数,要成为年月日时分秒设置到RTC<br />5,当日历

2011-03-05 01:02:00 6749

原创 android boot.img 结构

android 的boot.img 包括 boot header,kernel, ramdisk首先来看看Makefile是如何产生我们的boot.img的:boot镜像不是普通意义上的文件系统,而是一种特殊的Android定制格式,由boot header,压缩的内核,ramdisk以及second stage loader(可选)组成,可以从mkbootimg.h文件中看到。b

2011-03-02 23:15:00 28971 3

原创 LCD 背光

LCD的背光由驱动产生文件/sys/class/leds/lcdbacklight/brightness对LCD的背光亮度调整,原理是改变PWM信号的占空比来设置亮度一个参数是PWM信号的周期,另一个参数是PWM信号的占空比backlight_ops结构体定义如下:struct backlight_properties {int brightness;//当前亮度,最大值不能超过max_brightnessint max_brightness;//最大亮度,只读int power;//当前的电源模式int

2011-03-02 22:55:00 2113

原创 android虚拟按键

 android虚拟按键android标准键盘是有 HOME,MENU,BACK,SEARCH等,但是同时要保持工业设计。nexus one没有用普通按键用触摸屏实现,显示屏是800X480,但是在电容触摸屏是8xx*480的就是比800要大的地方就变成了虚拟按键,模拟了android标准按键。1    方案要实现虚拟按键,在android里面是靠两层协助实现,底层要把虚拟按键在比显示屏多出的地方规定好虚拟按键的位置大小以及键值等,给上层一文件接口。上层java层启动一个服务来读取这一区域的按键响应,这样就

2011-02-27 20:11:00 16389 3

原创 工作队列的使用例子

<br />工作队列(work queue )是另外一种将工作推后执行的形式.<br />Linux 2.6内核使用了不少工作队列来处理任务,他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠,而tasklet的函数是不允许使用休眠的。<br />工作队列的使用又分两种情况,一种是利用系统共享的工作队列来添加自己的工作,这种情况处理函数不能消耗太多时间,这样会影响共享队列中其他任务的处理;另外一种是创建自己的工作队列并添加工作。<br />工作、工作队列和工作者线程<br />我们把推后执行

2011-02-26 04:11:00 5413 2

原创 cpufreq 五种模式

cpufreq是一个动态调整cpu频率的模块,系统启动时生成一个文件夹/sys/devices/system/cpu/cpu0/cpufreq/,里面有几个文件, 其中scaling_min_freq代表最低频率,scaling_max_freq代表最高频率,scalin_governor代表cpu频率调整模式,用它来控制CPU频率其中  1,performance :顾名思义

2011-02-21 01:16:00 31475 1

jdk-1_5_0_19-linux-i586.bin for linux

jdk-1_5_0_19-linux-i586.bin java 1.5 JDK1.5 JDK JDK 1.5 for linux 1.安装 shell终端下进入jdk-1_5_0_19-linux-i586-rpm.bin文件所在目录, 赋权 chmod +x jdk-1_5_0_19-linux-i586-rpm.bin 运行 ./jdk-1_5_0_19-linux-i586-rpm.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。 之后会把jdk安装到/usr/java/jdk1.5.0_19下面 2.配置环境变量 用vi编辑配置文件: vi /etc/profile JAVA_HOME=/usr/java/jdk1.5.0_19 CLASSPATH=$JAVA_HOME/jre/lib:. PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH 保存退出按Esc然后输入:wq 使配置生效 source /etc/profile 如果配置错误会有提示 3.测试是否成功 shell终端输入 java -version 如果出现下面提示说明成功: java version "1.5.0_19" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02) Java HotSpot(TM) Client VM (build 1.5.0_19-b02, mixed mode, sharing) 否则回到2,继续修改,直到正确为止

2014-12-30

How to use CPU frequency scaling

How to use CPU frequency scaling How to use CPU frequency scaling DVFS DVFM

2012-05-16

UE-17.10.0.1010-win7

UE-17.10.0.1010-win7 可在windows XP 和win7环境用 带注册机

2012-05-13

SECURECRT for WIN7

SECURECRT for WIN7 带破解方法

2012-05-13

PL2303-win7

PL2303-win7 USB转串口驱动 可以用于window-xp 和WIN7

2012-05-13

FT232R驱动程序-win7

FT232R驱动程序-可用于windowsxp win7 USB转串口

2012-05-13

IEC_60908_1999

IEC_60908_1999 CDDA 白皮书

2012-05-06

Easy CD-DA Extractor

Easy CD-DA Extractor是一款优秀的音乐CD抓取、格式转换、光盘刻录软件,满足你对音乐的最常用编辑需求。它提供高效音乐CD抓取功能,能直接抓取防拷贝CD,并将音乐输出为MP3, Windows Media Audio 8 and 9, Ogg Vorbis, MP4, M4A, AAC, FLAC, VQF, WAV, AIFF, Monkeys Audio格式和其他任何命令行编码器支持的格式。对直接输入的MP1, MP2, MP3, WMA, Ogg Vorbis, MP4, M4A, AAC, FLAC, VQF, WAV, 和Monkeys Audio音频进行音量调整、Fade In/Out、Silence deletion并转换成MP3, Windows Media Audio 8 and 9, Ogg Vorbis, MP4, M4A, AAC, FLAC, VQF, WAV, AIFF, Monkeys Audio格式和其他任何命令行编码器支持的格式。音乐光盘刻录功能可以直接读取MP1, MP2, MP3, WMA, Ogg Vorbis, MP4, M4A, AAC, FLAC, VQF, WAV, 和Monkeys Audio格式文件,写入任何品牌的刻录机,还提供buffer underrun prevention保护。

2012-05-06

锂电池保护板

锂电池保护板 锂电池保护板 锂电池保护板

2012-04-27

锂电池过充电_过放_短路保护电路详解

锂电池过充电_过放_短路保护电路详解.doc

2012-04-27

充电电池保护IC的实现原理

充电电池保护IC的实现原理 充电电池保护IC的实现原理

2012-04-27

锂电池的管理芯片HDQ--BQ2050

锂电池的管理芯片HDQ--BQ2050 HDQ协议

2012-02-17

source insight win7

sourceinsight3565--SI3US-361500-17409 支持win7

2011-12-15

sourceinsight-WIN7-SN-SI3US-361500-17409

source insight 3.50.0065 带注册码。支持WINXP win7 X64

2011-12-10

内存时序的概念和设置

内存时序的概念和设置 内存时序的概念和设置

2011-09-28

DDR内存时序设置详解

DDR内存时序设置详解 DDR内存时序设置详解

2011-09-28

最详细的DDR内存时序讲解

最详细的DDR内存时序讲解最详细的DDR内存时序讲解

2011-09-28

trace32的使用培训

trace32的使用培训 trace32的使用培训

2011-09-28

TRACE32-安装和使用

TRACE32-安装和使用 TRACE32-安装和使用

2011-09-27

Nero Burning Rom v9.4.26.0b 注册机

Nero Burning Rom v9.4.26.0b 注册机

2011-09-18

wmp11-windowsxp-x86-zh-cn.exe

wmp11 windows media play 11

2013-11-22

Secure-CRT70-x64 win7

Secure-CRT70-x64 win7 64位版本,带安装方法

2013-08-21

USB转串口cp2102驱动

USB转串口cp2102驱动

2013-06-01

EM4200 ID copy

EM4200 ID copy 拷贝软件

2013-06-01

摩托罗拉里程碑1 XT702驱动刷机工具刷机包

摩托罗拉里程碑1 XT702驱动刷机工具刷机包

2013-05-22

Apple iPod、iPhone充电器電路原理图(TL431)

Apple iPod、iPhone充电器電路原理图(TL431)

2013-03-05

索尼内部Xperia s (lt26i) 拆机指南手册

索尼内部Xperia s (lt26i) 拆机指南手册

2013-02-23

基于移动通讯终端的ESD

基于移动通讯终端的ESD

2013-01-20

8051-IIC总线读写程序

8051-IIC总线读写程序

2013-01-17

GPIO模拟IIC的参考程序

GPIO模拟IIC的参考程序

2013-01-17

智能手机和平板电脑设计中的单键开关机和复位的智能方案

智能手机和平板电脑设计中的单键开关机和复位的智能方案

2013-01-13

SN3193呼吸灯驱动调试

SN3193呼吸灯驱动调试

2013-01-13

_LCD设备驱动介绍

_LCD设备驱动介绍 ppt

2013-01-12

SN3193驱动

SN3193驱动

2013-01-12

gpio模拟i2c

gpio模拟i2c

2013-01-09

GPIO 模拟I2C程序

GPIO 模拟I2C程序

2013-01-09

arm GPIO 模拟I2C程序

arm GPIO 模拟I2C程序

2013-01-09

linux设备驱动第三版中文版(多个版本)

linux设备驱动第三版中文版(多个版本)

2013-01-02

Understanding+the+Linux+Kernel+3rd+Edition

Understanding+the+Linux+Kernel+3rd+Edition

2013-01-02

utraedit-32 16.20

utraedit-32 16.20 用户名:wo_xiaohei 序列号:HEBIQ-JHXKI-DXILC-NDVQW-KRSPP-EPNIJ-MRIKV-RQERZ

2012-10-31

空空如也

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

TA关注的人

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