自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (11)
  • 收藏
  • 关注

原创 安卓系统音频开发经验积累

本文主要记录一些平时工作中遇到的问题,以及一些音频经验,解决思路等等。分为四大块介绍,首先会介绍平时工作中都会遇到哪些高频问题,以及解决问题的思路,后面会分别介绍fwk, hal, kernel 遇到的一些问题记录和修改方案。持续更新~

2024-03-15 23:05:48 358

原创 音频smmu问题之smmu学习

简单来说, SMMU(System Memory Management Unit)是ARM为外设访问系统RAM提供了一种类似于MMU的虚拟内存访问机制, 外设可以通过DMA直接访问RAM, 而无需CPU的干预. 如此, 外设可以通过一个虚拟的地址即可访问物理地址(可以不连续), 做到了不同外设之间IO地址空间的彼此独立与隔离. 因此, SMMU也通常被称为IOMMU(Input/Output MMU).

2024-02-24 16:39:11 1044

原创 【大话数据结构】- 读书笔记

数据结构 读书笔记

2023-12-14 00:05:24 439

转载 【无标题】

对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface、LCD interface、USB、I2C、SPI等等。虽然处理器有几百个pin,

2023-05-21 11:30:59 182

原创 常用画图和笔记工具(plantuml+drawio+Typora)

Typora用来做笔记很好有用,最新的Typora工具已经开始收费,免费的稍后上传。客户端的uml免费工具稍后上传。二、drawio免费的画图工具。一、plantuml。

2023-03-26 18:14:54 1205

转载 gdb常用指令

命令b(代表break,设置断点的意思),除了上图的行数断点和函数断点外(前后鼻音口语区分一下),还有个条件断点。命令l(代表list,列出源码的意思), l 1,23 表示列出从第一行到第22行的源码(l 是小写L不是大写i,要注意)。获取断点信息后,删除断点。若该断点在循环中,可以输入clear 断点行号 清除该设置的断点然后再跳往下个断点。执行c (continue),会跳到下个断点,如果后续没断点了就会执行完剩余程序。键入代码中存在的变量,即可查看,例如p,i两个变量。3.8 恢复程序运行。

2022-12-11 18:22:49 2451

原创 vscode Markdown使用

markdown使用

2022-11-18 19:59:14 181

原创 PlantUML常用命令笔记

PlantUML 是一个开源项目,支持快速绘制, 它支持时序图 、用例图 、类图 、对象图 、活动图 、组件图等,它通过简单直观的语言来定义这些示意图。对于软件开发 人员来说,时序图可能是比较常用到的,下面整理常用的时序图uml语法记录一下,为后续追代码画图打好基础。@startuml Foo -> Foo7 : To queue //Foo 指向Foo7 正常指向, 冒号后面的是描述Foo -> Foo : To queue //自己指向自己Alice -> "Bob()"

2022-04-24 22:56:34 1592

原创 alsa-lib之snd_pcm_open

目录版本获取前言snd_pcm_open时序图代码流程版本获取使用版本alsa 1.2.5.1 release | Changes v1.2.5 v1.2.5.1https://www.alsa-project.org/wiki/Main_Pagehttps://github.com/alsa-project前言我们都知道alsa-lib包含开发人员编译 ALSA 应用程序的用户空间库, 提供接口给应用调用的。前面我们了解过ALSA框架 ,本节我们主要介绍一下alsa-lib中sn

2022-04-24 22:43:49 4835

原创 alsa-util常用命令介绍

目录版本获取前言常用命令介绍amixeraplayarecord前言我们在audio启动调试的时候,经常会遇到这样一个问题,就是我们调试时间很紧迫,并且所有的组件都在开机调试,有可能这个版本安卓都没启动,只启动到了kernel阶段;又或者安卓启动正常了,但是显示组件还没调试好;这个时候,对于我们验证和调试audio功能就有一些阻碍,然而我们调试过audio开机的同学都知道,只要版本能正常启动到kernel阶段,我们就有办法验证,这个就是使用的是alsa-util的命令来完成的。

2022-04-24 22:31:51 1154

原创 ALSA框架

