- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 ASoC框架详细分析
注:基于linux3.4.2分析的ALSA框架ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码。Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不 能工作的,它必须由Machine驱动把它们
2017-06-18 11:24:55
1802
原创 WM9876声卡驱动框架
下面来分析它的框架流程,我们猜测肯定也会用到字符设备的那套:注册字符设备,为app提供文件操作接口,然后实现这个接口的函数(open,read,write)!s3c2410_wm8976_init driver_register(&s3c2410iis_driver); ..... s3c2410iis_probe /*
2017-06-10 10:24:50
645
原创 WM9876声卡芯片接口介绍
1、IIS(Intel-IC Sound) 是由飞利浦公司开发,主要用于CD,MD,MP3等设备,声卡一般是编解码芯片,那么怎么播放音频、录音呢?声音的播放过程: 内存(SDRAM)—->S3C2440——–(IIS接口发送声音)———–>WM9876(DAC)解码——->耳机/喇叭录音的过程: 麦克风—–>WM9876(ADC)编码——–(IIS接口接收声音)———->S3C2440—–>内存
2017-06-09 16:12:24
2458
原创 第五章,开发的辅助工具binutils
binutils工具的一个简单介绍: 一、定位代码出错的具体位置 使用addr2line (1)将指定地址转换为对应的文件名和行号 (2)常用于分析和定位内存访问错误的问题下面是它的使用方法: 二、剔除程序文件的调试信息 使用strip注意: 三、打包和解压目标文件 使用ar 使用方法是: 打包目标文件: ar crs libneme.a a.o b.o 解压目标文件:ar x
2017-05-24 22:08:05
312
原创 platform平台总线工作原理详解
一、platform平台总线的简介 (1)相对于USB、PCI、I2C、SPI等物理总线来说,platform总线是一种虚拟、抽象出来的总线,实际中并不存在这样的总线。 (2)cpu与外部通信的两种方式,地址总线式链接(32的cpu就有0-4G直接集成在cpu内部,以地址指针方式直接访问,没有具体的总线链接就用虚拟的platform平台总线来控制内部的外设)和专用接口式(iic,pci,usb等
2017-05-12 22:12:18
6045
原创 嵌入式gcc编译器详解
1、GCC与gcc的差别 2、交叉编译开发进行交叉编译需要注意事项: 3认识编译器 4、常用的一些gcc编译选项编译阶段: 帮助: 依赖的文件 依赖的库 5、扩展内容,多语言开发简介 案列
2017-05-09 14:09:28
525
原创 input子系统框架、核心层、输入事件驱动层详解
一、input子系统架构总览 1、input子系统分为三层 (1)最上层:输入事件驱动层,evdev.c和mousedev.c和joydev.c属于这一层 (2)中间层:输入核心层,input.c属于这一层 (3)最下层:输入设备驱动层,drivers/input/xxx 文件夹下2、input类设备驱动开发方法 (1)输入事件驱动层和输入核心层不需要动,只需要编写设备驱动层 (2)设备
2017-05-08 23:13:20
1172
原创 linux设备驱动的模型详解
一、什么是设备驱动模型 (1)类class、总线bus、设备device、驱动driver 四个结构体 (2)kobject和对象生命周期 (3)sysfs cat 查看属性信息 、 echo 往里面写东西 (4)udev 同步信息2、设备模型解决了一些什么问题? (1)设备驱动模型负责统一实现和维护一些特性,诸如:电源管理、热插拔、对象生命周期、用
2017-05-07 10:58:27
1520
原创 input子系统应用层(一)
一.Input子系统架构 Linux系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,下面是Input子系统架构:input驱动程序的主设备号是13、次设备号的分布如下: joystick游戏杆:0~16 mouse鼠标: 32~62 mice鼠标: 63 事件设备: 64~95二.Input系统的组成 输入子系统由驱动层(Driver
2017-05-03 21:31:41
990
原创 浅析c++对象销毁之析构函数
在C++中,如果定义了对象,在内存中给它分配了空间;如果使用完以后,忘了销毁对象,即无法释放它所占用的内存空间。则这些内存空间一直被占用,直到重 启计算机才可释放,这样就造成了内存泄露。例:本来512Mb的内存,应该有300Mb的内存可用,可真正可以使用的内存只占100Mb,好像内存少了 200Mb一样。如果内存泄露比较严重,会造成系统性能降低,甚至崩溃。因此,为了减少内存泄露的发生,一定要注意对象
2017-04-29 16:49:31
3326
原创 C++对象的构造顺序
在C++中对象的构造顺序有三种: (1)局部构造对象顺序 (2)堆对象构造顺序 (3)全局对象构造顺序(1)局部构造对象顺序构造对象例子: 当程序执行流到达对象的定义语句时进行构造#include <stdio.h>class Test{private: int mi;public: Test(int i) { mi = i; p
2017-04-27 11:04:40
383
原创 C++初始化列表的使用
C++在类的构造函数中,可以两种方式初始化成员数据,可以用构造函数进行初始化类的成员数据,也可以定义初始化成员列表(Initializer list)来初始化成员数据(data member),但是有些情况是不可以用构造函数函数对类中的成员数据进行初始化的,比如有类中的成员有const修饰的时候。下面介绍一下第二种情况,初始化成员列表(Initializer list)来初始化成员数据(data
2017-04-27 09:18:19
354
原创 C++对象的构建__浅拷贝与深拷贝
一、关于创造对象的时候初始值,对象的初始化值到底是多少,这个得看对象创造的是在哪里创造,假如没有对创建的对象进行初始化,那么它的初始值是多少呢? (1)假如是在静态存储区,那么就为0。 (2)假如是在栈上,或者是堆上,那么就为随机值二、在生活中,对象都是初始化了之后才上市的,那么问题就来了,程序如何对一个对象进行初始化,下面给出两种解决方案。 (1)在类中提供一个public的
2017-04-26 11:30:49
355
bluez-5.43.zip
2019-07-13
wpa_suplicant 交叉编译移植细节记录全过程
2018-08-27
抓取android btsnoop 蓝牙HCI 协议分析工具
2018-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人