android audio/linux alsa音频-应用与驱动的接口

在LINUX系统中,每个设备文件都是文件。音频设备也是一样,它的设备文件被放在/dev/snd目录下,我们来看下这些设备文件:ls /dev/snd -l crw-rw----+ 1 root audio 116, 2 5月 19 21:24 controlC0 crw-rw----+ 1 root audio 116, 4 6月 6 19:31 pcmC0D0c crw-rw----+...
阅读(127) 评论(0)

android audio/linux alsa音频-框架

音频部分一直是linux/android开发的难点之一。最近在三星exynos 7420平台做android6.0系统移植时下成功移植了wm8998的驱动,于是写下几篇文章记录一下。LINUX早期使用的音频系统是OSS(Open Sound System),由于种种原因(大家可以GOOGLE),目前广泛使用的是ALSA(Advanced Linux Sound Architecture),AL...
阅读(348) 评论(0)

linux usb gadget代码分析--- gadget功能驱动层

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justify; }p.western { font-family: "Times New Roman",serif; font-size: 10pt; }p.cjk { font-family: "SimSu...
阅读(337) 评论(0)

android adb源码分析(5)

本篇以“adb devices"命令为例,跟踪代码的执行流程。(1) main()->(2)adb_commandline()->adb_commandline()中的相关源码: if(!strcmp(argv[0], "devices")) { char *tmp; char *listopt; if (argc < 2)...
阅读(1546) 评论(0)

android adb源码分析(4)

本篇分析transport.c。transport的原理是使用了fevent机制进行数据传输,atransport的定义如下:struct atransport { atransport *next; atransport *prev; int (*read_from_remote)(apacket *p, atransport *t); int (*write_...
阅读(1019) 评论(0)

android adb源码分析(3)

本篇分析fdevent.c的源代码。这个源代码文件的工作时创建、监听和处理读写事件。static fdevent **fd_table = 0; static int fd_table_max = 0; fd_table保存的是以fdevent->fd为索引保存的fdevent指针,即the_fdevent的值等于fd_table[the_fdevent->fd]。static void fdev...
阅读(999) 评论(0)

android adb源码分析(2)

本篇分析usb_linux_client.c中的usb_init(),它的代码如下:void usb_init() { if (access(USB_FFS_ADB_EP0, F_OK) == 0) { usb_ffs_init(); } else{ usb_adb_init(); } }调用usb_adb_ini...
阅读(1360) 评论(0)

android adb源码分析(1)

ADB是Android debug bridge的缩写,它使用PC机可以通过USB或网络与android设备通讯。adb的源码位于system/core/adb目录下,先来看下编译脚本Android.mk:# Copyright 2005 The Android Open Source Project # # Android.mk for adb # LOCAL_PATH:= $(call my...
阅读(5828) 评论(2)

android /system/vold源码分析(8)

DirectVolume::handleBlockEventint DirectVolume::handleBlockEvent(NetlinkEvent *evt) { const char *dp = evt->findParam("DEVPATH"); PathCollection::iterator it; for (it = mPaths->begin(); ...
阅读(845) 评论(0)

android /system/vold源码分析(7)

process_config()分析:process_config函数用来解析/ fstab.xxx的配置文件.这个函数还初始化了VolumeManage和DirectVolume。有关VolumeManage的初始化基本是这个函数内进行,除此函数,VolumeManage的初始化工作做得很少。process_config()的代码如下:static int process_config(Volu...
阅读(906) 评论(0)

android /system/vold源码分析(6)

接着分析CommandListener,FrameworkListener是它的直接父类。FrameworkListener类的代码:class FrameworkListener : public SocketListener { public: static const int CMD_ARGS_MAX = 26; /* 1 out of errorRate will be ...
阅读(887) 评论(0)

android /system/vold源码分析(5)

CommandListener继承关系:SocketListener ---> FrameworkListener ---> CommandListener对比NetlinkHandle的继承关系:SocketListener ---> NetlinkListener ---> NetlinkHandlernm->start()执行流程(1)nm->start() 即 NetlinkManager...
阅读(1068) 评论(0)

android /system/vold源码分析(4)

继续看后面的代码: /* Process the pending list, since it is owned by the thread, * there is no need to lock it */ while (!pendingList->empty()) { /* Pop the first item from ...
阅读(841) 评论(0)

android /system/vold源码分析(3)

NetlinkHandlerclass NetlinkHandler: public NetlinkListener { public: NetlinkHandler(int listenerSocket); virtual ~NetlinkHandler(); int start(void); int stop(void); protected: v...
阅读(898) 评论(0)

android /system/vold源码分析(2)

NetlinkManager.cpp/hint NetlinkManager::start() { struct sockaddr_nl nladdr; int sz = 64 * 1024; int on = 1; memset(&nladdr, 0, sizeof(nladdr)); nladdr.nl_family = AF_NETLINK; ...
阅读(886) 评论(0)
351条 共24页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1502750次
    • 积分:14386
    • 等级:
    • 排名:第867名
    • 原创:242篇
    • 转载:107篇
    • 译文:2篇
    • 评论:271条