
linux
文章平均质量分 94
Andy_0755
专注camera、音视频、多媒体、显示部份。android/linux驱动、系统、应用
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
转载自http://blog.youkuaiyun.com/droidphone 1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性: Codec驱动与SoC CPU的底层耦合过于紧密...转载 2018-09-11 16:17:27 · 185 阅读 · 0 评论 -
Linux ALSA声卡驱动之六:ASoC架构中的Machine
转载自http://blog.youkuaiyun.com/droidphone 前面一节的内容我们提到,ASoC被分为Machine、Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machine驱动负责处理机器特有的一些控件和音频事件(例如,当播放音频时,需要先行打开一个放大器);单独的P...转载 2018-09-11 16:41:11 · 395 阅读 · 0 评论 -
Linux ALSA声卡驱动之七:ASoC架构中的Codec
转载自http://blog.youkuaiyun.com/droidphone 1. Codec简介在移动设备中,Codec的作用可以归结为4种,分别是: 对PCM等信号进行D/A转换,把数字的音频信号转换为模拟信号 对Mic、Linein或者其他输入源的模拟信号进行A/D转换,把模拟的声音信号转变CPU能够处理的数字信号 对音频通路进行控制,比如播放音乐,收听调频收音机,又或者接...转载 2018-09-11 16:42:57 · 232 阅读 · 0 评论 -
Linux ALSA声卡驱动之八:ASoC架构中的Platform
转载自http://blog.youkuaiyun.com/droidphone 1. Platform驱动在ASoC中的作用前面几章内容已经说过,ASoC被分为Machine,Platform和Codec三大部件,Platform驱动的主要作用是完成音频数据的管理,最终通过CPU的数字音频接口(DAI)把音频数据传送给Codec进行处理,最终由Codec输出驱动耳机或者是喇叭的音信信号。在具体...转载 2018-09-11 16:44:14 · 272 阅读 · 0 评论 -
Linux ALSA声卡驱动之四:Control设备的创建
转载自http://blog.youkuaiyun.com/droidphone 声明:本博内容均由http://blog.youkuaiyun.com/droidphone原创,转载请注明出处,谢谢!Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说,Control接口显得尤为重要,从ALS...转载 2018-09-05 15:10:55 · 195 阅读 · 0 评论 -
Linux ALSA声卡驱动之二:声卡的创建
转载自http://blog.youkuaiyun.com/droidphone 1. struct snd_card 1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,...转载 2018-09-03 10:29:23 · 278 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
转载自http://blog.youkuaiyun.com/droidphone 1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些...转载 2018-09-03 15:53:26 · 220 阅读 · 0 评论 -
Android getevent用法详解
getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。指令源码路径:/system/core/toolbox/getevent.cgetevent -h:查看 getevent 帮助信息root@rk3288:/ # getevent -hgetevent -hUsage: getevent [-t] [-n] [-s switchma...转载 2018-09-18 11:29:22 · 14422 阅读 · 0 评论 -
mipi dsi屏调试
这二天一个新项目调屏,在旧机器上加上转接线来提前调试。好久没调过屏了,以前的大概记得个1,2。本来就对显示部份没什么研究,但是仅仅是调试来说,工作应该是很easy的。(对mipi协议理解除外)。首先由于是旧板子,因此不用考虑背光、供电、gpio控制等(整个连接fpc都是与旧板子兼容的),所以工作就变成了仅仅中调软件时序与屏初始化等。从模组厂那边要来了份实始化参数和一份spec。很遗憾,这是...原创 2018-09-13 20:14:28 · 21195 阅读 · 2 评论 -
linux内核调试项
1、early printk loglevel printk的log输出是由console实现(会在其他文章中说明)。由于在kernel刚启动的过程中,还没有为串口等设备等注册console(在device probe阶段实现),此时无法通过正常的console来输出log。为此,linux提供了early console机制,用于实现为设备注册console之前的早期log...原创 2018-09-13 20:52:36 · 2076 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之一:kcontrol
转载自http://blog.youkuaiyun.com/droidphoneDAPM是Dynamic Audio Power Management的缩写,直译过来就是动态音频电源管理的意思,DAPM是为了使基于linux的移动设备上的音频子系统,在任何时候都工作在最小功耗状态下。DAPM对用户空间的应用程序来说是透明的,所有与电源相关的开关都在ASoc core中完成。用户空间的应用程序无需对代码做出...转载 2018-09-19 14:26:35 · 1755 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之二:widget-具备路径和电源管理信息的kcontrol
转载自http://blog.youkuaiyun.com/droidphone 上一篇文章中,我们介绍了音频驱动中对基本控制单元的封装:kcontrol。利用kcontrol,我们可以完成对音频系统中的mixer,mux,音量控制,音效控制,以及各种开关量的控制,通过对各种kcontrol的控制,使得音频硬件能够按照我们预想的结果进行工作。同时我们可以看到,kcontrol还是有以下几点不足: ...转载 2018-09-19 14:29:08 · 438 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之三:如何定义各种widget
转载自http://blog.youkuaiyun.com/droidphone 上一节中,介绍了DAPM框架中几个重要的数据结构:snd_soc_dapm_widget,snd_soc_dapm_path,snd_soc_dapm_route。其中snd_soc_dapm_path无需我们自己定义,它会在注册snd_soc_dapm_route时动态地生成,但是对于系统中的widget和route,...转载 2018-09-19 14:32:18 · 353 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
转载自http://blog.youkuaiyun.com/droidphone 前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path。之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开始,我们要从代码入手,分析dapm的详细工作原理: 如何注册widget 如何连接两个widget ...转载 2018-09-19 14:50:30 · 882 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之五:建立widget之间的连接关系
转载自http://blog.youkuaiyun.com/droidphone 前面我们主要着重于codec、platform、machine驱动程序中如何使用和建立dapm所需要的widget,route,这些是音频驱动开发人员必须要了解的内容,经过前几章的介绍,我们应该知道如何在alsa音频驱动的3大部分(codec、platform、machine)中,按照所使用的音频硬件结构,定义出相应的w...转载 2018-09-19 14:58:30 · 3101 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之六:精髓所在,牵一发而动全身
转载自http://blog.youkuaiyun.com/droidphone 设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放音频数据,暂停或停止,dapm框架会根据音频...转载 2018-09-19 15:01:21 · 617 阅读 · 0 评论 -
ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)
转载自http://blog.youkuaiyun.com/droidphone 前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等。本章我们准备讨论dapm框架中的另一个机制:事件机制。通过dapm事件机制,widget可以对它所关心的dapm事件做出反应,这种机制对于扩充widget的能力非常有用...转载 2018-09-19 15:04:27 · 482 阅读 · 0 评论 -
tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)
转自https://blog.youkuaiyun.com/radianceblau/article/details/64125411 目前linux中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操...转载 2018-10-11 09:26:33 · 1581 阅读 · 0 评论 -
如何打开pr_debug调试信息
转自https://blog.youkuaiyun.com/helloanthea/article/details/25330809如何打开pr_debug调试信息,先不要着急,我们先静下心来分析一下这个函数的源代码。。。以DMA的调试为例,先来看看一个pr_debug函数调用 pr_debug("%s: %s (%s)\n", __func__, ...转载 2018-10-13 14:21:59 · 555 阅读 · 0 评论 -
rtl8201以太网卡调试
参考博客:https://blog.youkuaiyun.com/zpzyf/article/details/52187279参考博客:https://www.jianshu.com/p/77bb0ba1768c 一、概述MII:支持10兆和100兆的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多。RMII:是简化的MII接口,在数据的收发上...原创 2018-09-29 09:51:45 · 24330 阅读 · 4 评论 -
Android电源管理-休眠简要分析
转自https://www.cnblogs.com/tangdoudou/p/3807936.html 工作需要,需要对这一块深入学习。故在此做一点分析记录,存疑解惑。一、开篇 1.Linux 描述的电源状态 - On(on) S0 - Working- Standby (st...转载 2018-10-18 09:12:30 · 663 阅读 · 0 评论 -
no_console_suspend
转自 https://blog.youkuaiyun.com/tiantao2012/article/details/52330621 通过uboot 可以传递给kernel一个no_console_suspend的参数。这个参数的意思是,在suspend的时候console 不进行suspend,否则console suspend之后其他driver在suspend 过程中印的log都显示不出来,...转载 2018-10-15 10:10:19 · 2916 阅读 · 0 评论 -
Linux Suspend过程
转自:http://blog.youkuaiyun.com/chen198746/article/details/15809363 阅读目录3.2.1 suspend_console 3.2.2 dpm_suspend_start (PMSG_SUSPEND) 3.2.3 suspend_enter 3.2.4 dpm_resume_end (PMSG_RESUME) 3.2.5 r...转载 2018-10-15 11:32:17 · 1887 阅读 · 0 评论 -
《Linux C》串口编程
转自:https://blog.youkuaiyun.com/herghost/article/details/51251760 如何找到串口设备号 串口之打开操作 串口之初始化 串口之发送 串口之接收如何找到串口设备号如果你使用的是开发板搭载linux系统进行的串口编程,你可以通过原理图进行查看 如果你电脑安装的linux系统,那么插上串口,通过dmesg命令进行查看 本文例子使...转载 2018-09-30 10:42:11 · 756 阅读 · 0 评论 -
linux 中断机制的处理过程
转自https://blog.youkuaiyun.com/fan0520/article/details/52153836 一、中断的概念中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异...转载 2018-10-19 09:10:21 · 2236 阅读 · 1 评论 -
linux驱动-DMA
转自https://blog.youkuaiyun.com/eZiMu/article/details/54959269 DMA概述:DMA(Direct Memory Access)就是(外部设备)直接存取(访问)内存(RAM)。DMA映射,就是将内存一段空间,做特殊处理后,把物理地址告诉外设,外设部设备可以直接存取内存。如camera支持DMA,在camera控制器中,一般会有设置DMA物理...转载 2018-10-19 10:25:31 · 1076 阅读 · 0 评论 -
Linux 下的DMA浅析
转自https://blog.youkuaiyun.com/zqixiao_09/article/details/51089088 DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制。使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。DMA经常与硬件体系结构特别是外设的总线技术密切相关。一、DMA控制器硬件结构 ...转载 2018-10-19 10:27:31 · 9009 阅读 · 0 评论 -
内核的同步机制(原子锁)
转自https://blog.youkuaiyun.com/fenglifeng1987/article/details/8172975 摘自《linux设备驱动开发详解》第七章1.设置原子变量的值 void atomic_set(atomic_t *v, int i); //设置原子变量的值为i atomic_t v = ATOMIC_INIT(0);...转载 2018-10-10 19:03:03 · 422 阅读 · 0 评论 -
Linux ALSA音频系统:platform,machine,codec
转自https://blog.youkuaiyun.com/weixin_41965270/article/details/809060621.前言 本篇结合自己的项目,参考优快云博主:zyuanyun 来讲解。2.项目平台介绍 Kernel - 4.9 Soc - Amlogic (型号保密) CODEC - npcp215x Machine U...转载 2018-10-10 19:22:19 · 3379 阅读 · 0 评论 -
linux中断处理原理分析
转自http://blog.chinaunix.net/uid-20528014-id-3068412.html Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一种中断可以在两个cpu上同时执行,很可能造成冲突。Linux中断下半部处理...转载 2018-10-10 19:29:35 · 577 阅读 · 0 评论 -
Linux 内核等待队列 --- wait_queue_head --- wait_event_interruptible
转自https://blog.youkuaiyun.com/yikai2009/article/details/8653578 等待队列: 在 Linux 驱动程序设计中,可以使用等待队列来实现进程的阻塞. 等待队列可以看作保存进程的容器,在阻塞进程时,将进程放入等待队列; 当唤醒进程时,从等待队列中取出进程. 等待队列的 定义...转载 2018-10-10 19:50:50 · 1550 阅读 · 0 评论 -
uart
转自https://blog.youkuaiyun.com/eZiMu/article/details/55803054 掌握uart协议重点是对下面几点的理解:1、uart是异步串行通信。2、一般有4根线VDD,GND,TXD,RXD。3、电气特性有两种 (1)RS-232电平标准,逻辑电平规定,3V到15V范围表示0,-3V到-15V表示1(2)TTL电平标准,逻辑电平规定,大于2.4V的...转载 2018-10-23 10:42:59 · 490 阅读 · 0 评论 -
SPI
转自https://blog.youkuaiyun.com/eZiMu/article/details/55657774 对SPI协议的掌握,重点有下面几点: 1、SPI是同步串行通信的理解 2、SPI的4线全双工通信理解。4线分别是:(1)SDI – 主设备数据输入,从设备数据输出;(2)SDO – 主设备数据输出,从设备数据输入;(3)SCLK – 时钟信号,由主设备产生;(4)CS –...转载 2018-10-23 10:45:17 · 299 阅读 · 0 评论 -
I2C
转自https://blog.youkuaiyun.com/eZiMu/article/details/55509272 对I2C协议的掌握最重要的是理解: 空闲高电平:SCL,SDA都为高表示I2C总线空闲(高电平要保持一定时间,至少一个时钟周期以上)。 起始条件:SCL为高电平期间,SDA从高变低(即SCL,SDA都为高电平时,SDA变低电平)。 停止条件:SCL为高电平期间,SDA从低变高。也...转载 2018-10-23 10:48:00 · 378 阅读 · 0 评论 -
Linux kernel中断子系统之(五):驱动申请中断API
转自 http://www.wowotech.net/linux_kenrel/request_threaded_irq.html 一、前言本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这...转载 2018-11-22 14:31:52 · 192 阅读 · 0 评论 -
linux awk命令详解
转自 : http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程: 依次对每一行进行处理,然后输出awk命令形式:awk [-F|-f|-v] ‘BEGIN{} //{command1; com...转载 2018-11-24 09:46:43 · 164 阅读 · 0 评论 -
input keyevent发送按键值
adb shell进入android设备,执行命令input keyevent keycode即可,例如: input keyevent 3 3为KEYCODE_HOME 或者直接 input keyevent KEYCODE_HOME KEYCODE和对应的数值在android源码中定义...原创 2018-11-24 10:14:42 · 8164 阅读 · 0 评论 -
Linux下利用rtcwake唤醒设备
转自https://blog.youkuaiyun.com/bulreed/article/details/19907691 以下是在OpenSuse上所做的测试whereis rtcwakertcwake: /usr/sbin/rtcwake /usr/share/man/man8/rtcwake.8.gzrtcwake --helpUsage: rtcwake [options]O...转载 2018-11-24 11:01:31 · 2382 阅读 · 0 评论 -
根文件系统及Busybox详解之一
转自 https://blog.youkuaiyun.com/chenlong12580/article/details/8761108 目录1.根文件系统简介...22.Busybox简介...22.1Busybox简介...22.2Busybox目录结构简介...22.3init进程简介...33.构建自己的根文件系统...93.1编译Busybox.93.2向Bu...转载 2018-11-24 11:07:12 · 1165 阅读 · 0 评论 -
android/linux调试经验
转自 https://blog.youkuaiyun.com/kevinx_xu/article/details/8480585 积攒了一些关于调试Android和Linux下面的suspend 和 resume的经验, 在这里和大家分享一下。希望可以有些帮助, (下面没有写Android专用的, 就是Linux通用的)。1. no_console_suspend在kernel启动参数里面...转载 2018-11-30 09:21:05 · 411 阅读 · 0 评论