自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(353)
  • 资源 (2)
  • 收藏
  • 关注

原创 MCU 串口接收环形缓冲区的实现

环形缓冲区。

2024-03-03 18:13:20 447

原创 C语言-qsort的使用

比较函数为自定义函数:其两个参数为void*类型指针的elem1和elem2 ,返回参数为整形int参数类型为void*原因:不清楚需比较元素的类型是什么,所以通过void*类型指针的特点(可以接收任意类型的地址)来接收。const修饰其两个比较参数不可被更改。返回值有三种情况:< 0 : elem1 小于 elem2= 0 : elem1 等于 elem2> 0 : elem1 大于 elem2。

2024-01-26 10:55:48 10754

原创 Android P 背光机制流程分析

在android 9.0中,相比android 8.1而言,背光部分逻辑有较大的调整,这里就对android P背光机制进行完整的分析。

2024-01-26 10:14:33 11152

原创 Android P 屏保和休眠相关知识

Android P添加屏保功能,如果休眠时间设定大于屏保时间,则先进入屏保,达到休眠时间后再进入休眠需求:修改后的屏保: 分析与实现:由于Android原生系统默认进入屏保的条件是充电或插入基座时,但到达休眠时才进入屏保。所以需要把进入屏保的条件修改为任何时候都能进入。2.在设置–>显示–>屏保中添加“屏幕互保”选项开关2.1添加系统自定义全局变量,用来保存“屏幕互保”选项开关的状态值2.2 vendor/mediatek/proprietary/packages/apps/MtkSett

2024-01-26 08:59:07 11033

原创 C语言中计算结构体的大小

因此我们似乎很容易就能计算出这个结果:4+20+4+4=32字节但事实上结构体的大小并不是通过这样简单累加计算的。

2024-01-25 16:37:30 10841

原创 比较好用的代码搜索网站

比较好用的代码搜索网站。

2024-01-22 22:25:23 10240

原创 Android系统禁止进入深休眠的方法

在PowerManagerService中mWakeLockSuspendBlocker是控制CPU休眠的锁。mDisplaySuspendBlocker是控制显示开关的锁。通过查看文件,亮屏时看到的也是这两个锁:当按下电源键,会调用goToSleep—>goToSleepInternal —>goToSleepNoUpdateLocked—>updatePowerStateLocked;

2024-01-08 15:25:31 10401

原创 Android蓝牙音乐SRC侧的实现

对音频数据进行编码的具体操作则在各编码方式对应的处理函数中完成,源码路径参考:system\bt\stack\a2dp\a2dp_xxx_encoder.cc\a2dp_xxx_encode_frames(),xxx对应A2DP连接使用的编码方式(SBC、AAC、aptX、LDAC等)。Bluedroid 通过数据 socket 接收到 audio 发送过来的音频数据后,根据A2DP连接时双方协商确定的编码方式对数据进行编码操作,最终将编码后的数据通过l2cap链路发送到SNK端。

2024-01-07 13:29:12 10844

原创 A2DP Source如何从android系统拿到音频数据

5、启动数据通道后,会通过回调btif_a2dp_data_cb通知,进行一些必要的操作后(具体参考原生代码btif_a2dp_data_cb的实现),就可以使用UIPC_Read(UIPC_CH_ID_AV_AUDIO, &event, p_buf, len);A2DP_CTRL_PATH是控制通道,A2DP_DATA_PATH是数据通道。

2024-01-06 18:24:05 10649 1

原创 嵌入式中的数据初始化

整型、浮点型的变量可以在定义的同时进行初始化,一般初始化为 0.

2024-01-05 23:01:38 10770

原创 Android wifi基础知识点

有线网络通过有线线缆把终端和交换机连接起来,组成网络。而无线网络的基础设施模式中,是通过一种叫做 AP 的设备,把多台终端连接到有线网络中。AP也叫做接入点,接入点通常有 RJ-45 网络接口,用来连接到交换机或路由器上,从而让无线网络的终端能够访问有线网络或互联网。WiFi是基于 IEEE 802.11 标准的、不同厂家为产品的品牌认证。既然有 IEEE 802.11 标准了,为什么还要有 WiFi 认证?

2023-12-23 14:16:09 42753

原创 高通wifi配置文件解析

WCNSS_qcom_cfg.ini WIFI配置文件解析下面配置项仅供调试参考,还需要结合代码和日志具体问题具体调试。

2023-12-22 09:16:13 42177

原创 msm8953 调试 LCD过程

