android系统学习笔记二

android linux内核和驱动程序

  Android r 专用驱动

         Ashmem: 匿名共享内存驱动

         Logger:轻量级的log驱动

         Binader:基于operBinder系统的驱动,为android 提供IPC支持

         Android power Manager :电源管理器

         Low Memory Killer:缺少内存时,杀死进程

         Android PMEM:物理内存驱动

Android 使用的设备驱动

       Framebuffer   驱动是标准和显示设备驱动,对于PC 系统就是显卡驱动 设备节点

                    通常是/dev/fbx

       

Framebuffer 驱动的主要头文件:include/llinux/fb.h

           核心实现: drivers/video/fbmem.c

           核心数据接口是:fb_info, fb.h中定义

它在android 中的路径为:/dev/graphic/fb0

     注:android 中直接使用标准的framebuffer驱动,/dev/graphic 中的framebuffer设备节

         点由init进程自动创建,被libui库调用

Event 输入设备驱动

       Input 驱动程序是linux输入设备的驱动程序分游戏杆(joystick,鼠标(mouse    mice)和事件设备(event queue)   设备号是13

       Joystick 游戏杆0-61

       Mouse 鼠标 33-62

       Mice 鼠标 63

每种input设备占用5,  每种设备个数是32

   Read 读取输入信息

   Ioctl获得设置信息

   Poll可以进行用户空间的阻塞

Event 的设备节点: dev/input/eventX

Input驱动的头文件是:include/linux/input.h

视频驱动V4L2摄像头(video4linux2) camera

  设备节点:/dev/video/videoX

  设备号是:81

  头文件的路径是:include/linux/videodev.h

                  Include/linux/videodev2.h 数据接口和常量

                  Include/media/v412-dev.c  完成接口注册

 核心实现路径:driver/media/video/v412-dev.c

Oss音频驱动

  Oss(open sound system 开放声音系统数字音频设备(codec,PCM,DSP,ADC/DAC)  采样速率(电话为8k,DVD96k),channel数目(单声道,立体声),采样分辩率(8bit, 16bit

 是字符设备, 主设备号14

 主要有以下几种设备文件

 /dev/mixer 次设备号为0   访问声卡中的mixer  调整音量大小,选择音源

 /dev/sndstat  次设备号为测试声卡

 /dev/dsp  次设备号为3   读此设备就相当于录音  write 用于放音,read用于录音

 /dev/sequencer 次设备号为1  访问声卡内置的或是连接在MIDI端口的syntherizer(合成器)

 /dev/midiXX 次设备号为2 18 34 MIDI端口

OOS的主要头文件

     Include/linux/soundcard.h 

     Include/linux/sound.h   用于设备的注册

OOS 驱动程序的核心

     Sound/sound_core.c

ALSA音频驱动

  ALSA(advanced Linux Sound architecture  高级Linux声音体系)

ALSA驱动的主设备号为116,

主要的设备节点:

       /dev/snd/controlCX  主控制

       /dev/snd/pcmXXXc  PCM 控制

       /dev/snd/pcmXXXp  PCM数据通道

       /dev/snd/seq  顺序器

       /dev/snd/timer  定时器

       

ALSA驱动的头文件

     Include/sound/asound.h   ALSA驱动的主要头文件

     Include/sound/core.h     ALSA  注册函数

MTD驱动

     MTD(Memory Technology Device) 称为内存技术设备  通常用于Linux中的Flash驱动程序  

分为:

     字符设备的设备节点 /dev/mtdX  设备号90

     块设备的设备节点   /dev/bolck/mtdblockX   设备号为13

MDT的头文件路径: include/linux/mth/mtd.h

     源代码路径:drivers/mtd/mtdcore.c 定义原始设备

                 Drivers/mtd/mtdchar.c  字符设备

蓝牙驱动

  蓝牙设备驱动是网络设备,使用网络接口

  定义的协议族为:AF_BLUETOOTH(31)

  蓝牙协议的头文件:

            Include/net./bluetooth/hei_core.h

            Include/net/bluetooth/bluetooth.h

Wlan 驱动  (使用socket进行控制)

     Wifi 协议的部分头文件

       Include/net/wireless.h

     Wifi协议部分源文件

       Net/wirless

     Wifi驱动程序部分

      Drivers/net/wireless/*

posted @ 2012-09-03 15:03  retacn_yue  阅读(388)  评论(0编辑  收藏  举报