自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极创it的博客

Android、Linux、STM32开发

  • 博客(48)
  • 收藏
  • 关注

原创 Android/Linux日常笔记,超实用

fastboot刷:adb root adb reboot bootloader 执行脚本文件 obj/KERNEL_OBJ单刷kernel:adb root adb reboot bootloader fastboot flash boot boot.img单编:m bootimage -j4 m systemimage -j4 m dtboimage -j4qfile刷:adb reboot edl单编lk:m aboot 单刷:fastboot ...

2022-04-30 17:18:18 1859

原创 VMware 识别移动硬盘,以及读取硬盘里的文件

虚拟机,移动硬盘

2023-08-05 15:18:55 2787

转载 ubantu opengrok

OpenGrok一个快速、便于使用的源代码搜索与对照引擎。

2023-08-04 23:28:44 237

原创 STM32 UART DMA 与空闲中断接收

STM32 UART DMA

2023-02-12 17:07:19 1268 3

原创 zephyr的启动流程

zephyr启动

2022-11-28 22:22:27 994

原创 STM32 PWM波频率、占空比以及死区计算详细讲解

stm32 频率、占空比、死区计算

2022-06-30 23:26:08 2740

原创 Android如何用gpio检测耳机插入和按键事件

1.dtsi:gpio_headset = <&msm_gpio 72 0>; gpio_key = <&msm_gpio 90 0>;qcom,pinctrl-names = "all_off", "pri_i2s_act", "ehsd_pin_default";pinctrl-names = "all_off", "...

2022-04-30 18:34:11 1496

原创 camera流程

原来linux-3.1.6内核在中断发生时不能同步关闭中断本身!但是可以同步关闭其他中断。其实要在中断中关闭中断本身只要用disable_irq_nosync代替disable_irq就可以了一、kernel起来以后进行msm_sensor_driver的模块儿初始化,对dts配置进行相关的解析 1、初始化 platform_driver_register//注册平台驱动 将msm_eeprom_i2c_driver挂载i2c总线上 2、匹配驱动和设备 compati...

2022-04-28 22:19:37 354

原创 如何指定命令解释器

1.在Linux下一般解释器默认在/system/bin可以在脚本的开头加:#!data这样就可以运行data里的脚本了,否则只能运行/system/bin里的脚本2.也可以用adb命令指定解释器

2022-04-21 23:50:34 267

原创 ubantu上adb调试fastboot下载

一、安装adbsudo apt-get install Android-tools-adb看是否安装成功:adb version二、lsusb、添加xx-android.rules配置文件(不同设备添加多个)sudo vi /etc/udev/rules.d/xx-android.rules 输入:SUBSYSTEM=="usb", ATTRS{idVendor}=="xxx", MODE="0666" xxx是设备号。三、添加adb_usb.ini 配置文件sudo v...

2021-09-10 23:14:21 517 2

原创 总线设备驱动模型-设备树

首先dts编译成dtb传给内核,内核会解析dtb文件得到很多个device_node结构体,每个device_node会变为platform_device结构体,包含资源。 platform_driver会与platform_device匹配,一旦匹配成功便会调起platform_driver里的probe函数,会去分配、设置、注册file_operation结构体,还会从platform_device结构体中获取资源。之前资源是写在c文件里的,现在写在dts里面。 ...

2021-08-20 22:07:44 233

原创 总线设备驱动模型

