技术标签: msm8909内核音频日志抓取 Linux驱动
#!/bin/bash
echo -n "file msm-compr-q6-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm-compress-q6-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file q6afe.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file q6asm.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file q6adm.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm-pcm-routing-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm-pcm-q6-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm-dai-q6-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file soc-compress.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file soc-dapm.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file soc-pcm.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file soc-core.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm8952.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file msm8x16-wcd.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file pcm_lib.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file pcm.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file pcm_native.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file compress_offload.c +p" > /sys/kernel/debug/dynamic_debug/control
echo -n "file wcd-mbhc-v2.c +p" > /sys/kernel/debug/dynamic_debug/control
cat /sys/kernel/debug/dynamic_debug/control |grep msm-compr-q6-v2.c
cat /sys/kernel/debug/dynamic_debug/control |grep msm-pcm-routing-v2.c
cat /sys/kernel/debug/dynamic_debug/control |grep q6afe.c
cat /sys/kernel/debug/dynamic_debug/control |grep q6adm.c
cat /sys/kernel/debug/dynamic_debug/control |grep soc-compress.c
cat /sys/kernel/debug/dynamic_debug/control |grep soc-pcm.c
cat /sys/kernel/debug/dynamic_debug/control |grep pcm_lib.c
cat /sys/kernel/debug/dynamic_debug/control |grep msm-compress-q6-v2.c
cat /sys/kernel/debug/dynamic_debug/control |grep q6asm.c
cat /sys/kernel/debug/dynamic_debug/control |grep sm-dai-q6-v2.c
cat /sys/kernel/debug/dynamic_debug/control |grep soc-compress.c
cat /sys/kernel/debug/dynamic_debug/control |grep soc-dapm.c
cat /sys/kernel/debug/dynamic_debug/control |grep soc-core.c
cat /sys/kernel/debug/dynamic_debug/control |grep msm8952.c
cat /sys/kernel/debug/dynamic_debug/control |grep msm8x16-wcd.c
cat /sys/kernel/debug/dynamic_debug/control |grep pcm_lib.c
cat /sys/kernel/debug/dynamic_debug/control |grep pcm_native.c
cat /sys/kernel/debug/dynamic_debug/control |grep compress_offload.c
cat /sys/kernel/debug/dynamic_debug/control |grep wcd-mbhc-v2.c
dmesg -c
echo 8 > /proc/sys/kernel/printk
取qxdm日志,先确保配置了adsp config log
F1打开log view
file->new items /alt +I 重新开始取日志
file->save items /ctrl +I 结束取日志并保存
F5打开日志设置图如下,audio的设置
重复现象
保存成isf文件
用QCAT进行解包,直接将isf文件拖进去,按如下方式解其中的流
根据adsp的流程1586是最接近设备的数据
80-n3470-4_d_hexagon_dsp_audio_pcm_bitstream_logging_through_qxdm_professional.pdf
解出来后生成如下文件,1586表示在上面audio path的代表图,0x11000即0x1000 即pri_mi2s_rx
定义中
80-nf774-3_b_hexagon_access_audio_front_end_api_interface_specification_for_avs.adsp.2.8.pdf这个文档中
5.2.1 Define Documentation
5.2.1.1 #define AFE_PORT_ID_PRIMARY_MI2S_RX 0x1000
ID of the primary MI2S Rx port.
5.2.1.2 #define AFE_PORT_ID_PRIMARY_MI2S_TX 0x1001
ID of the primary MI2S Tx port.
5.2.1.3 #define AFE_PORT_ID_SECONDARY_MI2S_RX 0x1002
ID of the secondary MI2S Rx port.
5.2.1.4 #define AFE_PORT_ID_SECONDARY_MI2S_TX 0x1003
ID of the secondary MI2S Tx port.
5.2.1.5 #define AFE_PORT_ID_TERTIARY_MI2S_RX 0x1004
ID of the tertiary MI2S Rx port.
5.2.1.6 #define AFE_PORT_ID_TERTIARY_MI2S_TX 0x1005
ID of the tertiary MI2S Tx port.
5.2.1.7 #define AFE_PORT_ID_QUATERNARY_MI2S_RX 0x1006
ID of the quaternary MI2S Rx port.
5.2.1.8 #define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007
最后面的应该是左右声道的标号
音频分析软件有好多,常用的有audacity /Sonic Visualiser/cool edit
这里之后用cool edit 打开编辑查看
通过0x1586.pcm.0x1.0x1100.0x2.rx.wav 这个音频文件名取出1586 0x1000 0x1就可以知道audio path中0x1000这个path中的i2s,第2个声道 的音频情况
文章浏览阅读2.5k次。vs和qt的配置,内容较为简略_vs配置qt
文章浏览阅读277次,点赞2次,收藏3次。(1)中药知识分享网站系统中的web后台管理中的后端不再使用古老的jsp+javabean+servlet技术,而是使用当前主流的springboot框架,它减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。(2)中药知识分享网站系统中的web后台管理中的前端使用的是bootstrap[7]框架,它配合ajax和jquery可以美化页面设计。(3)流行vue框架结合jQuery技术,在jQuery基础上扩展一些插件,通过自己定义插件更好的实现前端的设计。
文章浏览阅读516次,点赞6次,收藏5次。本毕业设计题目旨在开发一款基于前端技术(HTML+CSS+JavaScript+Vue)和后端技术(Python+Flask)的家政服务平台,使用MySQL 5.7作为数据库,以期为用户提供优质的家政服务体验。通过对家政服务人员的资质审核、评价体系建立等措施,平台可以筛选出优秀的家政服务人员,为用户提供更优质的服务。在数据库管理工具的选择上,使用了Navicat 11,这是一个用户友好且功能强大的数据库管理软件,它支持多种数据库系统,包括MySQL,并提供了图形化界面,使得数据库的管理和维护工作更加便捷。
文章浏览阅读3k次。用 VIM 编辑文本文件,想在每一行的换行之前,添加一个字符,比如 “;”。想到替换命令::%s/\n/;\n/g结果总是出错。后来找到解决方案::%s/\n/;\r/g有人总结的结论:When searching: \n is newline, \r is CR (carriage return = Ctrl-M = ^M)_gvim换行符
文章浏览阅读1.7k次。如果你看到用户向一个对象索求(request)另一个对象,然后再向后者索求另一个对象,然后再索求另一个对象……这就是Message Chains。实际代码中你看到的可 能是一长串getThis()或一长串临时变量。采取这种方式,意味客户将与查找过程中的航行结构(structure of the navigation)紧密耦合。一旦对象间的关系发生任何变化,客户端就不得不做出相应修改。这时候_面向对象的代码异味messagechain
文章浏览阅读1.7k次。自用PTA题目记录0004 以下题目序号并无实际意义文章目录自用PTA题目记录00047-2 谷歌的招聘代码总结7-2 谷歌的招聘题目作者: AMi 单位: 临沂大学 代码长度限制: 16 KB 时间限制: 200 ms 内存限制: 64 MB作为一个职业HR,要给某个项目组的所有职员群发邮件,已经知道HR有所有人的姓名、电话以及邮箱,请编写程序,取出所有人的邮箱,合并为一个邮箱列表,邮箱之间以“;”隔开,使其可以群发邮件。输入格式: 在一行中给出所有人的姓名、电话以及邮箱,例如:_作为一个职业hr,要给某个项目组的所有职员群发邮件,已经知道hr有所有人的姓名、电
文章浏览阅读3.1k次。桥接模式是虚拟出一台“物理”主机,ip和宿主机处于一个网段,可以访问外网,可以和在同一网段中的物理主机通信nat模式是虚拟出一个和宿主机不同网段(默认情况下是不同网段)的虚拟机,可以访问外网,只可以和宿主机进行通信。仅主机模式是一个和宿主机不同网段的虚拟机,只可以和宿主机进行通信,不可以访问外网我在创建虚拟机的时使用了桥接模式的网络适配器,但是不知道什么原因不能正常访问外网也不同和宿主机以及其它的物理主机进行通信,而我的nat模式是正常的,因为我想让其他的物理主机和他通信,所以我只能通过间接的方式来访问虚拟_怎么使用其他电脑访问nat的虚拟机
文章浏览阅读452次。编写这个程序有很多种方法,这里我就给大家包括函数的代码,比较简单,c++入门者都可以读懂#include<iostream>#include<cstring>void insert(char str[],char a);using namespace std;int main(){ char str[20],a[20]; cin>>str>>a; int i=0,n=strlen(a); for(;i<n;i++) { ._字典合并pta 用c++
文章浏览阅读352次,点赞2次,收藏4次。LAS:就是 seq2seqCTC:decoder 是 linear classifier 的 seq2seqRNA:输入一个东西就要输出一个东西的 seq2seqRNN-T:输入一个东西可以输出多个东西的 seq2seqNeural Transducer:每次输入一个 window 的 RNN-TMoCha:window 移动伸缩自如的 Neural Transducer。_nerual transducer存在什么问题
文章浏览阅读355次。en。。。我又离职了去年老师邀请我加入现在公司,组建了独立于公司的成都开发团队。上班的第一天,我就觉得公司一团乱麻,留下的PHP项目遗留了几个危险的bug。我就和老师说,我觉得我不适合这份工作,没有仓库代码,只有线上代码,连文档都没有,而且公司在兴文,不购买成都的社保。最后老师劝我坚持下去,渐渐的我查看日志找到问题,深夜上线实施解决了遗留bug。招聘前端组建团队,深入的管理项目生命周期,完成一个个项目。这一年多,我们远离公司,公司在宜宾兴文。每次有项目要做都是微信电话沟通,感谢领导的信任,没有人._2020离职经验分享
文章浏览阅读2.6k次,点赞2次,收藏2次。打开数据库package mainimport ("os""github.com/boltdb/bolt""github.com/go-kit/kit/log")func main() {logger := log.NewLogfmtLogger(os.Stdout)db, err := bolt.Open("mydb.db", 0600, nil)if err != nil ..._bolt 使用
文章浏览阅读4.3k次,点赞15次,收藏44次。Qt在透明控件上自由绘画文章目录Qt在透明控件上自由绘画如何让QWidget变透明透明QWidget上响应鼠标事件初学Qt,需要实现这样的效果:在透明的QWidget上自由的绘图,看起来就像是直接在桌面绘图一样。要达到这样的效果,需要分成两个步骤:如何将QWidget变得透明。如何在透明的QWidget控件上使用QPainter绘制图形。当然,第二点是Widget透明之后才发..._qwidget 画图