自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

转载 linux内核中的GPIO系统之(2):pin control subsystem

转载来自:http://www.wowotech.net/gpio_subsystem/pin-control-subsystem.html一、前言在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况:(1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配

2020-11-29 21:36:02 16

转载 linux内核中的GPIO系统之(1):软件框架

转载来自:http://www.wowotech.net/gpio_subsystem/io-port-control.html一、前言作为一个工作多年的系统工程师,免不了做两件事情:培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生,一般在开始的时候总是分配一些非常简单的任务,例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的,非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单,没有复杂的协.

2020-11-29 21:08:16 4

转载 ALSA driver---DAPM flow

参考:https://elixir.bootlin.com/linux/v4.9.218/source/sound/soc/soc-dapm.c#L804https://blog.csdn.net/DroidPhone/article/details/14146319https://blog.csdn.net/DroidPhone/article/details/14052861h...

2020-04-19 14:32:21 70

转载 ALSA driver---register codec

参考:https://elixir.bootlin.com/linux/v4.9.218/source/sound/soc/soc-core.c#L3314https://blog.csdn.net/DroidPhone/article/details/7283833在移动设备中,Codec的作用可以归结为4种,分别是:对PCM等信号进行D/A转换,把数字的音频信号转换为模拟...

2020-04-19 14:29:55 93

转载 ALSA driver---register platform

参考:https://elixir.bootlin.com/linux/v4.9.218/source/sound/soc/soc-core.c#L3159https://blog.csdn.net/DroidPhone/article/details/7316061platform通过调用snd_soc_register_platform来注册。snd_soc_register...

2020-04-19 14:28:13 70

转载 ALSA driver---register card

