android系统学习笔记二

androidlinux内核和驱动程序

Androidr专用驱动

Ashmem:匿名共享内存驱动

Logger:轻量级的log驱动

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

AndroidpowerManager:电源管理器

LowMemoryKiller:缺少内存时,杀死进程

AndroidPMEM:物理内存驱动

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,鼠标(mousemice)和事件设备(eventqueue)设备号是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(opensoundsystem开放声音系统)数字音频设备(codec,PCM,DSP,ADC/DAC)采样速率(电话为8k,DVD96k),channel数目(单声道,立体声),采样分辩率(8bit,16bit

是字符设备,主设备号14

主要有以下几种设备文件

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

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

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

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

/dev/midiXX次设备号为21834MIDI端口

OOS的主要头文件

Include/linux/soundcard.h

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

OOS驱动程序的核心

Sound/sound_core.c

ALSA音频驱动

ALSA(advancedLinuxSoundarchitecture高级Linux声音体系)

ALSA驱动的主设备号为116,

主要的设备节点:

/dev/snd/controlCX主控制

/dev/snd/pcmXXXcPCM控制

/dev/snd/pcmXXXpPCM数据通道

/dev/snd/seq顺序器

/dev/snd/timer定时器

ALSA驱动的头文件

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

Include/sound/core.hALSA注册函数

MTD驱动

MTD(MemoryTechnologyDevice)称为内存技术设备通常用于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/*

猜你喜欢

转载自201206260201.iteye.com/blog/1688932