转载本篇记录Andoird9 高通msm8953 ili9881c LCD调试过程,主要涉及到以下几个知识点:一、利用GCDB生成lk 头文件和 kernel dts,点亮屏幕;二、LCD兼容;三、LCD方向调整。

2023-12-19 22:02:13 46152

原创 Android驱动并发与竞争

下面介绍Android Linux是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。

2023-12-19 09:29:51 47157

原创 Android audio pop 音产生和解决方法

pop noise其实是隔直电容被充电产生。

2023-12-14 18:57:23 46661 1

原创 Android audio设置投屏和喇叭双输出

在 Android13 平台上,使用 USB 投屏工具scrcpy,投屏到电脑端时,声音被截到 电脑端播放,Android设备 端静音,在Android11及之前都是 在Android设备端正常播放。

2023-12-12 23:45:58 46965

原创 MTK Android P Sensor架构(二)

kernel层框架的要点大概就这么多,不同的sensor,基本的驱动流程都类似,读完我这系列文章后应该就能一通百通了。

2023-12-12 22:48:04 47194

原创 MTK Android P Sensor架构(一)

本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第三方的应用也能正常读取温湿度的数据并展示。

2023-12-12 22:26:58 47373 1

原创 Android音量调节参考一

基于android 9平台分析。在Android系统中,默认的设备(phone等)音量都是分开控制的,这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。

2023-12-07 17:01:04 47685

原创 Android P 9.0 增加以太网静态IP功能

在 mobile_network_settings 和 tether_settings 之间增加如上代码,对应的 icon 资源文件是我从 SystemUI 中拷贝过来的,稍微调整了下大小,也贴给你们吧到这一步 Settings 的修改就完成了,就能实现上图的效果了,你可以mm push看效果了如果你编译报错,大概是 Settings 中没有添加对应的变量,我的本来就有的,没有的可参考下面的加一下加完后你需要先 make update-api成功后,在重新 mm 编译应该就好了。

2023-12-07 15:45:09 47586

原创 Android HCI日志分析案例3

客户反馈Android设备机上电后,自动连接蓝牙音箱后,等一段时间后,播放音乐,此时,蓝牙音箱声音很小,然后按设备上的音量按键调整音量,会出现,蓝牙音箱音量不同步的现象。看日志13分43秒左右确实有断开,之后再次连接后,没有注册绝对音量控制服务,只是注册了音量改变的通知。异常时 NewAvrcpTargetService 有断开,之后没有再次连接。我们看看正常时的,可以看到正常时是可以成功设置绝对音量的。这款蓝牙音箱是支持设置绝对音量的音箱。直接去掉判读条件即可。

2023-12-07 14:27:27 46872

原创 耳机拔掉或者断开,音乐播放暂停,Android源码分析

问题场景:有线耳机或者蓝牙耳机断开,此时音乐播放就会自动暂停,接下来分析下代码流程。接收该广播的位置:(已系统Music为例,也可能是自己的应用)监听此广播的地方就可以暂停音乐的播放。基于Android P MTK的代码。

2023-12-07 11:41:24 46553

原创 [SPRD]展讯平台 LCD(Mipi)移植步骤及问题归纳

步骤如下:1.移植对应的 lcd 驱动。2.设置u-boot\drivers\video\sprdfb\sprdfb_main.c中的背光为内置:void set_backlight(uint32_t value)函数中,添加white_led = 1;3. 在 kernel/drivers/video/backlight/sprd_backlight.c 的#if (defined(CONFIG_SPX15))前面。

2023-12-06 09:40:34 47116

原创 Android wifi disable分析

【代码】Android wifi disable分析。

2023-12-05 22:07:44 47180

原创 Android wifi Enable之后扫描流程

通常我们在设备开启wifi之后,等会会自动扫描出周围的热点。下面看下自动扫描周围热点的流程。

2023-12-05 08:03:40 47126

原创 Android wifi连接和获取IP分析

【代码】Android wifi连接和获取IP分析。

2023-12-04 23:08:58 47468 1

原创 Android wifi 框架以及Enable流程

点击 wifi button 开启wifi 触发的代码流程如下,

2023-12-04 22:39:20 47327

原创 Android Wifi 四次握手日志分析

记录一下四次握手的log。

2023-12-03 18:57:55 46606

原创 Android Wifi断开问题分析和802.11原因码

Android Wifi连接和断链分析思路。1.密码错误导致的连接失败2.关联被拒绝3.热点未回复AUTH_RSP或者STA未收到 AUTH_RSP4.热点未回复ASSOC_RSP或者STA未收到ASSOC_RSP6.发生roaming7.AP发送了DEAUTH帧导致断开连接下面详细介绍。