通过snd_soc_register_card来注册card,即注册整个machine driver.此函数接收一个参数 snd_soc_card:/* SoC card */struct snd_soc_card { const char *name; const char *long_name; const char *driver_name; ...

2020-04-19 14:27:12 83

转载 ALSA driver---register CPU DAI

参考:https://elixir.bootlin.com/linux/v4.9.218/source/sound/soc/soc-core.c#L3034https://blog.csdn.net/DroidPhone/article/details/7316061CPU DAI通过调用snd_soc_register_component进行注册。在snd_soc_regi...

2020-04-19 14:22:28 85

转载 I2S音频总线学习

I2S(Inter-IC Sound)是飞利浦公司针对数字音频设备(如CD播放器、数码音效处理器、数字电视音响系统)之间的音频数据传输而制定的一种总线标准。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。I2S有3个主要信号:1.串行时钟SCK,也叫位时钟(BCLK),即对应数字音频的每一位数据,...

2020-04-19 14:02:06 99

转载 spi总线协议

https://blog.csdn.net/weiqifa0/article/details/82765892

2020-04-08 22:58:23 33

转载 Linux音频驱动-ASOC(ALSA System on Chip)

Linux音频驱动-ALSA概述https://cloud.tencent.com/developer/article/1603864概述此处还需引入之前说过的话: 新事物的出现必然是为了解决旧事物中的不足。这句话在现实生活中和程序世界中道理一样。ASOC的出现就是为了解决ALSA无法解决的问题。ALSA到底存在什么问题? 以及ASOC会以怎样的方式去解决ALSA存在的问题?详细参...

2020-04-01 22:56:43 37

转载 Linux设备驱动模型-Ktype

https://cloud.tencent.com/developer/article/1603899前言在之前创建的object的时候,使用的是kobject_create_and_add函数。而此函数中创建的object使用的是默认的ktype(dynamic_kobj_ktype), 如果想指定ktype的话就需要使用kobject_init_and_add函数来创建object。那...

2020-04-01 22:41:54 28

转载 Linux设备驱动模型-Device

https://cloud.tencent.com/developer/article/1603916前言Linux将所有的设备统一抽象为struct device结构, 同时将所有的驱动统一抽象为struct device_driver结构。这样设计之后就方便驱动开发工程师编写驱动,只需要将具体的设备包含struct device结构,具体的驱动包含struct device_drive...

2020-04-01 22:40:48 69

转载 Linux音频驱动-PCM设备

https://cloud.tencent.com/developer/article/1603968概述1. 什么是pcm?pcm(Pulse-code modulation)脉冲编码调制,是将模拟信号转化为数字信号的一种方法。声音的转化的过程为,先对连续的模拟信号按照固定频率周期性采样,将采样到的数据按照一定的精度进行量化,量化后的信号和采样后的信号差值叫做量化误差,将量化后...

2020-04-01 22:32:26 135

转载 Linux音频驱动-AOSC之Codec

https://cloud.tencent.com/developer/article/1603869概述ASOC的出现是为了让Codec独立于CPU,减少和CPU之间的耦合,这样同一个Codec驱动无需修改就可以适用任何一款平台。还是以下图做参考例子:在Machine中已经知道,snd_soc_dai_link结构就指明了该Machine所使用的Platform和Codec...

2020-04-01 22:25:19 83

转载 Linux音频驱动-AOSC之Platform

https://cloud.tencent.com/developer/article/1603969概述在ASOC在Platform部分,主要是平台相关的DMA操作和音频管理。大概流程先将音频数据从内存通过DMA方式传输到CPU侧的dai接口,然后通过CPU的dai接口(通过I2S总线)将数据从达到Codec中,数据会在Codec侧会解码的操作,最终输出到耳机/音箱中。依然已下图作为参考...

2020-04-01 22:23:04 85

转载 Linux音频驱动-ASOC之Machine

https://cloud.tencent.com/developer/article/1603725概述在ASOC小节中描述了整个ASOC的架构,其中Machine是ASOC架构中的关键部件,没有Machine部件,单独的Codec和Platform是无法工作的。因此本节则先从Machine部分开始,那应该如何开始呢? 答案当然是从代码入手,先进入ASOC在kernel中的位置: ...

2020-04-01 22:16:35 122

原创 codec驱动常用接口函数积累之snd_soc_codec_get_drvdata

1、snd_soc_codec_get_drvdata./include/sound/soc.hstatic inline void *snd_soc_codec_get_drvdata(struct snd_soc_codec *codec){ return dev_get_drvdata(codec->dev);}调用dev_get_drvdata函数,函...

2020-03-31 23:52:33 171

原创 python学习-函数

简介函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数。我们已经使用了许多内建的函数,比如len和range。函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。下面这个例子将说明这事实上是十...

2020-03-30 23:10:37 26

原创 python学习-语句

python语句(if while for)#!/usr/bin/python# Filename: for.pyforiinrange(1,5):printielse:print'The for loop is over'在这个程序中,我们打印了一个序列的数。我们使用内建的range函数生成这个数的序列。我们所做的只是提供两个数,range返回一个序...

2020-03-30 22:55:23 28

转载 codec硬件音频通路

https://www.jianshu.com/p/146eb5a6005d硬件总体框图image.png数据通道有:MIC录音通道 MICIN-->ADC-->DIGITAL FILTERS-->DIGTAL AUDIO INTERFACE MIC旁路输出通道 MICIN-->SIEATT-->RHPROUT/LHPOUT MICI...

2020-03-25 22:20:39 343

原创 vim 快捷键地图

vimrc配置(比较好用的)在命令模式下用set命令设置的东西是不能保存的,下次打开vim时又要重新设置。所以vim提供了一个配置文件叫vimrc,可以保存你的配置信息。在该文件中,以双引号开头的是注释。 set autoindent 自动缩排,如当前行是从第3个字符的位置开始编辑的,按回车后光标会自动定位在下一行第三3个字符的位置。 set paste 置粘贴模...

2020-03-25 22:15:37 15

转载 slimbus简绍

https://www.jianshu.com/u/6c4295637232一、slimbus简绍简介SLIMBUS,全称 Serial Low-power Inter-chip Media Bus,是MIPI联盟指定的一种音频接口,用于连接基带/应用处理器和音频芯片,总线协议保证既能发控制信息,又能发数据信息,这样就可以替换传统的数据和控制两种接口如I2S和I2C。特征 异...

2020-03-25 22:09:28 292

转载 LINUX音频驱动架构

https://www.jianshu.com/p/0f5fe8f51b66从CODEC的接口和内部模块分析各种功能从接口上看,有: INL-连接音响设备,输入模拟声音信号 MIC-连接麦克风,输入模拟语音信号 DMIC-连接数字麦克风,输入数字音频信号 I2S/PCM-连接CPU,输入数字音频信号 CONTROL INTERF...

2020-03-25 21:59:36 376

原创 Linux audio 音频

Linux 音频、Android 音频https://www.cnblogs.com/linhaostudy/p/8169383.htmlhttps://www.jianshu.com/p/0f5fe8f51b66简介LINUX下音频驱动开发,要遵循标准的ALSA架构,下面分别从硬件架构、软件架构、驱动程序,3个方面分析。硬件架构硬件上音频总线接口有很多,如I2S、...

2020-03-25 21:50:45 253

转载 中断唤醒系统流程

http://www.wowotech.net/irq_subsystem/irq_handle_procedure.html. 前言曾几何时,不知道你是否想过外部中断是如何产生的呢?又是如何唤醒系统的呢?在项目中,一般具有中断唤醒的设备会有一个interrupt pin硬件连接到SoC的gpio pin。一般来说,当设备需要唤醒系统的时候,会通过改变interrupt pin电平状...

2020-01-07 22:55:40 49

转载 linux kernel的中断子系统之(九):tasklet

http://www.wowotech.net/irq_subsystem/tasklet.html一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),属于不那么紧急需要处理的事情被推迟执行,我们称之deferable task,或者叫做bottom half,。具体如何推迟执行分成下面几种情况:1、推迟到top half执行完毕...

2020-01-07 22:52:13 40

转载 linux kernel的中断子系统之(八):softirq

http://www.wowotech.net/irq_subsystem/soft-irq.html一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那么紧急需要处理的事情。在执行bottom half的时候,是开中断的。有多种botto...

2020-01-07 22:51:25 25

转载 linux kernel的中断子系统之(七):GIC代码分析

http://www.wowotech.net/irq_subsystem/gic_driver.html一、前言GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64...

2020-01-07 22:50:15 62

转载 Linux kernel的中断子系统之(六):ARM中断处理过程

http://www.wowotech.net/irq_subsystem/irq_handler.html一、前言本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第四章描述了ARM的中断进入过程4、第五章描述了AR...

2020-01-07 22:48:29 68

转载 Linux kernel中断子系统之(五):驱动申请中断API

http://www.wowotech.net/irq_subsystem/request_threaded_irq.html一、前言本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些在第二章...

2020-01-07 22:47:11 36

转载 linux kernel的中断子系统之(四):High level irq event handler

http://www.wowotech.net/irq_subsystem/High_level_irq_event_handler.html一、前言当外设触发一次中断后,一个大概的处理过程是:1、具体CPU architecture相关的模块会进行现场保护,然后调用machine driver对应的中断处理handler2、machine driver对应的中断处理handler...

2020-01-07 22:45:59 57

转载 linux kernel的中断子系统之(三):IRQ number和中断描述符

http://www.wowotech.net/irq_subsystem/interrupt_descriptor.html一、前言本文主要围绕IRQ number和中断描述符(interrupt descriptor)这两个概念描述通用中断处理过程。第二章主要描述基本概念,包括什么是IRQ number,什么是中断描述符等。第三章描述中断描述符数据结构的各个成员。第四章描述了初始...

2020-01-07 22:44:31 69

转载 Linux kernel的中断子系统之(二):IRQ Domain介绍

http://www.wowotech.net/irq_subsystem/irq-domain.html一、概述在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设...

2020-01-07 22:43:28 58 1

转载 Linux kernel的中断子系统之(一):综述

转载:http://www.wowotech.net/irq_subsystem/interrupt_subsystem_architecture.html一、前言一个合格的linux驱动工程师需要对kernel中的中断子系统有深刻的理解,只有这样,在写具体driver的时候才能:1、正确的使用linux kernel提供的的API,例如最著名的request_threaded_...

2020-01-07 22:41:56 41

转载 FFmpeg开源框架及重要结构体简绍

1. FFmpeg介绍与裁剪1.1 FFmpeg简介 FFmpeg(Fast forword mpeg,音视频转换器)是一个开源免费跨平台的视频和音频流方案,它提供了录制/音视频编解码、转换以及流化音视频的完整解决方案。ffmpeg4.0.2源码目录结构如下:目录说明:FFmpeg |—compat    该目录存放的是兼容文件,以便兼容早期版本 |—doc      说明文档...

2019-12-29 18:28:08 136

转载 ffmpeg命令参数详解

ffmpeg相关命令:暂无相关命令ffmpeg是一个源于Linux的工具软件,是FLV视频转换器,可以轻易地实现FLV向其它格式avi、asf、 mpeg的转换或者将其它格式转换为flv。原文:https://www.jianshu.com/p/049d03705a81在线ffmpeg命令如何在CentOS下编译参数:1, 通用选项-L licens...

2019-12-29 18:04:58 35

转载 Linux下安装ffmpeg

下载ffmpeg从ffmpeg官网:http://ffmpeg.org/download.html下载最新的ffmpeg安装包,然后通过如下命令解压:tar jxfffmpeg-2.5.3.tar.bz2或者用Git从github下载配置本文进行一个比较简单的配置:./configure --enable-shared --prefix=/usr/local/...

2019-12-29 17:16:46 43

转载 Arm-Linux 移植 FFMPEG库 + x264

背景:ffmpeg 中带有264的解码,没有编码,需要添加x264。libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。librtmp用来接收、发...

2019-12-29 15:59:18 73

转载 FFmpeg从入门到精通读书笔记(1)

笔者才开始学习音视频开发,FFmpeg从入门到精通读书笔记系列主要是基于阅读刘歧、赵文杰编著的《FFmpeg从入门到精通》以及雷霄骅博士博客总结写的入门心得体会。官方文档资料FFmpeg官方文档:https://ffmpeg.org/documentation.htmlFFmpeg官方wiki:http://trac.ffmpeg.org/wiki中文经典资料雷霄骅博士csdn链...

2019-12-29 15:53:01 231

原创 mtk6570/6580/6737有关modem的总结

一、mtk6570/mtk6580 modem经常修改的文件路径:1、//这文件需要射频工程师去配置custom/modem/ul1_rf/CUSTOM_MT6580RF_UMTS_FDD/ul1d_custom_rf_8001_band1_5.h 2、//加入 ul1d_custom_rf_8001_band1_5.h 头文件custom/modem/ul1_rf/CUSTOM_MT6580RF

2017-08-12 13:49:24 3713

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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