- 博客(63)
- 资源 (5)
- 收藏
- 关注
翻译 asoc之为ALSA dapm创建编解码器到编解码器dai链接
为ALSA dapm创建编解码器到编解码器dai链接大多数音频流始终是从CPU到编解码器,因此您的系统将如下所示: --------- ---------| | dai | | CPU -------> codec| | | | --------- ...
2018-10-30 19:56:39
471
翻译 asoc之动态PCM
动态PCM描述动态PCM允许ALSA PCM设备在PCM流运行期间以数字方式将其PCM音频路由到各种数字端点。例如,PCM0可以将数字音频路由到I2S DAI0,I2S DAI1或PDM DAI2。这对于暴露多个ALSA PCM并可以路由到多个DAI的SoC DSP驱动程序非常有用。DPCM运行时路由由ALSA混频器设置决定,其方式与在ASoC编解码器驱动程序中路由模拟信号的方式相同。...
2018-10-30 19:54:41
1619
翻译 ASoC插孔检测
ASoC插孔检测ALSA有一个标准API,用于向用户空间表示物理插孔,其内核端可以在include / sound / jack.h中看到。ASoC提供此API的一个版本,增加了两个附加功能:它允许多个插孔检测方法在一个用户可见插孔上一起工作。在嵌入式系统中,通常在单个插孔上存在多个,但是由单独的硬件位处理。 与DAPM集成,允许DAPM端点根据检测到的插孔状态自动更新(例如,如果没有...
2018-10-30 19:50:45
832
翻译 ASoC机器驱动程序
ASoC机器驱动程序ASoC机器(或板)驱动程序是将所有组件驱动程序(例如编解码器,平台和DAI)粘合在一起的代码。它还描述了每个组件之间的关系,包括音频路径,GPIO,中断,时钟,插孔和电压调节器。机器驱动程序可以包含编解码器和平台特定代码。它将音频子系统注册为内核作为平台设备,并由以下结构表示: -/ * SoC机器* /struct snd_soc_card { ...
2018-10-30 19:47:25
293
翻译 ASoC平台驱动程序
ASoC平台驱动程序ASoC平台驱动程序类可分为音频DMA驱动程序,SoC DAI驱动程序和DSP驱动程序。平台驱动程序仅针对SoC CPU,并且必须没有特定于板的代码。音频平台DMA驱动程序可选择支持以下ALSA操作: -/ * SoC音频操作* /struct snd_soc_ops { int(* startup)(struct snd_pcm_substre...
2018-10-30 19:46:27
344
翻译 asoc之便携式设备的动态音频电源管理
便携式设备的动态音频电源管理描述动态音频电源管理(DAPM)旨在允许便携式Linux设备始终使用音频子系统中的最小功率。它独立于其他内核PM,因此可以轻松地与其他PM系统共存。DAPM对所有用户空间应用程序也完全透明,因为所有电源切换都在ASoC核心内完成。用户空间应用程序不需要更改代码或重新编译。DAPM根据设备内的任何音频流(捕获/回放)活动和音频混合器设置做出功率切换决策。D...
2018-10-30 19:44:35
451
翻译 ASoC数字音频接口(DAI)
ASoC数字音频接口(DAI)ASoC目前支持SoC控制器和便携式音频编解码器上的三种主要数字音频接口(DAI),即AC97,I2S和PCM。AC97AC97是许多PC声卡上常见的五线接口。它现在在许多便携式设备中也很流行。该DAI具有复位线,并在其SDATA_OUT(回放)和SDATA_IN(捕获)线上对其数据进行时间复用。位时钟(BCLK)始终由CODEC驱动(通常为12.288M...
2018-10-30 19:40:39
1275
翻译 ASoC Codec类驱动程序
ASoC Codec类驱动程序编解码器类驱动程序是通用的,与硬件无关的代码,用于配置编解码器,FM,MODEM,BT或外部DSP,以提供音频捕获和回放。它不应包含特定于目标平台或计算机的代码。应将所有平台和机器特定代码分别添加到平台和机器驱动程序中。每个编解码器类驱动程序必须提供以下功能: -编解码器DAI和PCM配置 编解码器控制IO - 使用RegMap API 调音台和音频控...
2018-10-30 19:36:53
830
翻译 linux音频子系统之alsa asoc层
ALSA SoC层概述ALSA片上系统(ASoC)层的总体项目目标是为嵌入式片上系统处理器(例如pxa2xx,au1x00,iMX等)和便携式音频编解码器提供更好的ALSA支持。在ASoC子系统之前,内核对SoC音频有一些支持,但它有一些限制: -编解码器驱动程序通常与底层SoC CPU紧密耦合。这并不理想,导致代码重复 - 例如,Linux为4种不同的SoC平台提供了不同的wm8731驱动...
2018-10-30 19:29:16
391
翻译 top、ps命令查看进程中的线程方法
方法一:PSps -a显示所有进程pid,“-T”选项可以开启线程查看。eg: ps -aT 显示所有线程方法二: Toptop用于实时查看各个线程情况,用top命令的“-H”选项,该选项会列出所有Linux线程。eg1. top -H 所有线程eg2. top -H -p <pid> 特定进程中的线程 ...
2018-10-28 11:24:46
10474
原创 内核段错误定位方法
1.加printk2.在配置文件配置 以下选项则出错时会在backstrace打印出错函数CONFIG_FRAME_POINTER=yCONFIG_DEBUG_KERNEL=y3. 找到内核编译出的System.map,里面包含内核编译出的符号表,注意这其中不包含insmod加载的如果需要知道所有的,可以在平台使用串口查看/proc/kallsyms如果/proc/kall...
2018-10-21 11:12:09
757
翻译 国内的source.android.com
http://source.android.youdaxue.com/ 国内下载aosp源码方法 https://android.googlesource.com/platform/manifest换成git://mirrors.ustc.edu.cn/aosp/platform/manifest,以及将repo中的REPO_URL设置为https://gerrit-googlesour...
2018-08-26 10:50:03
4394
翻译 C语言环形缓冲fifo实现
很有用的环形缓冲区,多线程间注意加锁,收藏下#define BUFFSIZE 1024 * 1024 #define min(x, y) ((x) < (y) ? (x) : (y)) pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; struct cycle_buffer { unsigned char *buf; ...
2018-07-09 09:38:49
5245
原创 关于linux 内存重复释放的问题
内存申请函数malloc,对应的释放函数为free,多次释放会造成系统未知问题,鉴于free对指针指向NULL的指针释放后不会有任何操作,因此有必要在释放后将指针清0。但有时候将指针传给其它函数时,比如被其它函数调用后再释放就可能要注意点,如下函数#include #include #include #define SYS_NULL 0#define FREE_MEM(x)
2017-06-25 21:11:11
5527
2
原创 NDK快速入门(android studio)
1、android studio下载地址:http://www.android-studio.org/2、NDK下载地址https://developer.android.google.cn/ndk/downloads/index.html3、NDK下载解压后放在全英文路径,并设置好环境变量,cmd中使用ndk-build可看出是否安装ok.4.参考此篇文章设置javah与ndk-bu
2017-04-16 00:53:49
609
转载 IOS design patterns
If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter. Thanks for visiting!iOS Design Patterns – you’ve probably heard the term, but do you know what it means?
2015-07-10 00:19:04
918
原创 objective-c 键值监听
//// ViewController.h// UIText//// Created by ethyn on 15/6/14.// Copyright (c) 2015年 ethyn. All rights reserved.//#import @interface ViewController : UIViewController{ NSString *_n
2015-06-15 01:20:12
487
原创 objective-c 异常处理
系统提供的异常处理:NSException继承于:NSObject确认的协议: NSCopying,NSCoding,NSObject声明:+ (NSException *)exceptionWithName:(NSString *)name reason:(NSString *)reason
2015-06-07 15:47:24
549
原创 蓝牙4.0开发之CC2541定时器使用
unsigned short timer_count = 0;void timer1_init(void){ T1CTL = 0x00; T1CTL |= 0xEB; // Set T3 control register: SysClk/32, enable interrupt, run in module mode T1CNTL = 0x00; //复位计数器 T1CCTL0
2015-02-27 11:56:57
2666
原创 块设备驱动的写法
块设备驱动在内核中有好多的例子,快速写好一个内核驱动最好的方法,我觉得是参考内核中其它代码是怎么写的,以下是我用内存模拟一块储存设备的例程,并且可以对此储存设备进行读写和分区的功能,代码如下#include #include #include #include #include #include #include #include #include #include #
2014-12-01 22:27:08
581
转载 ubuntu软件源更新
ubuntu下载软件慢的原因大部分是因为软件源地址是国外的,以下地址是国内提供的打开/etc/apt/sources.list,添加以下源deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-s
2014-11-24 10:57:50
2722
原创 cortexA8交叉编译工具制作——crosstool-ng
首先从官网http://www.crosstool-ng.org下载最新的crosstool-ng,我下载的是1.20.0版本,安装中遇到的问题,一般都是依赖的模块没有提前安装,可以参考http://www.crifan.com/files/doc/docbook/crosstool_ng/release/htmls/crosstool_ng_common_errors.html总得来说直接使
2014-11-24 10:54:19
728
原创 led灯定时防抖
void add_timer(struct timer_list * timer)#include Installs the timer structures in the list timer in the timer list.The timer_list structure is defined by:struct timer_list { struct ti
2014-11-11 15:06:44
573
原创 s5pv210使用查询方式实现按键灯操作
用TQ210写了个使用查询的方法实现按键灯的操作,具体实现方法如下: 1、原理图 由原理图可知,按键不按下的时候CPU检测到的是高电平,按下时处于低电平,以KEY1为例,KEY1连的是XIENT0,查芯片手册 由芯片手册可知XEINT0连的是GPH0_0脚,因此需要配置GPH0_0为输入脚,在此就不详述怎么配置输入了同时可看LED灯原理图 由原
2014-11-07 01:42:12
1024
原创 s5pv210 内核移植与nfs文件系统笔记
今天总算是将nfs文件系统给挂载上去了,当然,这还得感谢那些前辈们的各种小总结,下面我就将我的移植内核与挂载文件系统的步骤列出来,希望对大家有所帮助。 首先我用虚拟机装的Ubuntu14.04最新的操作系统,当然是64位的,这是必备的,(注意电脑配置太低的话装64位可能会有点卡),配置好交叉编译环境,环境配置我这就不作介绍了,从www.kernel.org下载你需要的内核,我用的是3
2014-10-14 23:51:11
705
转载 uboot编译全程
u-boot的Makefile分析 U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。 U-BOOT的下载地址: http://sourceforge.net/projects/u-boot 我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失
2014-10-07 21:25:39
822
原创 快速排序
假设需要排序的数组为A[0]……A[N-1],首先选取第一个数据作为比较数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。快速排序算法如下:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key
2014-09-29 10:35:31
462
转载 S5PV210(TQ210)学习笔记——内核移植与文件系统构建
由于之前做过2440和6410,鉴于时间原因,这里暂时跨过其他模块的裸机驱动和uboot移植,直接进入内核移植及驱动开发方面的学习。内核移植其实很简单,因为内核是linus率领的linux内核开发团队开发并维护的,我们只需要跟我们的平台交叉编译一下即可使用,但是,内核移植也不简单,因为内核移植起见出现任何问题都可能会被卡住,因为内核代码非常庞大,我们无法通读内核代码,下面是我移植期间遇到的各种
2014-09-03 11:52:48
745
转载 tftp下载内核
飞凌官方提供了一键下载烧写linux的方式,相对来说比较方便,但是对于开发来说不够灵活,因此这篇文章把tftp相关的点介绍一下,整理下其中遇到的一些问题。 一键烧写本质上是启动位于SD卡中的Uboot,通过uboot读取sd卡中的文件到SRAM最后通过nand指令实现一键烧写,这一块可以参考飞凌提供的uboot源码中include\configs 中的smdk6410.h 的5
2014-09-02 19:05:42
573
原创 uboot tftp下载功能
linux内核ubuntu服务器linux测试嵌入式在嵌入式linux开发过程中经常需要从电脑下载引导程序uboot,如果每次都使用烧写到flash或者SD卡的方式,那是比较低效率的开发方式,导致公司没有竞争力,开发出来的产品也没有竞争力,在市场上就会落后挨打了。 这里就来介绍tftp方式从linux主机下载文件到开发板里运行,因此需要在主机linux系统里安装tftp
2014-09-02 11:34:00
580
转载 s5pv210 nand移植
转自:http://blog.youkuaiyun.com/liujia2100/article/details/8688810为了移植yaffs2文件系统,必须有nand的支持,linux-3.4.2 s5pv210 没有发现对nand的支持。参考2.6.35把nand的驱动移植过来。1. 配置内核MTDDevice drivers-->Memory Technology
2014-09-01 16:18:12
702
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人