概述Alsa是Advanced Linux Sound Architecture的缩写,即高级Linux声音架构,在Linux 2.6的内核版本后,Alsa目前已经成为了linux的主流音频体系结构。除了 alsa-driver,ALSA 包含在用户空间的 alsa-lib 函数库,具有更加友好的编程接口,并且完全兼容于 OSS,开发者可以通过这些高级 API 使用驱动,不必直接与内核驱动 API 进行交互。Alsa-utils:包含各种通用的 ALSA 命令行工具,如 amixer、aplay、are

2022-04-24 22:00:06 2013

转载 Scudo内存分配器介绍

一、背景早期Android中使用jemalloc作为默认的Native内存分配器,但是从R开始,Scudo替代jemalloc成为了non-svelte configuration模式下默认的内存分配器(svelte模式下默认的内存分配器依然是jemalloc)。随着64位机器和大RAM的普及,虚拟内存和物理内存的瓶颈都在不断放宽,因此给了系统更多的选择,可以在性能合理的范围内兼顾其他特性。在所有安全性问题中,内存漏洞发生的入侵占到了半数以上,因此如果能在Allocator中抵御入侵,那将极大地降低安全

2022-04-18 22:24:49 3876

原创 mtk平台老化问题经验总结

1、老化的log路径:02_data_log/rt/2、02_data_log/rt/xxx.png文件可以查看哪些测试项失败了3、音频模块一般有两种失败,audio_loop和MicSilence4、audio_loop分为Speaker_Loop和Receiver_LoopSpeaker_Loop是spk播放,主mic录音,后台设备计算声音大小Receiver_Loop是spk播放,副mic录音,后台设备计算声音大小5、关键log:AudioLoopTestspeaker_loopre

2022-04-18 21:41:48 527

原创 VSCODE+PLANTUML环境配置

vscode, plantuml

2021-12-29 18:00:57 859

原创 UML下载-破解

简绍StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).StarUML官方下载地址:http://staruml.io/download破解在安装目录的:StarUML\www\license\node找到LicenseManagerDomain.js在 try 前面加上:return {  name:"0xcb",  product:"StartUML",  lice

2021-12-29 10:48:02 1492

原创 mtk平台耳机调试

mtk耳机调试

2021-12-28 22:13:24 1732

原创 常用命令积累

常用积累

2021-12-28 20:57:08 1541 1

原创 notpad++ Explorer插件安装

工具

2021-12-28 20:50:40 1826 1

转载 Shell脚本学习笔记(从入门到精通)

转载:https://blog.csdn.net/yuan2019035055/article/details/120462594

2021-11-22 11:58:42 201

原创 【Qualcomm高通音频】如何使用QXDM、QCAT音频数据抓取

转载:https://blog.csdn.net/crow_ch/article/details/103916789

2021-11-15 17:05:51 4409 1

原创 底层开发常用知识点积累

这篇博客主要是积累一下平时开发中有用的一些小的知识点。printk打印#define AUDIO_LOGI(fmt,...) printk("[AUDIO][%s][%d][INFO]"fmt, __func__, __LINE__, ##__VA_ARGS__)#define AUDIO_LOGW(fmt,...) printk("[AUDIO][%s][%d][WARNING]"fmt, __func__, __LINE__, ##__VA_ARGS__)#define AUDIO_LOGE(f

2021-11-15 14:36:03 837

原创 aplay,arec,amix使用

标准的alsa命令为,aplay,amixer,arecord如下是高通在mdm9x07芯片上做了客制化的命令aplayaplay -D hw:0,17 -P &arecarec -D hw:0,17 -P -R 8000 -C 1 &amixamix \"SEC_AUX_PCM_RX_Voice Mixer CSVoice\" 1

2021-11-13 15:12:58 1195

原创 i2c音频设备的常用节点

常用节点sys节点debug节点proc节点sys节点/sys/kernel/debug/asoc/mdm9607-tomtom-i2s-snd-card/codec:nau88c22.2-001a//sys/kernel/debug/asoc/mdm9607-tomtom-i2s-snd-card/codec:nau88c22.5-001adebug节点proc节点

2021-11-13 14:59:47 475

原创 基于高通sdx12平台,简单介绍编译(bitbake)

