- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 i2c设备寄存器读写操作
最后,代码调用了i2c_transfer函数,将msg消息发送到I2C总线上。主要目的是通过I2C适配器将一个消息发送到I2C总线上,以便与指定的I2C设备进行通信。参数1表示要发送的消息数量。总体上,这段代码通过I2C适配器向指定的I2C设备发送一个字节的数据(0x53),并尝试从该设备读取一个字节的数据。然后,定义了一个i2c_msg结构体变量msg,这个结构体用于表示一个I2C消息。: 设置消息的目标地址,即要与之通信的I2C设备的地址。: 定义一个i2c_msg结构体变量,用于表示一个I2C消息。
2024-01-11 16:17:31
3488
2
原创 驱动和应用数据交互四种方式
如果条件不满足,poll机制会使应用程序休眠指定时间,休眠时间内条件满足则唤醒进程。如果条件一直不满足,达到指定超时时间后,进程自动唤醒再次判断条件是否满足。:这是一种非阻塞的方式,应用程序通过查询方式与底层驱动交互。如果应用层不断调用read函数,CPU占用较高,是一种耗费资源的方式。:应用程序注册信号处理函数,驱动程序在特定事件发生时发送信号给应用程序。:当条件不满足时,应用程序会休眠,等待条件满足时被唤醒。这种方式可能会导致应用程序一直休眠下去,如果条件一直不满足。
2024-01-02 09:29:23
642
原创 使用GPIO 模拟出I2C控制器:
2、devm_request_irq是内核设备模型中用于申请中断的函数,它的功能与request_irq类似,但申请的是内核“managed”的资源。它与request_irq的区别在于,devm_request_irq申请的中断号不需要在出错的地方处理,也不需要在remove()接口里面显式释放。6、接收数据:在SCL信号的上升沿读取SDA引脚上的数据,以接收一个字节的数据。需要注意的是,request_irq函数需要在设备驱动程序中调用,而且需要在设备初始化之前完成中断的注册。
2023-12-21 16:46:10
691
原创 fork与execl配合使用
开发中常常遇到启动线程导致当前进程处于阻塞状态而出现异常,这时可以通过fork创建子进程来实现,而execl可以一些shell命令而不阻塞主进程;
2022-08-30 13:34:36
464
原创 Android 新增外设Service添加供app使用
LED Service添加供app使用基本流程1、需要添加文件在源码中的位置2、具体需要添加的代码路径:Kernel:Dts:a、kernel/msm-4.4/arch/arm/boot/dts/qcom/xxxx-mtp.dtsib、 kernel/msm-4.4/arch/arm/boot/dts/qcom/xxxxx.dtsic、 kernel/msm-4.4/arch/arm/boot/dts/qcom/msm-xxxxxl.dtsi由于控制4A纸、finger和身份证三盏LED灯
2022-03-04 14:53:35
5315
原创 Android P 获取副摄像头调用权限
需要将应用包名添加到device/qcom/msm_xxxx/system.propro.vendor.bt.bdaddr_path=/mnt/vendor/persist/quec_bt_mac#Expose aux camera for below packages- vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.android.dialer,com.android.phone+ vendor.camera.aux.pack
2022-01-29 09:56:06
1855
原创 Linux下移植web服务
移植web配置界面需要依赖17个三方库:cgilua-5.2.1、curl-7.70.0、libfcgi-2.4.0.orig、lighttpd-1.4.55、lua-5.3.4、luafilesystem-1.7、luamqtt-master、lua-openssl、luasec-master、luasocket-master、openssl-1.1.1g、pcre-8.44、readline-8.0、rings-master、termcap-1.3.1、wget-1.20.3、wsapi-1.7;具体每
2021-11-24 11:33:24
177
原创 Linux下Web配置界面移植
移植web配置界面需要依赖17个三方库:cgilua-5.2.1、curl-7.70.0、libfcgi-2.4.0.orig、lighttpd-1.4.55、lua-5.3.4、luafilesystem-1.7、luamqtt-master、lua-openssl、luasec-master、luasocket-master、openssl-1.1.1g、pcre-8.44、readline-8.0、rings-master、termcap-1.3.1、wget-1.20.3、wsapi-1.7;具体每
2021-11-24 11:29:17
485
原创 PCM音频流多通道分离
预置条件:采样率:48kHz;通道:8通道;采样深度:16bit;帧长:2561、获得8通道的两个通道数据时:static int getTwoChannelsFromEightChannels(struct stream_in *in, void *buffer, size_t bytes){ int ret; int i, j, rd_round, byte_cnt; int size_in_short = bytes / 2;//因为数据采样深度为16bit所以需要对数据
2021-11-24 11:14:41
1602
原创 webRtc音频3A接口封装
webRTC音频3A接口封装在Android源码路径"external\webrtc"集成了webRTC的相关源码,而需要在音频hal层做相关3A处理的时候,我们就可直接对其进行封装调用,具体的音频3A处理模块为"external\webrtc\webrtc\modules\audio_processing",其中声学处理模块为:WebRTC Audio Processing 模块的 Acoustic Echo Cancelling(AEC)...
2021-11-24 10:30:43
4875
原创 输入adb devices 显示设备序列号
标题 输入adb devices 显示设备序列号adb devices读取/config/usb_gadget/g1/strings/0x409/serialnumber配置文件用作设备名称。相关文件(高通平台)1、device/qcom/common/rootdir/etc/init.qcom.usb.sh设备开机初始化名称设置if [ -d /config/usb_gadget ]; then # Chip-serial is used for unique MSM identificatio
2021-09-22 13:50:12
3564
1
原创 Android 开机默认wifi打开
源码路径frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -39,7 +39,7 @@ <bool name="def_haptic_feedback">true</bool> <bool name="def_bluetooth_on">false</bool>- <bool name="def_wifi_display_on">f
2021-07-01 11:29:13
1590
原创 Android设备耳机插拔流程
有线耳机插入流程:一、UEventObserver.java有线设备输入输出插入消息处理二、WiredAccessoryManager.java1、消息处理private final Handler mHandler = new Handler(Looper.myLooper(), null, true) public void handleMessage(Message msg) switch (msg.what) { ca
2021-07-01 11:21:53
1319
原创 应用使用相关服务FTP
开发过程中会经常遇到需要保存一些信息到FTP服务器中,这个时候我们就需要调用三方jar来获取相关api来完成相关操作1、libcommons_net_3.8.0.jar实现FTP文件文件上传下载及检测操作:提供的api接口包括:import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPReply;2、在Android
2021-07-01 10:26:52
238
原创 Android 应用反射方式的使用
由于Android处于安全性的考虑,使app开发过程中经常会遇到一些系统的接口无法在app中import使用,这个时候就要通过反射的方式来调用相关接口反射大概的使用方式为:import java.lang.reflect.Method;public class SerialUtils { public static String getSerialNumber() { String serial = null; try { Class
2021-06-30 17:26:32
368
2
原创 Android开机自启动添加
1、添加需要自启动的可以执行文件:(1)可执行C文件:system/core/init_start/needInitStartService.c例如:#include <stdio.h>#include <cutils/properties.h> int main(){ FILE * fp; char buffer[16]; fp=popen("/system/bin/modetool -s | grep +QCSN: | sed 's/\"/ /g' | awk
2021-06-30 16:41:07
900
原创 Android P OTA增量升级
1、在Android根目录下添加OTA增量包编译脚本:build_release_incremental_ota.sh#!/bin/bash## Copyright (c) 2012, The Linux Foundation. All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that t
2021-06-30 16:18:11
484
原创 Android P 默认关闭USB调试
1、刷机完成或者OTA升级完成使设备USB调试口默认为关闭状态packages/apps/Provision/src/com/android/provision/DefaultActivity.java@@ -34,7 +34,7 @@ public class DefaultActivity extends Activity { // Add a persistent setting to allow other apps to know the device has been pro
2021-06-30 15:15:41
1536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人