自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

石头的专栏

深入理解Android与其他技术,管理,人生百态,团队建设等

  • 博客(74)
  • 资源 (2)
  • 收藏
  • 关注

转载 Android4.0 external下功能库说明

Android 4.0 external下功能库说明android-mock:编译为java静态库。说明:Android Mock is a framework for mocking interfaces and classes on the Dalvik VM。资料http://code.google.com/p/android-mock/ antlr:编译为j

2012-07-13 18:19:32 831

转载 MMC, SDIO, SD

MMC/SD介绍及SDI主机控制器首先我们来理清几个概念:MMC:(Multi Media Card)由西门子公司和首推CF的SanDisk于1997年推出的多媒体记忆卡标准。SD:(Secure Digital Memory Card)由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制的新一代记忆卡标准,已完全兼容MMC标准。SDIO:(Secure Digital

2012-07-13 14:55:05 4090

转载 看门狗(Watchdog)驱动开发实例讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、相关概念1、平台设备及平台设备驱动:这个在前面篇幅:S3C2440上RTC时钟驱动开发实例讲解中已经讲过了。这里只需了解一下系统为我们定义的看门狗(Watchdog)平台设备及资源情况,在ar

2012-07-13 14:54:36 3932

转载 内核I2C子系统详解

1.1 I2C总线知识1.1.1  I2C总线物理拓扑结构     I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。1.1.2  I2C总线特征    I2C总线

2012-07-13 14:54:30 1851 1

转载 DRM

简而言之,DRM系统提供一套机制对用户使用手机上的媒体内容(如ringtong,mp3等)进行限制,如限制拷贝给第三方,限制使用次数或时限等,从而保护内容提供商的权利。建议读者可以阅读OMA DRM的规范,以便更好的了解代码。相关代码主要位于下列目录:frameworks/base/media/java/android/drm/mobile1frameworks/base/medi

2012-07-13 14:54:29 922

转载 触摸屏驱动实例开发讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、前提知识1、Linux输入子系统(Input Subsystem):   在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(E

2012-07-13 14:54:25 3611

转载 ADC驱动实例开发讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、硬件原理分析                               S3C2440内部ADC结构图我们从上面的结构图和数据手册可以知道,该ADC模块总共有8个通道可以进行模拟信号的输

2012-07-13 14:54:22 793

转载 Linux内核的cpufreq(变频)机制

linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。设备驱动级:主要实现对单个设备驱动

2012-07-13 14:54:07 981

转载 poll机制分析

本文为转载,作者——韦山东,转载地址:http://www.100ask.net/showtopic-2399.aspx    所有的系统调用,基于都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_write、sys_poll。一、内核框架:

2012-07-13 14:54:04 365

转载 wifi测试相关(iwconfig,WPA Supplicant用法)

iwconfig用法1.打开无线网卡电源iwconfig wlan0 txpower no2.列出区域内的无线网络iwconfig wlan0 scan3.假设要连接到网络myhome(即essid为myhome的网络),那么输入命令iwconfig wlan0 essid "myhome"如果网络是加密的,密码是0123456789,那么就输入

2012-07-13 14:53:55 910

转载 GPIO

标识端口-------------gpio使用0~MAX_INT之间的整数标识,不能使用负数。使用以下函数检查一个端口号的合法性:int gpio_is_valid(int number);使用gpio-------------使用io的第一步是分配端口,使用 gpio_request()。接下来要做的是标记它的方向。/*设为输入或者输出,成功返回零或者失败

2012-07-13 14:53:51 914

转载 内核通知链机制的原理及实现(转载)

一、概念:    大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。 通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执

2012-07-13 14:53:28 363

转载 LCD驱动(FrameBuffer)实例开发讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:   要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与

2012-07-13 14:53:18 459

转载 浏览器及web widget

浏览器相关的代码主要位于以下三个位置:1. external/webkit该目录下存放开源的Webkit c/c++代码。2. frameworks/base/core/java/android/webkitexternal/webkit的java封装。提供了用于开发浏览器应用的java类库。这些类库使用JNI访问external/webkit中相应的功能。3. package

2012-07-10 14:25:43 641

转载 RTC时钟驱动开发实例讲解

一、开发环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、相关概念1、平台设备:通常在Linux中,把SoC系统中集成的独立外设单元(如:I2C、IIS、RTC、看门狗等)都被当作平台设备来处理。在Linux中用platform_device结构体来

2012-07-10 14:25:39 1447

转载 ARM MMU工作原理剖析

嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。共享资源,欢迎转载:http://hbhuanggang.cublog.cn一、MMU的产生      许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应

2012-07-10 14:25:35 307

转载 Linux内核常用的一些宏的收集(精)

一、中断类:     1. 中断类型: 在request_irq(irq, handler, flags, devname, dev_id)中使用    #define SA_SHIRQ            共享中断(旧版本的,2.6.19之前的内核)    #define IRQF_SHARED         共享中断(新版本的)    #define SA_INTERR

2012-07-10 14:25:33 401

转载 LED驱动在2440上的实例开发

二、实现步骤1. 硬件原理图分析。由原理图得知LED电路是共阳极的,并分别由2440的GPB5、GPB6、GPB7、GPB8口控制的2. 去掉内核已有的LED驱动设置,因为IO口与mini2440开发板的不一致,根本就不能控制板上的LED。#gedit arch/arm/plat-s3c24xx/common-smdk.c    //注释掉以下内容

2012-07-10 14:25:30 465

转载 SPI协议简介

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900.SPI,是一种高速的,全双工,同步的通信总线,其工作模式有两种:

2012-07-10 14:25:26 421

转载 Linux-2.6.30.4在2440上的移植之MMC/SD卡驱动 ~

一、移植环境主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand 编译器:arm-linux-gcc-4.3.2二、移植步骤1. 添加SD卡设备到系统设备初始化列表中。2.6.30.4内核对MMC/SD卡的支持已经非常完善了,而且支持超大容量32GB,所以这里我们只需把s3c_device_sdi添加到列表中即可,该设备在arch/arm/pl

2012-07-10 14:25:22 685

转载 内核访问外设I/O资源的方式

我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。一、动态映射(ioremap)方式动态映射方式是大家使用了比较多的,也比较简单。即直接通过内核提供的i

2012-07-10 14:25:06 332

转载 嵌入式系统Linux内核开发工程师必须掌握的三十道题

如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看!1)      Linux中主要有哪几种内核锁?2)      Linux中的用户模式和内核模式是什么含意?3)      怎样申请大块内核内存?4)      用户进程间通信主要哪几种方式?5)      通过伙伴系统申请内核内存的函数有哪些?

2012-07-10 14:25:03 351

转载 Linux Platform Device and Driver

Linux Platform Device and Driver,platform_add_devices()->platform_driver_register() 收藏来自: http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.html从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Plat

2012-07-10 14:25:01 548

转载 framebuffer

framebuffer 设备介绍 这是一个关于如何编程的文档,因此,请在你编译或执行例子之前,正确配置你的framebuffer 设备。 用framebuffer 设备,你可以把你的计算机屏幕当成一个真正的图形设备。你可以修改分辨率,刷新率,色彩深度等。最好的一点是,你可以把像素点绘在任何你想要的地方。framebuffer 设备不是一个图形库,而更确切的是一个低级的通用设备。这样创造了巨

2012-07-10 14:24:58 874

转载 softirq/tasklet/workqueue的区别

http://hi.baidu.com/unicorndragon/blog/item/4f9e48ec8545853862d09fdc.html当前的2.6版内核中,有三种可能的选择:softirq、tasklet和work queue。 tasklet基于softirq实现,所以两者很相近。work queue与它们完全不同,它靠内核线程实现。1、softirq

2012-07-10 14:24:54 534

转载 gpio linux 实现模型

//GPIO是与硬件体系密切相关的,linux提供一个模型来让驱动统一处理GPIO,即各个板卡都有实现自己的gpio_chip控制模块:request, free, input,output, get,set,irq...//然后把控制模块注册到内核中,这时会改变全局gpio数组:gpio_desc[]. //当用户请求gpio时,就会到这个数组中找到,并调用这个GPIO对应的gp

2012-07-10 14:23:39 592

转载 trace32调试android kernel (AP)

之前我讲了怎么用eclipse调试android的framework代码以及用gdb server调试native代码,但是由于gdb无法调试多线程代码,所以用起来还是很不方便。今天我来讲讲怎么用trace32调试kernel.    首先讲讲硬件连接,必须保证你的trace32是连接到arm11的JTAG口上,其他连接不细说了。    打开trace32的命令窗口,并对cpu设置,如下图

2012-07-10 14:23:33 1358

转载 Android wifi驱动--偏下层的分析

学习android wifi开发已经一周了,今天开始立帖,将每天的学习成果贴出来,以备以后查阅,从framework到wpa_supplicant的适配层(wifi.c)网上介绍的帖子很多,而且本身也并不复杂,其中framework部分需要注意的是wifiService和wifiMoniter两部分,这两快一个是转发AP的CMD另一个是接收来自wpa_supplicant的CMD。他们与本地库的连

2012-07-10 14:23:30 587

转载 Android Wifi驱动--底层

由于在这个项目中,WIFI模块是采用SDIO总线来控制的,所以先记录下CLIENT DRIVER的SDIO部分的结构,这部分的SDIO分为三层:SdioDrv、SdioAdapter、SdioBusDrv。其中SdioBusDrv是Client Driver中SDIO与WIFI模块的接口,SdioAdapter是SdioDrv和SdioBusDrv之间的适配层,SdioDrv是Client D

2012-07-10 14:23:27 800

转载 linux 用户线程

一.Linux下线程概述       进程是系统中程序执行和资源分配的最小单位。每个进程都拥有自己的数据段,代码段和堆栈段。这就造成了进程在进行切换等操作时需要有比较负责的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文开销,由此有线程的提出。       线程是进程内的一种基本调度单位,也可以称作轻量级进程。线程是在共享内存空间中并发的多道执行路径,它们共享一个进

2012-07-10 14:23:23 541

转载 linux一些机制的总结(精)

1.  Work  将任务添加到系统的工作队列中Struct work_struct  cd_wq;INIT_WORK(&cd_wq,work_func);Schedule_work(&cd_wq);实际上工作队列就是一个进程,添加到工作队列中就是调度的时候运行 Struct delayed_work otg_event;#define DELAY_TIME

2012-07-10 14:23:20 514

转载 手把手教你把Vim改装成一个IDE编程环境(图文)

一步步将vim改造成C/C++开发环境(IDE)  2012-02-25 23:32:08|  分类:vim |字号 订阅我的vim IDE界面: 1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-s

2012-07-10 14:23:14 1540

转载 蓝牙中的profile

profile为协议的使用规范。由于设备类型的差别太大了,就用不同的等级来区分,例如手机、电脑等,每一种设备类型做一个规范,就是profile。所以要熟悉蓝牙开发流程,必须先要对各层协议进行了解。常见的配置文件1.通用访问配置文件(Generic Access Profile,GAP),该Profile保证不同的Bluetooth产品可以互相发现对方并建立连接。(GAP)定义了蓝牙设备

2012-07-10 14:22:15 1218

转载 蓝牙core spec v4.0研读笔记

蓝牙core spec v4.0研读笔记(一)1.     Broadcast links have no feedback route, each packet is transmitted several times to increase the probability that the receiver is able to receive at least one of the

2012-07-09 13:53:54 3181

转载 Audio manager

Android的Audio Manager (即AudioFlinger)相对比较简单,代码主要集中在目录frameworks/base/libs/audioflinger, frameworks/base/media 和hardware/libhardware_legacy/include/hardware_legacy下面。 AudioManager的主要功能如下1. 接收来自各个

2012-07-08 16:41:34 566

转载 图形系统

本文试图讲述Android图形系统的底层实现。Android图形系统底层实现非常复杂,文档较少,没有使用比较流行的图形组建如Xwindow, Cairo等。Android中的图形系统采用Client/Server架构。Server(即SurfaceFlinger)主要由c++代码编写而成。Client端代码分为两部分,一部分是由Java提供的供应用使用的api,另一部分则是由c++写成的底

2012-07-08 16:41:11 418

转载 Android 内核相关内容总结

Android操作系统是由谷歌推出的一款基于Linux平台开源操作系统。在这里我们会通过Android内核的相关内容的介绍,来具体讲解这一操作系统的基本概念,以方便大家今后的使用,并加深大家对此的因印象。  在kernel子目录下存放的就是Android的Linux Kernel了, 通过和标准的Linux 2.6.25 Kernel的对比,我们可以发现,其主要增加了以下的内容:  1.

2012-07-08 16:41:08 405

转载 Android中的BatteryService及相关组件

BatteryService作为电池及充电相关的服务,它的实现非常简单:o 监听UEvent,读取sysfs里中的状态。实现了一个UEvent的观察者。uevent是Linux内核用来向用户空间主动上报事件的机制,对于JAVA程序来说,只实现UEventObserver的虚函数onUEvent,然后注册即可。    private UEventObserver mUEventObser

2012-07-08 16:41:06 461

转载 androd framebuffer 步骤

做触摸屏校准的时候顺便整理了键鼠触屏的流程做了简单的分析,今天看看框架内对framebuffer的控制流程。找到一篇文章。android中,与图形相关的上层java package包括:android.graphics,android.view,android.widgetandroid.openglandroid.graphics,android.view和a

2012-07-08 16:41:03 1482 1

转载 Android 的系统属性(SystemProperties)设置分析

Android 的系统属性包括两部分:文件保存的持久属性和每次开机导入的cache属性。前者主要保存在下面几个文件中:bionic/libc/include/sys/_system_properties.h1     #define PROP_SERVICE_NAME "property_service"2     #define PROP_PATH_RAMDISK_DEF

2012-07-08 16:41:00 457

android4.3softap流程图

andoid4.3 hotspot/softap 流程图 结构框架图

2014-03-13

星际译王加朗道词库打包下载

星际译王加朗道词库打包下载 需要解压缩

2014-03-13

空空如也

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

TA关注的人

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