自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 fprintf 和 sprintf用法

和都是 C 语言中用于格式化输出的函数,但它们在用法和目的上有所不同。

2024-01-22 10:21:13 304

原创 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 985 2

原创 驱动和应用数据交互四种方式

如果条件不满足,poll机制会使应用程序休眠指定时间,休眠时间内条件满足则唤醒进程。如果条件一直不满足,达到指定超时时间后,进程自动唤醒再次判断条件是否满足。:这是一种非阻塞的方式,应用程序通过查询方式与底层驱动交互。如果应用层不断调用read函数,CPU占用较高,是一种耗费资源的方式。:应用程序注册信号处理函数,驱动程序在特定事件发生时发送信号给应用程序。:当条件不满足时,应用程序会休眠,等待条件满足时被唤醒。这种方式可能会导致应用程序一直休眠下去,如果条件一直不满足。

2024-01-02 09:29:23 447

原创 使用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 280

原创 buildroot如何配置静态网络

buildroot 静态网络配置

2023-11-27 17:32:31 723 1

原创 shell脚本循环执行管道命令

【代码】shell脚本循环执行管道命令。

2023-10-09 10:27:20 102

原创 arm设备调试常用方式

更新临时分支上同一个commit id 提交记录内容。使用-f强制push 到临时分支xxxxxxxxxx。

2023-07-24 10:51:38 399

原创 环形缓存代码实现

环形缓存区实现

2023-05-09 09:42:17 100

原创 camera左右镜像功能实现

版本 Android 12 USB camera。

2023-03-17 15:40:12 1685 3

原创 使用c生成验证码图片

captcha验证码生成

2022-11-04 15:46:29 194

原创 编译问题随笔

编译问题

2022-09-28 17:48:56 98

原创 native crash定位代码位置

native crash定位

2022-09-23 17:59:16 62

原创 speex使用

speex音频处理简单使用

2022-09-23 17:36:24 1294

原创 fork与execl配合使用

开发中常常遇到启动线程导致当前进程处于阻塞状态而出现异常,这时可以通过fork创建子进程来实现,而execl可以一些shell命令而不阻塞主进程;

2022-08-30 13:34:36 423

原创 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 5278

原创 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 1782

原创 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 163

原创 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 461

原创 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 1518

原创 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 4612

原创 输入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 3262 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 1432

原创 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 1192

原创 应用使用相关服务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 212

原创 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 354 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 849

原创 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 438

原创 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 1436

Viterbi译码的路径选择

Viterbi译码的路径选择的FPGA实现

2014-07-09

空空如也

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

TA关注的人

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