- 博客(26)
- 收藏
- 关注
原创 RK系列SDK -- I2S MCLK 一直保持开启状态
说明:本文适用于基于 linux 4.4 内核版本开发系列SDK。针对部分需要开机后就一直提供 I2S MCLK 才能正常工作的codec,软件端加下述patch即可。代码路径:kernel/sound/soc/rockchip/rockchip_i2s.cdiff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/r...
2020-03-06 10:28:57
3369
1
原创 RK系列SDK -- 多路设备同时输出声音(Android)
说明:本文只针对RK安卓系列SDK,需要多个输出设备同时工作都可以参考此修改处理,但不能保证所有场景都适用。蓝牙和喇叭同时输出声音frameworks/av/services/audiopolicy/enginedefault/src/Engine.cppframeworks/av/services/audiopolicy$ git diff diff --git a/services/a...
2019-12-23 17:04:01
2919
原创 RK3288 -- 关于 HDMI 音频输出的两种配置
说明:本文适用于 RK3288 & RK3368 kernel4.4 SDK 版本。RK3288 & RK3368 的 HDMI 和 codec 共用一组 i2s 。如果需要 HDMI 和 Codec 同时输出音频,直接使用 SDK 自带的 hdmi_analog_sound 节点配置。如果需要 HDMI 和 codec 可以单独输出,需要将 HDMI 单独注册成一个 PCM 设...
2019-12-13 10:23:12
9420
原创 RK系列SDK -- RK平台耳机检测
RK 公版 SDK 包含两种耳机检测处理:Hook ADC 模式:硬件上 HOOK 直接接到 ADC ,根据 ADC 获取的电压值来区分三段四段耳机类型。流程框图:Hook Interrupt 模式:硬件上 HOOK 直接接 RK 芯片端的一个 GPIO 口,通过中断的方式来区分三段四段耳机类型。流程框图:耳机检测代码路径:kernel/drivers/headset_obse...
2019-12-04 10:31:58
3078
1
原创 RK系列SDK -- 已经添加 codec 通路配置文件但没有被调用(Android版本)
说明:本文适用于使用 hardware\rockchip\audio\tinyalsa_hal 音频库的RK Android SDK。RK HAL 层有针对不同的 codec ,根据 codec 的名称匹配到对应的通路配置文件,如果使用的 codec 芯片不需要进行特殊的通路配置,默认使用的是 hardware\rockchip\audio\tinyalsa_hal\codec_config\d...
2019-12-03 19:26:22
1143
原创 RK系列SDK -- i2s mclk 无输出
说明:本文适用于基于 linux 4.4 内核版本开发的 RK 系列 SDK。硬件上,RK 芯片端 i2s mclk 引脚连接外部 codec 芯片 mclk 引脚,为外部芯片提供 mclk 时钟。软件上,需要对 mclk 做使能处理。DTS配置不同平台对应的时钟名称不一样,下述只举例 RK3399 和 RK3288 平台配置,其他平台可以去 kernel\drivers\clk\rockch...
2019-12-03 17:06:48
5719
1
原创 RK3399 -- i2s1 声卡注册配置
说明:本文适用于 RK3399 linux 4.4 内核系列SDK。硬件上,音频外部 codec 芯片 i2s 引脚与 RK3399 i2s1连接。软件上需要加下述patch(以 rt5640 为例):DTS配置/ { rt5640-sound { status = "okay"; compatible = "simple-audio-card"; simple-audio-c...
2019-12-03 11:32:30
4845
1
原创 RK系列SDK -- Android HFP蓝牙通话音频处理(蓝牙音箱方案)
说明:本文适用于 RK 作为蓝牙设备的蓝牙通话设计。硬件上,BT 芯片的 PCM 时钟和数据线直接连接到 RK 芯片端的一组 i2s 。软件上,需要将 BT 芯片注册成一个声卡。BT HFP 通话数据流程:Downlink:远端信号 -> 蓝牙端 -> AP -> BT SoundCard -> PCM -> SOC SoundCard -> 输出设备U...
2019-12-02 11:48:48
4831
6
原创 RK312x -- 添加312x内置codec三段四段耳机检测
RK SDK版本号:RK312X_ANDROID6.0说明:硬件上 HP_HOOK 需要连接到 SARADC,HP_HOOK 端 VCC_MICBIAS 需拉高提供电压给 HP_HOOK。HP_DET 接 3128 codec CODEC_HPDET 引脚。DTS配置:&codec {+ codec_hp_det = <1>; //使能耳机检测 + ...
2019-11-29 20:22:00
1693
2
原创 RK系列SDK -- dummy codec虚拟声卡注册
注:适用于基于4.4内核版本开发的RK系列SDK虚拟声卡的注册主要应用于硬解码芯片的使用,硬件设计上主控I2S直接接到该类芯片,硬解码芯片能够将数字信号直接转换成模拟信号输出。同时,这类芯片需要主控提供mclk、bclk,那么就需要注册个虚拟声卡来控制I2S的输出,才能保证正常工作。DTS配置RK3399平台:/{ dummy_codec: dummy-codec { ...
2019-11-29 18:11:35
4911
5
原创 RK3288 -- Usb Audio之Voice通话卡顿
1、USB AUDIO通话卡顿。SDK版本号:RK3288_ANDROID7.1_TABLET-SDK_V1.00_20170629问题描述:音频芯片为es8323,在接入usb audio的时候,使用skype通话的时候,不能同时进行录音和放音。处理:USB带宽不够没修改后正常 system/media/alsa_utils/alsa_device_profile.c文件中修改采样率,...
2019-11-29 11:46:43
835
原创 RK系列SDK -- 支持多个录音应用同时使用mic功能
1、安卓7.1/8.1/9.0 支持多个录音app同时使用mic默认情况下,安卓只支持单个录音app使用mic,如果需要多个录音app能同时使用mic,可加下述patch。修改方案1:文件:frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp~/frameworks/av/services/audi...
2019-11-29 11:21:43
3220
1
原创 高通平台音频调试常见问题点归纳
以下是关于高通音频调试中遇到的一些常见问题点归纳,仅供参考,如有错误,请指正!1、Audio EC-VOIP 软件主要需要设置EC_REF(echo reference 信号),在Audio HAL的platform.c中,确保VOIP所经过的代码通路调用platform_set_echo_reference(adev,true,out_device); 同时,对应的mixer_paths...
2018-09-07 22:43:46
15560
6
原创 Android手机WIFI模式下实现无线adb调试的方法
本博客内容使用的手机为魅族某款手机,其他手机是否适用一概不知,请悉知。一、必备条件 PC(装好adb工具)、手机、同一局域网 二、手机打开root权限 1、登陆 flyme账号,没有账号的自行注册。 2、进入手机设置==>指纹与安全==>ROOT权限==>勾选同意接受以上内容,选择确定==>输入flyme账号密码后,选择确定,等待手机重启。 3、手机重启后,用...
2018-02-08 16:23:17
2101
原创 音频之耳机按键事件上报流程(Exynos7872)
(本文仅用于本人学习记录,仅供参考) 耳机按键检测到动作后事件上报,涉及到输入子系统。Input_report_key(cod3034x->input,jd->button,1) //向输入子系统报告产生按键事件 |-- input_event(dev,EV_KEY,code,!!value) |-- is_event_supported(type,...
2017-11-01 15:09:37
1426
原创 音频之手机物理按键(Exynos7872)
(注:本文仅仅用于个人理顺代码流程思路) 手机物理按键驱动文件分析: 一、GPIO的DTS文件,代码段如下所示: /*gpio口的DTS定义*/gpio_keys { status = "okay"; compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0&...
2017-10-13 14:15:30
604
原创 音频之耳机(Exynos7872)
(本文仅用于本人学习记录,仅供参考) 一、耳机基本认识 引用http://www.cnblogs.com/Peter-Chen/p/3999212.html(稍作修改) 主要有两种耳机类型,从下图可以看到,左边的耳机接口结构有左声道、右声道、接地端和mic端,下面我们称该类型耳机为四环耳机;右边的耳机接口结构有左声道、右声道、接地端,不带mic接口,我们称之为三环耳机,区别就在于带...
2017-09-30 15:13:47
2227
原创 Linux杂项设备驱动框架
(本文仅用于本人学习记录,仅供参考)首先是头文件定义#include <linux/init.h>#include <linux/module.h>#include <linux/miscdevice.h>#include <linux/fs.h> . . .以下是一些file_operations中提供的一...
2017-03-22 22:16:24
802
1
原创 git提交代码的基本流程
(本文仅用于本人学习记录,仅供参考)1、 查看当前工作区和暂住区状态 git status2、将当前分支重设到默认HEAD,即最新的一次提交,同时清理当前工作区的所有修改 git reset HEAD –hard && git clean -xfd(–是两个-)3、获取远程仓库的最新修改 git pull4、查看近期的修改情况 ...
2017-03-09 22:41:35
525
1
原创 关于Linux主机将编译产生的模块导入目标板基本步骤
(本文仅用于本人学习记录,仅供参考)1、编写源代码+Makefile文件,利用交叉编译器编译,make产生.ko后缀文件。2、进入目标板的Linux操作系统 $ sudo minicom -c on3、给目标机分配IP地址,假设分配的IP地址为192.168.0.110 #ifconfig eth0 192.168.0.1104、确保主机的NFS服务器处于启动状态,...
2017-01-29 21:57:20
472
原创 Ubuntu 16.04 下NFS服务器的安装
NFS服务器的安装(Ubuntu 16.04)1、安装 $sudo apt-get update $sudo apt-get install nfs-kernel-server $sudo apt-get install nfs-common2、添加NFS共享目录 $sudo vi /etc/exports 在打开的文件末尾添加一行 /...
2017-01-13 21:01:20
468
原创 Linux下编写内核模块
最简单的内核模块编写,需要包含以下最基本的条件:1、头文件 根据功能的需求,添加不同功能的内核相关头文件 #include <linux/module.h> #include <linux/init.h> 以上两个头文件是必不可少的。2、模块初始化 模块初始化函数 st...
2017-01-12 21:50:12
466
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人