自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (7)
  • 收藏
  • 关注

原创 ASoC框架详细分析

注:基于linux3.4.2分析的ALSA框架ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码。Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的Platform和Codec驱动是不 能工作的,它必须由Machine驱动把它们

2017-06-18 11:24:55 1707

原创 WM9876声卡驱动框架

下面来分析它的框架流程,我们猜测肯定也会用到字符设备的那套:注册字符设备,为app提供文件操作接口,然后实现这个接口的函数(open,read,write)!s3c2410_wm8976_init driver_register(&s3c2410iis_driver); ..... s3c2410iis_probe /*

2017-06-10 10:24:50 583

原创 WM9876声卡芯片接口介绍

1、IIS(Intel-IC Sound) 是由飞利浦公司开发,主要用于CD,MD,MP3等设备,声卡一般是编解码芯片,那么怎么播放音频、录音呢?声音的播放过程: 内存(SDRAM)—->S3C2440——–(IIS接口发送声音)———–>WM9876(DAC)解码——->耳机/喇叭录音的过程: 麦克风—–>WM9876(ADC)编码——–(IIS接口接收声音)———->S3C2440—–>内存

2017-06-09 16:12:24 2286

原创 第五章,开发的辅助工具binutils

binutils工具的一个简单介绍: 一、定位代码出错的具体位置 使用addr2line (1)将指定地址转换为对应的文件名和行号 (2)常用于分析和定位内存访问错误的问题下面是它的使用方法: 二、剔除程序文件的调试信息 使用strip注意: 三、打包和解压目标文件 使用ar 使用方法是: 打包目标文件: ar crs libneme.a a.o b.o 解压目标文件:ar x

2017-05-24 22:08:05 259

原创 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 5751

原创 嵌入式gcc编译器详解

1、GCC与gcc的差别 2、交叉编译开发进行交叉编译需要注意事项: 3认识编译器 4、常用的一些gcc编译选项编译阶段: 帮助: 依赖的文件 依赖的库 5、扩展内容,多语言开发简介 案列

2017-05-09 14:09:28 469

原创 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 1109

原创 linux设备驱动的模型详解

一、什么是设备驱动模型 (1)类class、总线bus、设备device、驱动driver 四个结构体 (2)kobject和对象生命周期 (3)sysfs cat 查看属性信息 、 echo 往里面写东西 (4)udev 同步信息2、设备模型解决了一些什么问题? (1)设备驱动模型负责统一实现和维护一些特性,诸如:电源管理、热插拔、对象生命周期、用

2017-05-07 10:58:27 1402

原创 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 908

原创 浅析c++对象销毁之析构函数

在C++中,如果定义了对象,在内存中给它分配了空间;如果使用完以后,忘了销毁对象,即无法释放它所占用的内存空间。则这些内存空间一直被占用,直到重 启计算机才可释放,这样就造成了内存泄露。例:本来512Mb的内存,应该有300Mb的内存可用,可真正可以使用的内存只占100Mb,好像内存少了 200Mb一样。如果内存泄露比较严重,会造成系统性能降低,甚至崩溃。因此,为了减少内存泄露的发生,一定要注意对象

2017-04-29 16:49:31 3240

原创 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 341

原创 C++初始化列表的使用

C++在类的构造函数中,可以两种方式初始化成员数据,可以用构造函数进行初始化类的成员数据,也可以定义初始化成员列表(Initializer list)来初始化成员数据(data member),但是有些情况是不可以用构造函数函数对类中的成员数据进行初始化的,比如有类中的成员有const修饰的时候。下面介绍一下第二种情况,初始化成员列表(Initializer list)来初始化成员数据(data

2017-04-27 09:18:19 316

原创 C++对象的构建__浅拷贝与深拷贝

一、关于创造对象的时候初始值,对象的初始化值到底是多少,这个得看对象创造的是在哪里创造,假如没有对创建的对象进行初始化,那么它的初始值是多少呢? (1)假如是在静态存储区,那么就为0。 (2)假如是在栈上,或者是堆上,那么就为随机值二、在生活中,对象都是初始化了之后才上市的,那么问题就来了,程序如何对一个对象进行初始化,下面给出两种解决方案。 (1)在类中提供一个public的

2017-04-26 11:30:49 315

bluez-5.43.zip

移植经典蓝牙 Host bluz-5.43 所需依赖的全部源码包 亲自测试使用 no problem! 如需本人帮忙 移植,,请提供 交叉编译工具链 但收费 联系qq:1160342135

2019-07-13

摩托罗拉架构师 深度解析c++ 课程课件

摩托罗拉架构师 深度解析c++课程 课件,非常仔细用心,整理了一下,在这里分析给大家

2018-09-04

wpa_suplicant 交叉编译移植细节记录全过程

linux 环境下 交叉编译wpa_suplicant wifi 配置工具的全过程,会很简单,不会其实也很难,中间依赖两个开源库 openssl 和libnl 。 在这里 ,把关键移植详细的细节记录下来,分享给大家

2018-08-27

抓取android btsnoop 蓝牙HCI 协议分析工具

抓取android HCI层 btsnoop的分析工具,以及蓝牙协议栈协议的协议 分析工具,非常好用,功能很强大,最新版,在这里共享给大家

2018-03-16

BLE4.0低功耗蓝牙协议总结

一位大牛在蓝牙BLE领域干了十来年的总结,总结得很到位。都准备出书了。非常好。在这里共享给大家!

2017-12-30

深入理解linux设备树dts

深入理解linux设备树的来龙去脉,非常好。国内架构师总结,国外架构师文档,例子。

2017-12-06

深入Linux内核架构(中文版).pdf

linux驱动开发很好的内功修炼,linux的架构

2017-12-05

空空如也

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

TA关注的人

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