[RK3288][Android6.0] 音频调试方法小结【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/70053135

Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92

以rt5631为例,后续遇到再增加.

使用tinyalsa工具确定播放音问题是否在驱动层
1|[email protected]:/data # tinycap  test.wav                                        
Capturing sample: 2 ch, 44100 hz, 16 bit
^CCaptured 167936 frames

[email protected]:/data # tinyplay test.wav                                          
Playing sample: 2 ch, 44100 hz, 16 bit

查看codec寄存器和正常的对比

[email protected]:/data # cat /sys/kernel/debug/asoc/RK_RT5631/rt5631.2-001a/codec_reg                         <
00: 0000
01: 0000
//省略...

查看i2s寄存器和正常的对比
[email protected]:/data # cat /sys/kernel/debug/regmap/ff890000.rockchip-i2s/registers
00: 0000000f
04: 00000000
08: 00033f3f
0c: 00000000
10: 000f0010
14: 00000000
18: 00000000
1c: 00000000
20: 00000000
28: 00000000

查看播放或者录音时的sw/hw parameters:(注意,要在工作的时候才有效)
[email protected]:/proc/asound/card0/pcm0p/sub0 # cat sw_params                      
tstamp_mode: ENABLE
period_step: 1
avail_min: 1
start_threshold: 1536
stop_threshold: 3072
silence_threshold: 0
silence_size: 0
boundary: 1610612736

[email protected]:/proc/asound/card0/pcm0p/sub0 # cat hw_params                      
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 512
buffer_size: 3072

硬件部分用示波器量一下I2S是否有信号

时间: 2024-08-03 06:19:47

[RK3288][Android6.0] 音频调试方法小结【转】的相关文章

Linux环境下段错误的产生原因及调试方法小结(转)

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段

Linux环境下段错误的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段错

【转】【调试技巧】Linux环境下段错误的产生原因及调试方法小结

本文转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误

Linux环境下段错误的产生原因及调试方法小结(转载)

转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间 最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超

[RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法【转】

本文转载自:http://m.blog.csdn.net/kris_fei/article/details/70226451 Platform: RockchipOS: Android 6.0Kernel: 3.10.92 需求:硬件版本不一样,通过几个gpio的高低电平来表示不同版本,u-boot/kernel/hal/framework/app层都需要用到,那么可以使用系统自身的参数传递机制以及property API来实现. 以一个gpio为例.改动:u-bootdiff --git a/

[RK3288][Android6.0] 调试笔记 --- 普通串口的添加 【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/54574073 标签: rk3288 串口添加 2017-01-16 14:52 1079人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92 uart0,1,3,4 (普通串口) 用的是同一个串口驱动.uart2(调试串口)的驱动代码嵌在fiq debugger

[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

本文转载自:http://m.blog.csdn.net/kris_fei/article/details/69553422 Platform: ROCKCHIPOS: Android 6.0Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示.Recovery中升级完成后控制GPIO输出高电平点亮LED. 系统自带GPIO控制驱动:内核已经自带了通用GPIO驱动,可以直接在用户空间操作.路径: /sys/class/gpio[email protec

[RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288OS: Android 6.0Kernel: 3.10.92 由于项目的apk安装需要shareid为system的权限(不需要高权限的apk是可以正常安装的),一开始我用的是releasekey,导致签名文件不匹配无法安装,因此就替换系统默认platform签名文件. 生成新的签名文件方法参考rk3288/build/target/produ

[RK3288][Android6.0] Display驱动初始化流程小结【转】

本文转载自:http://blog.csdn.net/kris_fei/article/details/52584903 Platform: RK3288OS: Android 6.0Kernel: 3.10.92 以MIPI DSI接口的lcd为例. rk_screen.c:读取lcd timing参数.lcd_mipi.c:屏幕mipi配置信息.rk_fb.c:fb驱动.rk3288_lcdc.clcdc controller驱动.rk32_mipi_dsi.c:dsi controller