<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[编程菜汝狗]]></title><description><![CDATA[音频萌新，算法爱好者]]></description><link>https://blog.youkuaiyun.com/Codeliang666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Codeliang666]]></copyright><item><title><![CDATA[[Linux Device Driver] 内核通用加 log方法]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/134663806</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/134663806</guid><author>Codeliang666</author><pubDate>Tue, 28 Nov 2023 11:38:56 +0800</pubDate><description><![CDATA[if 1#endif。]]></description><category></category></item><item><title><![CDATA[“共码未来”——2022Google开发者大会]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/126930648</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/126930648</guid><author>Codeliang666</author><pubDate>Tue, 20 Sep 2022 22:00:00 +0800</pubDate><description><![CDATA[2022 Google开发者大会，CODE FOR BETTER.]]></description><category></category></item><item><title><![CDATA[Qualcomm audio培训]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/126886312</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/126886312</guid><author>Codeliang666</author><pubDate>Fri, 16 Sep 2022 22:00:00 +0800</pubDate><description><![CDATA[高通audio培训。]]></description><category></category></item><item><title><![CDATA[Android获取开机时间的方式(进launcher)]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/125560542</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/125560542</guid><author>Codeliang666</author><pubDate>Fri, 01 Jul 2022 23:30:00 +0800</pubDate><description><![CDATA[获取android log的关键log。]]></description><category></category></item><item><title><![CDATA[[Linux Audio Driver] 高通平台MI2S总线配置]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/123229462</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/123229462</guid><author>Codeliang666</author><pubDate>Wed, 02 Mar 2022 18:50:08 +0800</pubDate><description><![CDATA[0. 背景
hardware platform：骁龙865
android version：android10
Linux kernel version：msm-4.19
思维导图如下：

1. 遇到的一点坑
由于我没有拿到这个平台的MI2S高通配置文档，所以遇到了一点坑，同步也分享。