platform_device_registerplatform_device_addret = device_add(&pdev->dev);error = bus_add_device(dev);klist_add_tail(&dev->p->knode_bus, &bus->p-&...

2021-08-19 08:09:31 270

原创 diff、patch命令

diff命令常用来比较文件、目录,也可以用来制作补丁文件。常用选项如下:$diff -urNwB xxx > xxx.diffpatch命令被用来打补丁$patch -p1 < ../xxx.diffpatch命令中重要的选项是“-pn”:补丁文件中指明了要修改文件的路径,“-pn”表示忽略路径中第n个血线之前的目录。...

2021-08-09 09:51:17 423

原创 耳机按键检测阈值

1、使能micbias的时候会编程阈值寄存器。vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd-mbhc-v2.cenum wcd_mbhc_cs_mb_en_flag { WCD_MBHC_EN_CS = 0, WCD_MBHC_EN_MB, WCD_MBHC_EN_PULLUP, WCD_MBHC_EN_NONE,};wcd_enable_curr_micbias()2、调用函数指针去设置按键阈值vendor...

2021-07-17 09:19:09 827

原创 OEM_ROOT = os.path.abspath(os.path.join(os.path.dirname(‘build‘),“..“))的含义

1.os.path.abspath()返回绝对路径。2.os.path.join()路径拼接Path1 = 'home'Path2 = 'develop'Path20 = os.path.join(Path1,Path2)Path20 = home\develop3.os.path.dirname()去掉文件名,返回目录print(os.path.dirname("E:/Read_File/read_yaml.py"))#结果: E:/Read_File也就是O

2021-07-11 15:12:26 438

原创 当camera遇到i2c 不通该怎么办?

1.检查硬件i2c是否有波形,mipi是否有数据。(若i2c没波形,考虑是不是i2c的电源未开启)2.检查软件上电时许是否符合规格书[data sheet]的要求3.检查i2c地址是否有冲突:比如2颗sensor的地址都为0x2c,这就有问题了。...

2021-06-30 23:45:04 1171

转载 Camera驱动调试常见问题

在嵌入式系统,如手机等平台上使用的Camera sensor通常是由类似I2C这样的总线进行寄存器控制,由CPU端的Controller提供所需的驱动时序,通常支持YUV和RGB等数据格式。有的Sensor需要由CPU进行图像处理工作,有的Sensor自己会集成图像处理芯片,完成一些基础的图像处理工作,还有些高像素的Sensor甚至自己完成JPEG的编码工作。因为硬件的多样性,我所遇到的问题可能和你的原因现象都不尽相同,分析内容仅供参考。Sensor端I2C总线没有响应症状 所...

2021-06-30 23:05:37 5903 1

原创 pinctrl的function

qupv3_se8_i2c_pins: qupv3_se8_i2c_pins { qupv3_se8_i2c_active: qupv3_se8_i2c_active { mux { pins = "gpio19", "gpio20"; function = "qup12"; }; config { ...

2021-06-24 23:28:12 917

原创 Non-HLOS端的gpio如何在AP端使用

Some GPIOs is designed for Non-HLOS side, but don't use them default, some customers want to use them at AP sideSM8150, SM6150

2021-06-03 23:33:29 953 1

原创 git diff 保存成patch

有时候我们在本地修改了代码之后,无法发布到正式环境。所以我们需要想办法把修改过的地方保存下来,这样当需要展示修改后的代码时,我们可以复现,而不需要把所有代码都保存。#第一步 : 将差异的地方保存到some-changes.patch文件git diff > some-changes.patch#当子模块也有差异需要保存的时候,使用git diff --submodule=diff > some-changes.patch#第二步 : 在 .patch 文件的目录下将差异的地方复

2021-05-23 22:42:56 2151

原创 usercase、device与acdb id

HAL 中的 usecase 和 deviceusecase 通俗表示音频场景,对应着音频前端device 表示音频端点设备,包括输出端点(如 speaker、headphone、earpiece)和输入端点(如 headset-mic、builtin-mic)。高通 HAL 对音频设备做了扩展,详见 platform.h 音频设备定义。扩展这么多是为了方便设置 acdb id,比如外放和通话免提虽然都用了同样的喇叭设备,但是这两种情景会使用不同的算法,因此需要设置不同的 acdb id 到 aDS

2021-05-23 22:31:05 2260 4

原创 修改的文件编译不进linux

这里就是时间戳的问题:只要目标文件比依赖文件(源文件)新,那么就不会重新编译。aw87339_kspk.bin由于时间戳很老,所以并不会去编译它,中间可能会有中间态。

2021-05-23 17:27:18 208

原创 使用putty进行UART串口调试

Linux下使用putty进行UART串口调试1.安装putty软件,使用命令apt-get install putty。2.插上usb串口小板。3.使用命令dmesg | grep tty,查看串口设备信息,可知刚插入的usb串口小板为:ttyUSB0。4.使用命令:sudo putty 打开软件putty。弹出如下界面:设置serial line 和 speed,connection type等等。设置完之后,open就可以使用putty的...

2021-05-23 17:19:58 4196

原创 高通平台speaker通路是如何连通的

1.<path name="speaker"> <ctl name="RX3 MIX1 INP1" value="RX1" /> <ctl name="SPK" value="Switch" /></path>2.<path name="speaker"> <ctl name="RX2 MIX1 INP1" value="RX1" /> <ctl name="RDAC2 MUX" valu.

2021-05-12 00:16:54 1142 2

原创 随笔

num = fread(data, 1, length, p);读取文件节点数据data-- 这是指向带有最小尺寸size*nmemb字节的内存块的指针。 1-- 这是要读取的每个元素的大小,以字节为单位。 length-- 这是元素的个数,每个元素的大小为 size 字节。 p-- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。status = strtol(buf, NULL, 10);该函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值。buf...

2021-04-28 23:05:17 93

原创 MIC内部偏置与外部偏置如何区分及qcom平台配置方法

由于DNI相当于0Ω的电阻,所以mic_p是没有外部偏置电压的,如果软件上配置成外部偏置,这个电压并不会被拉起,还是0。这时候只能配置成内部偏置。若R308是一个有阻值的电阻,则说明mic_p有外部偏置,这时候软件上配置成外部内部都可以。qcom,msm-hs-micbias-type = "internal";//耳机mic使用内部偏置qcom,msm-hs-micbias-type = "external";//耳机mic使用外部偏置...

2021-04-27 22:49:59 1226

原创 led-gpio

有一个gpio控制LED,我echo 255 > brightness会输出一个高电平。gpio-leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&gpio_led_off>; button-backlight { gpios = <&tlmm 42 0>; //label = "

2021-04-24 09:24:23 320

原创 高通音频自动化测试及原理

QM215

2021-04-07 14:16:35 1981 4

原创 android下创建节点的几种方法

static DEVICE_ATTR(headset_cur_state, S_IRUGO, headset_cur_state_show, NULL);static DEVICE_ATTR(hytera_headset, S_IRUGO, hytera_type_show, NULL);static DEVICE_ATTR(pttTest, S_IWUSR|S_IRUGO, pttTest_show, pttTest_store);static struct device_attribut...

2021-04-06 17:49:22 2362

原创 SM4250平台typec耳机检测

主要用到了这么几个文件:wcd-mbhc-v2.c wcd-mbhc-adc.c bengal.c入口wcd_mbhc_init switch (mbhc->mbhc_detection_logic) { case WCD_DETECTION_LEGACY: wcd_mbhc_legacy_init(mbhc); break; case WCD_DETECTION_ADC: wcd_mbhc_adc_init(mbhc); break; default: ...

2021-03-01 23:33:28 9554 2

原创 msm8937声卡挂载问题

今天遇到一个神奇的问题,声卡一直挂载不上。1.在msm8952_asoc_machine_probe和aw87339_probe里加了log,发现根本就没走。2.看log发现两个问题:adsp-loader soc:qcom,msm-adsp-loader: adsp_load_fw: Q6 image loading failed,adsp加载失败了。machine_dlkm: Unknown symbol aw87339_audio_kspk,aw87339模块没加载进去。3.到对应的out

2021-01-23 00:43:33 1111 2

原创 linux 中断问题

1.中断的是能和禁用是一一对应的。2.中断使能或者禁用不了。原因是enable与disable不平衡,也就是禁用了多次却使能了一次,内核会打印一句警告信息:Unbalanced enable for IRQ xxx。使能不了这个中断。这时候怎么解决呢。加一个标志位,只能一次使能或者禁用中断。if(enabled==0) { enable_irq(mbhc->irq_key); enabled=1; }ifen

2021-01-17 21:25:15 1202

原创 Android设置文件权限的地方

一、android\device\qcom\msm8909\init.target.rcchmod 777 /sys/class/leds/blue/brightnesschmod 777 /sys/class/leds/green/brightnesschmod 777 /sys/class/leds/red/brightness改完之后可以直接push到手机的相应目录下,如:vendor/etc/init/hw,重启一下即刻生效。二、在kernel里创建文件节点的时候直接创建成相应权限

2020-11-29 15:30:41 1054 1

原创 高通msm8953平台I2C分析

今天遇到了个I2C不通的问题,用的是I2C_8msm8953.dtsii2c8 = &i2c_8;i2c_8: i2c@7af8000 { /* BLSP2 QUP3 */ compatible = "qcom,i2c-msm-v2"; #address-cells = <1>; #size-cells = <0>; reg-names = "qup_phys_addr";

2020-11-15 10:28:04 1441

原创 aw2013驱动分析

static int aw2013_led_probe(struct i2c_client *client, const struct i2c_device_id *id){ struct aw2013_led *led_array; struct device_node *node; int ret, hall_gpio_state,num_leds = 0; node = client->dev.of_node; if (node == NULL) return -.

2020-09-04 18:00:55 1305

原创 qcom sdm660 led 分析

msm-pm660l.dtsi相关节点。qcom,leds@d000 { compatible = "qcom,leds-qpnp"; reg = <0xd000 0x100>; label = "rgb"; red_led: qcom,rgb_0 { label = "rgb"; qcom,id = <3>; qcom,mode = "pwm"; pwms = <&pm660l_pwm_3 0 0>

2020-08-29 13:50:19 934

原创 flash调试-用adb通过sysfs点亮flash

向led:flash_0节点写入亮度值 向led:switch_0节点的bringhtness写1,开启闪光灯。

2020-08-24 15:33:35 1195

原创 qcom660平台audio-ull-playback出现pop音

现象:打开皇室战争时,出现噪音 通过打log搜索“start_output_stream”发现走的是audio-ull-playback通路。 low-latency-playback和audio-ull-playback这两种播放比较容易因为performance而发生pop noise,因为这两种播放方式的buffer比较小,FastMixer线程必须每4ms写一次数据,如果有其他更高优先级的线程或者IRQ把FastMixer 线程block住的话,就比较容易发生pop noise。 通过以下方法

2020-08-22 16:55:15 1407 1

原创 高通平台根据阻抗值判断耳机类型

入口函数:初始化MBHC ADC相关函数指针到MBHC结构void wcd_mbhc_adc_init(struct wcd_mbhc *mbhc){ if (!mbhc) { pr_err("%s: mbhc is NULL\n", __func__); return; } mbhc->mbhc_fn = &mbhc_fn; INIT_WORK(&mbhc->correct_plug_swch, wcd_correct_swch_plug);}..

2020-08-21 15:07:06 1326

原创 高通耳机阻抗估算流程

Msm-analog-cdc.c (vendor\qcom\opensource\audio-kernel\asoc\codecs\sdm660_cdc)static struct platform_driver msm_anlg_codec_driver = { .driver = { .owner = THIS_MODULE, .name = DRV_NAME, .of_match_table = of_match_ptr(sdm660_co.

2020-08-21 11:21:34 825

空空如也

空空如也

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

TA关注的人

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