高通sdx12平台:bitbake编译介绍Audio编译介绍新添加bb文件编译介绍1、编译环境配置脚本Audio编译介绍新添加bb文件1、加入.c文件和makefilevendor\qcom\opensource\kernel-tests\mm-audio\audioucmmakefile如下:SRC=$(wildcard ./*.c)target=audioucmall: #mkdir -p target $(CC) $(SRC) -o $(target) -rdynami

2021-11-04 21:49:49 2390 1

原创 高通MDM9607平台--线程资源泄漏问题定位

高通MDM9607平台--线程资源泄漏问题定位1、问题描述2、问题分析3、问题定位4、问题解决1、问题描述客户xx公司,TTS报警项目,项目需求是在营业厅中放置一个报警设备,需要报警的时候,自动打电话并且在对端播报TTS报警。在4个月之内,隔一段时间就会出现报警返回ERROR的问题。上周刚接到问题,以为是概率问题,并且抓不到log(log是使用printf打印,都打印到了atfwd_daemon进程中),上位机也得不到log,因此解决起来比较困难,一开始几天没重视,后来发现客户需要赶紧解决,不然要退货

2021-10-28 21:43:33 740

原创 linux内核之旅(2)-vim配置安装

学习内核之前,我们必须得有个好工具,这里给大家推荐vim+ctag+cscope获取vim安装包:扫二维码关注马哥嵌入式Linux驱动,回复vim,获得下载连接下面学习下安装教程:安装vim cscope ctagssudo apt-get install vimsudo apt-get install cscopesudo apt-get install ctags安装截图如下:配置1、解压 vim.tar.gztar -zxvf vim.tar.gz2、将.vimrc

2021-10-16 12:29:50 262

原创 Linux 内核之旅(1)-下载地址

Linux 内核下载地址官方:https://mirrors.edge.kernel.org/pub/linux/kernel/国内:https://mirror.bjtu.edu.cn/kernel/linux/kernel/编译好的镜像文件:https://kernel.ubuntu.com/~kernel-ppa/mainline/

2021-10-16 11:37:26 436

原创 高通sdx12 audio架构

前言:高通sdx12使用linux 5.4内核sdx12介绍audio单独编译source build/conf/set_bb_env.shbitbake -c compile -f audiodlkmsdx12

2021-10-15 11:47:44 437

原创 高通linux平台(mdm9x07,sdx12)连接qact

mdm9607连接qact在开发mdm9607的时候,连接不上qact工具,提单给高通,高通反馈mdm9607只能使用 QACT 7.1.X版本连接,之前我使用的qact版本太高。下面说一下连接步骤:1、运行acdb_start/ # start_pcm acdb_start2、运行QPST3、启动QACT点击connect to device即可...

2021-10-14 20:08:18 1530

原创 C语言积累 -(#,##,__VA_ARGS__,##__VA_ARGS__)

1、# 的作用转换成字符或字符串,用法如下:2、## 的作用拼接作用3、__VA_ARGS__ 作用可变参数宏如下是5.4版本kernel中soc.h的宏定义#define SND_SOC_DAILINK_REG1(name) SND_SOC_DAILINK_REG3(name##_cpus, name##_codecs, name##_platforms)#define SND_SOC_DAILINK_REG2(cpu, codec) SND_SOC_DAILINK_REG3(cpu,

2021-10-14 16:00:49 359

原创 spi协议

https://blog.csdn.net/bleauchat/article/details/84821031

2021-10-12 21:00:14 45

原创 高通 mdm9607编译以及audio框架

高通编译使用bitbake,编译都需要在cd poky目录下进行单模块编译模块路径apps_proc\poky\meta-qti-bsp-propcd pokysource build/conf/set_bb_env.shbitbake -fc clean 模块名(注意这里指定的模块名字是 其bb文件所在的目录名)bitbake -fv 模块名生成的bin文件路径:/poky/build/tmp-glibc/work/mdm9607-oe-linux-gnueabi/例如:编

2021-10-12 10:49:57 2896

原创 ARM保存现场和恢复现场解读

arm汇编指令调用函数的时候,需要保存现场和回复现场1.1解读:为什么我们的c语言程序可以调用其他函数后,继续回来执行我们的代码,而他的其他值没有变呢。编译器又是怎么做的,怎么确保我们的值不变,这个就要用到我们的保存和恢复现场,在调用函数之前,保存当前现场,调用函数后,在恢复到之前的现场。首先,我们要懂,我们用的arm是要遵循APCS规则:sp指向最后一个压入的值,数据栈由高地址向低地址生长的栈是满递减的, 所以sp指针一直指的就是我们的栈顶的那个数据。这个时候,我们要开始保存现场了:(

2021-09-30 11:10:47 2032

原创 汇编基础知识

汇编基础知识arm架构简介APCS规则 (ARM Procedure Call Standard)一、指令集:1.1、 add(加法)1.2、sub(减法)1.3、sbc2.1、and (按位与)2.2、orr (按位或)2.3、bic (取反后按位与) (位清零指令)2.4、eor (异或)3.1、mov(数据传送指令)3.2、mvn(反向传输指令)4.1、 lsl (逻辑左移 logical shift left)(低位填0)4.2、asl(算术左移arithmetic shift right)(低位填

2021-09-30 10:57:13 1391

原创 alsa 中控件介绍

mixerSOC_SINGLESOC_SINGLE_TLVSOC_ENUMSOC_DOUBLESOC_DOUBLE_R_TLVSOC_DAPM_SINGLESND_SOC_DAPM_DACSND_SOC_DAPM_PGASND_SOC_DAPM_MIXERSND_SOC_DAPM_SUPPLYSND_SOC_DAPM_INPUTSND_SOC_DAPM_OUTPUTSOC_MIXER_ARRAY

2021-09-23 20:14:32 1402

原创 regmap子系统-之-readmap_read读7bit寄存器问题定位

regmap子系统regmap子系统框架介绍regmap子系统的作用regmap子系统框架regmap子系统数据结构与源代码i2c接口的codec驱动为例,说明regmap使用regmap子系统框架介绍regmap子系统的作用随着linux内核的设备驱动越来越多,内核中有很多设备使用iic和spi等总线进行控制,尤其在hwmon子系统、regulator子系统中,大部分的设备基本上就是i2c、spi设备。在之前,如针对i2c设备我们通过接口i2c_transfer、i2c_master_send等接口

2021-09-23 16:15:02 3216 2

转载 Source Insight 4.0延长试用期的方法(转)

安装程序下载在官网上下载Source Insight 4.0的安装程序.30天的试用安装首次启动选择授权方式,这里选择第二个选项,30天试用。点击下一步,输入名称、公司或组织名称、邮箱信息,申请30天的试用。输入完成后,点击下一步,直到安装完成。修改sourceinsight4.exe用16进制编辑器(sublime text)打开sourceinsight4.exe文件,找到c800 0000 742a 83bc 2408 这一段,修改74 为 eb。修改license文件打开 C:\

2021-09-17 20:16:44 1360

原创 vscode安装及常用配置

一、安装链接下载链接:https://code.visualstudio.com/Download二、常用配置vscode常用配置:https://zhuanlan.zhihu.com/p/113222681

2021-08-23 11:33:11 155

转载 DTS入门知识

一、dts产生原因… 2二、dts基本知识… 22.1 dts加载过程… 22.2 dts描述信息… 32.3 dts组成结构示例… 32.4 dts语法… 42.4.1 compatible … 62.4.2 name@unit-address… 62.4.3 reg address-cells size-cells… 62.4.5 interrupt… 9三、dts与驱动… 10四、具体案例… 114.1 gpio… 124.2 interrupt… 124.3 pinctl

2021-08-22 19:14:56 4130

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

一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),属于不那么紧急需要处理的事情被推迟执行,我们称之deferable task,或者叫做bottom half,。具体如何推迟执行分成下面几种情况:1、推迟到top half执行完毕2、推迟到某个指定的时间片(例如40ms)之后执行3、推迟到某个内核线程被调度的时候执行对于第一种情况,内核中的机制包括softirq机制和tasklet机制。第二种情况是属于softirq机制的一种应用场景(time

2021-08-22 18:36:00 194

makefile参考手册.rar

makefile

2021-12-28

GCC使用手册.rar

gcc使用手册

2021-12-28

linux命令大全.rar

linux命令大全

2021-12-28

C语言文件操作详解.doc

文件操作相关积累

2021-12-28

cool edit pro v2.1 简体中文版.7z

cool edit pro v2.1

2021-11-16

platform-tools.7z

adb fastboot

2021-11-13

jisupdf_setup_3.0.0.2006.exe

jisupdf

2021-11-13

ConEmuSetup.210822.exe

嵌入式开发常用工具

2021-11-13

cmder_mini.7z

嵌入式开发常用工具

2021-11-13

vim配置+ctag+cscope,一键配置,非常好用(vim.tar.gz)

linux新手

2021-10-16

空空如也

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

TA关注的人

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