这个平台目前还没有具体codec器件的调试需求，但是我想验证下接口，于是找硬件，告诉我可以配置MI2S1，对应上面几个GPIO，然后我寻思，默认pri_mi2s应该是MI2S0，这个MI2S1不就应该是配置sec_mi2s]]></description><category></category></item><item><title><![CDATA[端口不稳定抓logcat方法]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/122821059</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/122821059</guid><author>Codeliang666</author><pubDate>Tue, 08 Feb 2022 11:48:32 +0800</pubDate><description><![CDATA[有时候会遇到设备的端口不稳定，或者端口有限，比如要分析type-c耳机相关的问题，但是没有别的端口抓logcat log了，可以用以下方法抓logcat log：
adb shell
logcat  &gt; /data/logcat.txt &amp;
复现问题之后，从/data/logcat.txt路径下面导出log即可。

...]]></description><category></category></item><item><title><![CDATA[cool edit pro生成2.7khz_0dB音源方法]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/121399226</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/121399226</guid><author>Codeliang666</author><pubDate>Thu, 18 Nov 2021 14:05:43 +0800</pubDate><description><![CDATA[1. 新建文件

相关参数配置选择：48Khz、单声道、16位。

2. 改变频率

注意基础频率调整为2700hz，调制频率调整位0Hz，音量dB选择为0dB，其他选择默认。

点确认之后，生成的波形如下所示，生成好了另存为就可以了。


...]]></description><category></category></item><item><title><![CDATA[HJ108-求最小公倍数]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/121239500</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/121239500</guid><author>Codeliang666</author><pubDate>Tue, 09 Nov 2021 23:45:00 +0800</pubDate><description><![CDATA[0. 题干

1. 代码
//如果其中一个数能整除另一个数，那么大的数即为最小公倍数
//如果两个数没有互相能整除的关系，那么两数字的乘积即为最小公倍数

//以上分析显然不正确，比如6和15的最小公倍数为30，而不是90
//最小公倍数应该为两者之积，除以最大公约数
//可以使用辗转相除法，（欧几里得算法）求最大公约数

#include &lt;stdio.h&gt;

int gys( int a,int b)
{
    while(a%b){
        
        int tmp=a;]]></description><category></category></item><item><title><![CDATA[HJ106 字符逆序]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/121238922</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/121238922</guid><author>Codeliang666</author><pubDate>Tue, 09 Nov 2021 22:59:40 +0800</pubDate><description><![CDATA[0. 题干

1. 代码
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

int main()
{
    
    char str[10000];
    int len;
    //scanf("%s",str); scanf有局限，对于空格不好处理，可以考虑用gets
    gets(str);
    len=strlen(str);
    
    for (int i=len-1;i&gt;-1;i--){
        prin]]></description><category></category></item><item><title><![CDATA[HJ100 等差数列]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/121238724</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/121238724</guid><author>Codeliang666</author><pubDate>Tue, 09 Nov 2021 22:48:18 +0800</pubDate><description><![CDATA[0. 题干

1. 代码
// a(n)=(n-1)*3+2
//

#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

int main()
{
    
    int a[1000];
    int n;
    int sum=0;
    
   while (scanf("%d",&amp;n) !=EOF ){
       sum=0;
       for ( int i=0; i&lt;n;i++){
           a[i]=]]></description><category></category></item><item><title><![CDATA[示波器显示原理]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/115752301</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/115752301</guid><author>Codeliang666</author><pubDate>Tue, 03 Aug 2021 20:39:22 +0800</pubDate><description><![CDATA[我最近突然想知道示波器是咋能抓到波形的，用了好多年，突然发现自己不知道原理。 然后我查了下维基百科。

大意是这个示波器有个别名，然后通过捕获信号源的信号电压，通过电子束打到显示屏上。其实这里可以猜测这个显示屏肯定做了特殊的处理（比如有荧光物质），因为示波器能显示不同的颜色波形。

...]]></description><category></category></item><item><title><![CDATA[[Linux Audio Driver] ADSP分析网络造成通话数据丢失方法]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/119348875</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/119348875</guid><author>Codeliang666</author><pubDate>Tue, 03 Aug 2021 20:38:47 +0800</pubDate><description><![CDATA[0. 背景
有时候通话会出现丢失数据的情况，而且这种问题往往和网络制式有关系，比如移动卡没问题，联通有问题，根本原因是射频器件或者modem相关的配置不良，这个其实有办法分析和软件（audio software)或者硬件参数（audio tuning)无关。
1. 抓取log
需要找一个哥们配合抓log，两边通话接通（近端一个人说话，远端另一个人接听），同时抓取音频的QXDM log，抓完之后使用高通QCAT工具解析log。
两份QXDM log整合到一起，重点是取出near，近端0x1804 log点(就]]></description><category></category></item><item><title><![CDATA[第一次坐飞机的感受]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/119112064</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/119112064</guid><author>Codeliang666</author><pubDate>Tue, 27 Jul 2021 20:32:52 +0800</pubDate><description><![CDATA[0. 背景
25岁了，长这么大没做过飞机。然后我问了下群里的小伙伴，重点是不要看错航站楼（这个打车的时候要注意；因为我是从上海到深圳出差，所以我查了下深圳那天有台风，带了把雨伞。。。

然后我和我妈聊天还被diss了，唉，难受。

1. 第一轮安检
人事下班了，我只能自己从飞猪上买机票。然后买了早上8点多南航的=_=，但是后面还有小字：实际乘坐厦航的。。

他们都说飞机票要提前两小时到机场，然后我提前了两个半小时到了机场+_+，到机场发现去国外的门都没开，可能是疫情原因吧。

从这里进去会有第一轮安检，就是]]></description><category></category></item><item><title><![CDATA[[Linux Audio Driver] Solve line-out  output is unstable]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/116757511</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/116757511</guid><author>Codeliang666</author><pubDate>Thu, 13 May 2021 18:02:26 +0800</pubDate><description><![CDATA[Recently I  experience some thing  and want to  improve my English， so   i  will  try to  use  English  to write the new document completely.
0. background
OK, let’s go straight to the topic. We will found the  line-out  output  singal is not stable, while]]></description><category></category></item><item><title><![CDATA[[Linux Device Driver] 看门狗]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/115214228</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/115214228</guid><author>Codeliang666</author><pubDate>Thu, 25 Mar 2021 18:02:40 +0800</pubDate><description><![CDATA[0. 背景&amp;原理
我们假设有一个芯片，它自己能不间断的产生脉冲信号(隔一段时间产生，时间由硬件决定），它理所当然有自己的信号时序；比如说，它在每次脉冲前面都要有一个别的信号来通知它，
“嘿，老兄，一切正常，请继续保持工作”，

基于这样的约定，有人通知它，它就发脉冲；那万一在约定的时间内没人通知呢，那它就不产生脉冲了，直接“躺尸”，在这个芯片产生“躺尸”想法的时候，他会给外界发送一个信号。很常见的就是高低电平，比如本来高电平，芯片凉了，那就把一个信号线拉低变成低电平。

大家比较喜欢把这种行为，称为]]></description><category></category></item><item><title><![CDATA[git pull && git  reset报错解决办法]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/115161319</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/115161319</guid><author>Codeliang666</author><pubDate>Wed, 24 Mar 2021 09:35:43 +0800</pubDate><description><![CDATA[报错log如下：
fatal: Unable to create ‘/home5/wangliang/android11/LA.UM.9.12/.git/index.lock’: File exists.
If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is run]]></description><category></category></item><item><title><![CDATA[[Linux Device Driver] 通过设备节点的方式控制GPIO]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/115053912</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/115053912</guid><author>Codeliang666</author><pubDate>Sun, 21 Mar 2021 19:31:36 +0800</pubDate><description><![CDATA[直接上代码了，Kconfig、defconfig、makefile那些请自己配置。
0. vendor/qcom/proprietary/devicetree-4.19/qcom/lagoon-mtp.dtsi
&amp;soc {
  
   ......
	logo_led {
		compatible = "qcom,logo-led-v2";
		qcom,msm-logo-enable-gpio =   &lt;&amp;tlmm 87 0x00&gt;;
	};

};

1. kernel/m]]></description><category></category></item><item><title><![CDATA[冒泡排序-C语言]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/114750999</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/114750999</guid><author>Codeliang666</author><pubDate>Sat, 13 Mar 2021 16:31:17 +0800</pubDate><description><![CDATA[//This file is a "Hello, world!" in C language by gcc for wandbox.
#include &lt;stdio.h&gt;



int psort(int *, int);


int main(void)
{
	int arr[10] = {1,23,2,56,7,9,12,13,8,17 };
	int ans[10] = {0};
	int len = sizeof(ans)/sizeof(ans[0]);
	printf("len =%d]]></description><category></category></item><item><title><![CDATA[[C++基础知识] unordered_map容器]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/114590485</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/114590485</guid><author>Codeliang666</author><pubDate>Tue, 09 Mar 2021 20:59:05 +0800</pubDate><description><![CDATA[0. 容器模板定义
unordered_map 容器模板的定义如下所示：
template &lt; class Key,                        //键值对中键的类型
           class T,                          //键值对中值的类型
           class Hash = hash&lt;Key&gt;,           //容器内部存储键值对所用的哈希函数
           class Pred = equal_to&l]]></description><category></category></item><item><title><![CDATA[见闻-关于codec芯片]]></title><link>https://blog.youkuaiyun.com/Codeliang666/article/details/114285916</link><guid>https://blog.youkuaiyun.com/Codeliang666/article/details/114285916</guid><author>Codeliang666</author><pubDate>Wed, 03 Mar 2021 20:41:44 +0800</pubDate><description><![CDATA[前不久和FAE聊过一次，他们是上海交大系的企业，聊了聊有些收获。
1. audio codec以及adc、dac
我以前对audio codec的理解是这样的： 连结平台的i2s/TDM总线的外置芯片，我的理解就是这样，只要是调试这样的芯片，我认为就是调试外部codec芯片，尽管我知道codec的意思是“编解码”。
然后跟FAE聊了下发现，他认为的codec芯片是全双工的，即输入的同时要输出，要同时包含ADC和DAC，那我之前的理解就有点不大准确了，其实很多时候我调试的芯片比较单一，要么只包含mic功能（输]]></description><category></category></item></channel></rss>