- 博客(48)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
原创 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
原创 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关注的人