2023-12-03 16:48:32 47748

原创 Android framework定制1-->用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放

【代码】Android framework定制1-->用户无操作一段时间,自动播放客户提供的视频,用户操作后退出播放。

2023-12-03 00:03:09 46587

原创 Android Wifi的扫描机制

Android Wifi 的扫描场景分为下面四种情况:1.亮屏情况下,在Wifi settings界面,固定扫描,扫描时间为10s。2.亮屏情况下,在非Wifi settings界面,二进制指数退避扫描,退避:interval*(2^n), 最小间隔min=20s, 最大间隔max=160s.3.灭屏情况下,有保存网络时,若已连接,不扫描,否则,PNO扫描,即只扫描已保存的网络。最小间隔min=20s,最大间隔max=20s*3=60s。

2023-12-02 23:42:17 47009

原创 Android HCI日志分析案例2

基于MTK平台,通过MTKLogger开启保存HCI日志。Android日志查看logcat 搜索到关键log。根据这些信息,配对是链路层的行为,即在 HCI中搜索。一目了然,看到对端主动断开连接。

2023-12-02 23:15:26 46459

原创 Android HCI日志分析案例1

当应用层调用startDiscovery()时,Host会通过HCI发送一个 Inquiry HCI Command给 Controller。接下来我们会通过分析HCI log,来学习Inquiry的流程。在分析HCI log前,我们先来学习下HCI Command数据包的结构。

2023-12-02 21:44:18 47266

原创 Android BT HCI分析简介

HCI log是用来分析蓝牙设备之间的交互行为是否符合预期,是否符合蓝牙规范。分析Bug:蓝牙打开后搜索不到设备,或者搜索到的设备没有名称只有蓝牙地址;Android手机不能向苹果手机传输文件需求分析:手机需要适配一款蓝牙自拍杆来控制拍照,通过HCI log可以观察竞品在实现这个功能时,使用的是什么Bluetooth Profile?只要知道了使用的Bluetooth Profile,我们就有了实现这个功能的思路。

2023-12-02 17:57:26 46975

原创 Android WiFi的断开分析

2.wlan-driver在与路由器连接的时候(未断开时), 会有周期性的beacon帧来维持连接,AP端一旦遇到突发事情,会立刻通过802.11协议的 deauth 帧/ reject 帧等 通知到 driver。1.wifi断开 wlan-driver最先知道。3. wlan-driver一旦收到。

2023-11-25 15:56:07 47207

原创 路由器DHCP分配IP地址规则

来一个请求,看一下是不是以前请求过的地址,如果是,还是返回以前给过的IP,然后将到期时间(有些路由器默认是120分钟)延长一下。到期的IP没延长请求,那么这个IP就重新放回地址池,可以重新分配出去。如果想不冲突,需要在路由器的DHCP地址池中,绑定一个MAC为你需要固定的IP。这样子DHCP分配的时候就会避开这个IP。先设置一个IP地址池,假设是192.168.1.100-192.168.1.199一共100个。

2023-11-25 10:14:18 46903

原创 蓝牙测试时的问题

主设备(master,即发起连接的设备)会寻呼(page)从设备(slave接收连接的设备),master会用跳频的方式去寻呼slave,slave会固定间隔地去扫描(scan)外部寻呼,即page scan,当scan 到外部page时便会响应response该page,这样两个设备之间便会建立link的连接,即ACL链路的连接。1、从设备是否处于可连接的模式下。通过上面的分析,我们知道了产生Page timeout的原因是由于在主设备寻呼(page)从设备时,ACL链路没有建立成功。

2023-11-22 14:34:06 38745

原创 mtk8175添加一款camera(GC5035)流程

下面是自己在MTK8175 kernel-4.14 android9.0中添加GC5035的记录,供参考。kernel目录下面添加dts配置,即硬件管脚、时钟、电源、I2C等的配置和 添加相关的驱动。vendor 目录下面添加相关的效果文件。device目录下面添加相关宏定义。1.device目录。

2023-08-27 13:22:56 39024

原创 android修改触摸屏添加唤醒功能参考

tp触摸唤醒功能

2022-11-28 18:51:56 42740 1

原创 关于stm32的flash内存

stm32 flash

2022-11-21 15:53:08 39450

程序对比工具 winmerge下载

程序对比工具 winmerge下载

2017-03-24

空空如也

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

TA关注的人

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