自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

彩虹的微笑的博客

一起讨论嵌入式软件开发

  • 博客(46)
  • 资源 (4)
  • 收藏
  • 关注

原创 休眠失败排查

1 休眠唤醒测试时休眠失败大体情况:内核:Linux 4.19硬件:32bit ARM SOC问题:某板子在休眠唤醒流程验证的过程中,休眠失败;复现:echo standby > /sys/power/state其中,异常日志如下:# echo standby > /sys/power/statePM: suspend entry (shallow)PM: Syncing filesystems ... done.Freezing user space processes

2021-05-29 15:41:37 1876 1

原创 高通功耗调试18之Tsensor中断频繁触发导致低温下待机功耗高的问题

❑ 问题背景在内核4.9及之后的版本,低于5C环境温度下待机,由于触发了Tsensor的低温保护机制,可能会遇到较频繁的tsens中断。11-22 07:12:27.914969 0 0 W GICv3 : gic_show_resume_irq: 22 triggered tsens-upper-lower11-22 07:12:37.147577 0 0 W GICv3 : gic_show_resume_irq: 22 triggered tsens-upper-lower11-22 07:

2020-11-20 16:20:41 1213 1

原创 高通功耗调试17之TLOC DEAMON导致待机/亮屏电流异常问题

❑ 问题背景❑ TLOC(Trusted Location)功能默认打开, 会导致系统每30mins被唤醒,唤醒时间持续20s❑ 问题解决临时修改方法:adb shell rm /vendor/bin/tloc_daemon; adb reboot去验证.❑ 请参考KBA-171211223204.❑ 适用平台:ALL...

2020-11-19 19:50:32 729

原创 高通功耗调试16之连接BT待机功耗大问题分析(Android P)

❑ 问题背景❑ Android P上Google修改了BT的代码,在待机时允许modem上报网络信号强度给AP。因此连接BT待机时AP会被频繁唤醒,导致待机功耗增加❑ 问题解决❑ 问题分析请参考KBA-190212004248❑ 适用平台:ALL(Android P)...

2020-11-19 19:32:22 501

原创 高通功耗调试15之APSS唤醒电流优化

❑ 问题背景❑ 在内核4.9及之后的版本,通过优化APSS唤醒过程中uevent的上报数量,减少了ueventd的执行时间,从而改善唤醒过程中的峰值电流和平均电流❑ 问题解决❑ 请参考 KBA-190223230044❑ 适用平台:ALL...

2020-11-19 17:55:23 672

原创 高通功耗调试14之Android的功耗配置文件power_profile.xml

❑ 问题背景❑ GOOGLE要求设备制造商必须在 /frameworks/base/core/res/res/xml/power_profile.xml 中提供组件的功耗配置文件。这些参数都是google定义的,但是没有提供统一的测量方法,因此针对这些问题,QC按照自己的理解,提供一些建议。❑ 问题解决❑ 参考KBA-200323062723, 文档针对power_profile.xml的条目进行了解释以及提供了部分参考的测量办法。❑ 适用平台:ALL...

2020-11-19 17:47:22 923

原创 高通功耗调试13之BatteryHistorian解析bugreport失败

❑ 问题背景❑ 在android升级到Android P之后,出现使用Google BatteryHistorian解析bugreport失败。❑ 问题解决❑ 方案一, 参考KBA-191207231251, 修改某些数据输出类型为整形❑ 方案二, 升级 battery-historian 版本。注意可能需要VPN才能正常访问安装网站1) Install Docker from https://www.docker.com/products/docker-desktop2) And th

2020-11-19 17:42:52 1256 1

原创 高通功耗日调试12之Glink唤醒问题处理

❑ 问题背景❑ 从SM8150开始, MPROC通信机制GLINK有改动(80-PF777-4)。如遇到APPs被glink irq唤醒,处理方法则有所改动❑ 问题解决❑ KBA-170331004714在新GLINK架构中不再适用(sys/module/ipc_router_core节点不存在)❑ 请参考KBA-200427080824进行初步定位。❑ 请参考KBA-181212194604进行MPROC/IPC调试❑ 其中对于常见的sensor/modem导致的QMI 唤醒,.

2020-11-19 17:34:30 2828

原创 高通功耗调试11之如何使用Hansei解析AOP DUMP

❑ 问题背景❑ 在RPMH的新设计下,AOP以及其他各个子系统的状态可以通过Hansei工具进行解析,客户可以通过该工具自行解析RAM Dump来定位系统不休眠的问题。❑ 问题解决❑ 请参考80-P9301-16 RPM Hardening and Debugging Overview, Hansei RAM Dump Parser Part❑ Example on SM7250:python \aop_proc\core\bsp\aop\scripts\hansei\hansei.py -

2020-11-19 17:27:11 1677

原创 高通功耗调试10之如何验证NR5G温控策略是否生效

❑ 问题背景❑ 由于在NR5G网络下的数据传输,功耗要显著高于4G LTE,因此温控变得十分重要。❑ 问题解决❑ 请参考KBA-200308213906 SDX55 5G NR THERMAL DEBUG GUIDE❑ 适用平台:SM8250, SM7250, SM6350

2020-11-19 17:20:32 433

原创 高通功耗优化9之如何Debug Alarm Timer唤醒问题

1.问题背景 ❑ Kernel由于Alarm Timer出现频繁唤醒或者出现Alarmtimer设备休眠失败。2. 问题解决 ❑ 请参考KBA-200505201040 How to debug alarm timer wakeup in APSS

2020-11-19 17:13:17 633 3

原创 高通功耗调试8之通用温升问题调试技巧

1.温升问题可以分为以下三大类1.1设备的表面问题大于典型的45℃1.2Thermal引起的稳定性问题1.3Thermal引起的性能问题2. 更多细节,请参考KBA-160720191150 Thermal Issue Initial Triage Guide3. 在一些平台的QRD的默认配置中,Modem温升调节是默认使能的,这些Modem温升的配置会对Modem的速率测试,RF性能测试等产生影响,如果CDT里面的配置使用的是QRD的hw_platform id, 需要

2020-11-19 16:36:44 600

原创 高通功耗优化调试7之DoU (Days of Usage)功耗调试

1.DoU的目标应该基于基本的Power dashboard,在调试DoU之前请首先优化基本的Power User Case,确保基本的Power dashboard达到目标2.用户用例和操作流程会对DoU的产生很大影响,所以在做DoU对比测试时要检查以下的内容3.TX power 对每个modem 通话和数据业务的用户用例的影响4. DRX cycle length 对与modem stanby的用户用例的影响5. Presetting’s & test conditio

2020-11-19 16:32:17 3904

原创 高通功耗调试6之Modem功耗调试

1.Modem用例的测试环境很重要,一定避免在现网环境下分析modem相关的功耗问题, 确保所有测试都在Callbox下进行的。2.Callbox具体的相关设置请参考文档 80-N6837-1 Measurement Procedure for MSM (Android-Based)/MDMDevices3.更多细节,请参考文档80-P0955-1SC的4.2 待机, 4.3 通话 4.4 数据...

2020-11-19 16:27:08 1146

原创 高通功耗调试5之Camera功耗调试

1.删除掉所有不必要的log,Camera应用场景的时候因为log过多会导致系统功耗上升很多。要减少不必要log输出,或者直接disable LogD。2.综合考量功耗和性能,比如对于fps,可以低于30fps以取得更低功耗。需要找Camera Vendor提供更低帧率的设置。 对于sensor output,可以采用最低的sensor output resolution来满足实际场景需要,比如1080Pvideo record的时候sensor就不用输出Full Size,而是最接近1080P

2020-11-19 16:07:38 1467

原创 高通功耗调试4之静态显示功耗调试

1. 建议使用Android原生的UI,这样可以排除由于产品本身的UI引起的功耗增加。原生UI功耗正常以后再切换到产品定制UI上来。很多时候我们可以根据波形来进行对比。比如看看定制化UI的功耗波形是否有周期性的peak之类。2.需要考虑触摸屏的功耗,当触摸屏产生了更多中断的时候,可能会对功耗有负面影响。触摸屏本身firmware是否有优化空间也是考虑之一。需要和触摸屏厂家沟通以确认。3.检查自动背光调整feature是否打开,为了能更好对比功耗数据,做测试的时候需要去掉自动背光调整功能

2020-11-19 15:48:52 450

原创 高通功耗调试3之MP3功耗调试

1.确认MP3 playback模式• Compress offload /Tunnel mode: Decoding on ADSP,下面是命令adb shell setprop audio.offload.disable 0• Non-Offload/Nontunnel mode: Decoding on CPU,下面是命令adb shell setprop audio.offload.disable 12.如果有第三方的音效处理算法,系统功耗肯定会比高通参考数据高。为了方便比较,可以先去掉

2020-11-19 14:51:53 683

原创 高通功耗调试2之RBSC底电流调试

1. 当RBSC高的时候可以使用IR Camera看看热点在哪里,这样可以确定是哪个硬件模块没有进入休眠。这个对某个大模块没有进入休眠很有帮助, 比如Audio Codec2. 运行下面的命令,然后从kernel的dmesg中能看到AP休眠的时候,还有那些clock是enabled的。例如最常见NFC配 置错误的时候,bb_clk2_pin在suspend之前没有被disable,导致系统进入不了VDD_MINadb shell "echo 1 > /sys/kernel/debug/clk

2020-11-19 14:21:25 1177

原创 高通功耗调试1之通用功耗测试自查清单

❑ 在测试功耗之前,请检查下面的这些基本项:❑ 使用 perf_defconfig 代替 defconfig▪ Remove “Debug” features▪ Double check if “CORESIGHT” config is removed▪ Double check if “CONFIG_MSM_DEBUG_LAR_UNLOCK” config is removed❑ RBCPR feature对功耗非常重要,请确保测试功耗的版本里面没有禁止掉VDD_APC, VDD_CX, VDD

2020-11-19 14:12:16 1328

原创 深度:嵌入式系统的软件架构设计

深度:嵌入式系统的软件架构设计1. 前言嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。提起嵌入式软件设计,传统的印象是单片机,汇编,高度依赖硬件。传统的嵌入式软件开发者往往只关注实现功能本身,而忽视诸如代码复用,数据和界面分离,可测试性等因素。从而导致嵌入式软件的质量高度依赖开发者的水平,成败系之一身。随着嵌入式软硬件的飞速发展,今天的嵌入式系统在功能,规模和复杂度各方面都有了极大的提...

2020-09-01 14:44:47 2276

原创 Mobaxterm-不止是一款好用的SSH客户端软件

MobaXterm是一款功能强大的远程终端登录软件,主要特点:内建多标签和多终端分屏 内建SFTP文件传输 内建X Server,可远程运行X窗口程序 直接支持VNC/RDP/Xdmcp等远程桌面 默认的UTF-8编码。很多SSH客户端软件没有这个特色,若编码配置不正确会出现乱码 简单易配置的端口转发 屏幕录制 等等安装打开官方网站(下载地址附在文后),选择“Home Edition”,该版本功能已足够满足日常工作需求,更重要的它是免费的。也可以选择“Portable edition

2020-08-28 09:51:23 1102

原创 grep命令快速入门

Linux 文本操作的三大神器:grep、sed、awk,各自的最佳应用场景:grep:使用正则表达式搜索文本,并把匹配的行打印出来,是强大的文本搜索工具; sed:用于编辑匹配到的文本,是一种流编辑器; awk:能够对文本进行复杂的格式处理,是一种处理文本的语言。接下来,会依次对这三个命令进行介绍,方便快速上手。首先是 grep。1、命令功能grep 的主要功能是在文件中查找/过滤所需要的内容。比如查看 ip 地址的命令:ifconfig | grep inet.

2020-08-14 15:28:38 263

原创 基于STM32F0系列单片机的红外遥控调试

红外遥控原理分析遥控 :NEC 编码 960nm的波长 晶振为455KHZ,对应的发射频率(载波频率)为38KHZ, 遥控ID为0(即系统识别码),反码为255,不同的遥控ID有可能不一样。遥控码由三部分组成1、leader code 9ms的高电平 + 4.5ms 的低电平2、系统识别码 区别不同的红外遥控设备3、操作码 8bit操作码和8bit的操作反码组成发送方的电平跟接收方解调出来的电平是反向的。红外接收头接收到遥控器的信号后,...

2020-06-06 15:24:48 1353

原创 国内知名单片机开发板资料网址汇总,包括程序,原理图,测试截图,烧录工具

1.正点原子:http://www.openedv.com/docs/index.html2.野火:https://ebf-products.readthedocs.io/zh_CN/latest/#3.硬石:http://www.ing10bbs.com/forum.php?mod=viewthread&tid=1458&extra=page%3D1

2020-06-02 17:43:35 1848

原创 input输入子系统框架分析(汇顶GT911)

1.框架,文件路径和内核选择:event handler层:为应用层提供编程接口,接受设备驱动层的上报的数据,属于应用空间和设备驱动之间的桥梁。input core层:负责管理输入设备,为输入设备驱动层提供各种接口,比如注册注销,上报数据方式等等。driver层:主要实现对硬件设备的读写访问,中断设置,并把硬件产生的事件转换为核心层定义的规范提交给事件处理层。基本逻辑过程...

2019-11-12 16:43:05 758

原创 RK3288:linux系统中基于IIO子系统的模数转换器ADC128S052的驱动调试

CPU:RK3288Kernel:4.4Systerm:linux(buidroot)IC:ti-adc128s052iiO子系统全称是 Industrial I/O subsystem(工业 I/O 子系统),此子系统的目的在于填补那些分类时处在hwmon(硬件监视器)和输入子系统之间的设备类型。在某些情况下,iio和hwmon、Input之间的相当大的重叠。关于...

2019-06-13 21:12:03 1698 2

原创 RK3288:linux系统中基于I2C的数字温度传感器TCN75A的驱动调试

CPU:RK3288Kernel:4.4Systerm:linux(buidroot)IC:TCN75A下面我们来看这款芯片的介绍:引脚介绍,一共八个引脚:引脚描述:我选择的是9位,0.5度的分辨率。默认极限温度是80度打印出来的温度值,换算公式是:...

2019-06-13 11:18:25 1500

原创 RK3288:linux系统中基于GPIO的7*7的矩阵键盘驱动调试

kernel:4.4systerm:buildrootsoc:rk3288ic:CY8C9540A矩阵键盘的编程原理,行列扫描:行列扫描的话,就是一开始按照原理图让GPIO口高4位输出高电平,低4位输出低电平,若这4行按键里,有按键按下了,那么那一行按键对应的io的电平就会被拉低,我们就可以知道按键的行坐标.获取按键列坐标的方法也是类似的,就是一开始让p1口高4位输...

2019-05-27 16:27:14 1138

原创 RK3288:linux系统中基于TLV320AIC3254Audio音频芯片的驱动调试

CPU:RK3288Kernel:4.4Systerm:linux(buidroot)IC:TLV320AIC3254Linux驱动程序支持TLV320AIC32x系列低功耗立体声编解码器。Linux驱动程序支持通过I2C和SPI总线进行通信,并与Linux DAPM(便携式设备的动态音频电源管理)类接口。支持的设备:tlv320aic32...

2019-04-24 14:22:46 3982 1

原创 RK3288:linux系统中MIPI接口的5寸LCD显示屏的调试

RK3288的LCD调试,根据屏幕规格书对dts作相应的修改基本都可点亮,配置也较为简单Platform: RockchipSoc: RK3288System: linux(buidroot)IC:NT35523内核:4.4先做一些准备工作,多看看LCD的手册提炼出来关键信息是:Hactive = 800 ,水平...

2019-03-28 20:21:22 6663 1

原创 RK3288 中dts和dtsi介绍

Device Tree 是一种描述硬件的数据结构,它起源于 OpenFirmware(OF)。在 Linux2.6 中,ARM 架构的板机硬件细节过多地被硬编码在 arch/arm/plat-xxx 和 arch/arm/mach-xxx,采用 Device Tree 后,许多硬件的细节可以直接透过它传递给 Linux,而不再需要在 kernel 中进行大量的冗余编...

2019-03-27 14:14:55 2273

原创 RK3288:LINUX 系统编译报“recipe for target '_all' failed” 处理办法

===========================================make: Entering directory '/home/xuzui/3288/linux/buildroot' GEN /home/xuzui/3288/linux/buildroot/output/rockchip_rk3288/Makefile/home/xuzui/3288/lin...

2019-03-26 17:31:15 43061 1

原创 RK3288板卡 Linux 修改BOOTDELAY资料分享

boot进入kernel中间的延时时间可以通过BOOTDELAY这个宏来控制。修改uboot/common/Kconfig文件config BOOTDELAY        int "delay in seconds before automatically booting"        default 0        depends on AUTOBOOT        help      ...

2018-10-16 13:51:48 539

原创 fatal error: openssl/bio.h: No such file or directory 解决方案

出现这个或者fatal error: openssl/名单.h: No such file or directory。都是没有安装libssl-dev~libssl-dev包含libraries, header files and manpages,他是openssl的一部分,而openssl对ssl进行了实现~解决方案:使用sudo apt-get install libssl-de...

2018-10-09 17:34:09 32968 7

原创 C语言中的运算符和表达式

运算符及其运算 :   算术运算符:   关系运算符和逻辑运算符:位运算符:    赋值运算符与赋值复合运算符:  C语言的特殊运算符:  逗号“,”运算符: sizeof运算符:  C运算符...

2018-07-16 17:21:07 260

原创 C语言中数据的输入输出

数据的输出:

2018-07-13 18:09:59 8326 1

原创 C语言中的预处理

预处理:1.预处理是C语言的一个重要功能,它由预处理程序负责完成。当编译一个程序时,系统将自动调用预处理程序对程序中的“#”号开头的预处理部分进行处理,处理完毕之后可以进入源程序的编译阶段。2.C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等。预定义符号:在C语言中,有一些预处理定义的符号串,它们的值是字符串常量,或者是十进制数字常量,通常在调试程序时用于输出源程序的各项信息.宏定义:文...

2018-07-10 19:57:26 5969 1

原创 C语言中的常量与变量

变量1:1.C语言的变量在程序中用变量名表示。变量名由用户根据其用途任意命名,变量名命名遵从标识符的起名规则(只能由字母\数字\下划线组成且头一个字母只能是字母或下划线. 变量不能是C的特殊字符)。 2.在程序运行时,变量占据一定大小的存储空间,其大小由其数据类型来决定的,作为某变量的内存空间的首地址,称为变量的地址。变量2:变量在程序中使用时,必须预先说明它们的存储类型和数据类型。变量说明的一般...

2018-07-10 18:58:02 522

原创 c语言中基本的数据类型

基本数据类型1:逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。整数类型。C支持四种整数类型:char, short, int和long,整数类型用于处理整数。浮点类型。C支持两种浮点类型:float和double,浮点类型用于处理包含小数部分的数值。void类型。该类型也叫缺省型,用于描述值为空集, 主要用于说明不返回值的函数或指向任一类型的指针等。基本数据类型2:基本数据类型...

2018-07-10 17:00:13 30212 1

原创 GNU C简介ANSI C与GNU C

ANSI C简介:1983年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充制定了新的标准,并于1989年颁布,被称为ANSI C或C89。目前流行的C编译系统都是以它为基础的。GNU C简介:1.GNU项目始创于1984年,旨在开发一个类似UNIX,且为自由软件的完整的操作系统。2.GCC是GNU的一个项目,是一个用于编程开发的自由编译器。如今的GCC支持众多语言。3.在...

2018-07-10 16:45:27 4223

6轴传感器MPU-6881产品规范.pdf

MPU-6881是一个6轴运动跟踪装置,它结合了一个三轴陀螺仪和一个3轴加速度计在一个小的3x3x0.9mm(24针qfn)封装。 它还具有一个4096字节的FIFO,它可以降低串行总线接口上的流量,并通过允许系统处理器突发读取传感器数据,然后进入低功耗模式来降低功耗。 使用其专用的i2c传感器总线,MPU-6881直接接受来自外部i2c设备的输入。 MPU-6881具有6轴集成,使制造商能够消除离散设备的昂贵和复杂的选择、资格和系统级集成,保证了消费者的最佳运动性能。

2020-06-06

STM32CubeMX530好用版本.zip

STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。    在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等  省去了我们配置各种外设的时间,大大的节省了时间。

2020-06-06

Beyond Compare4破解版

这个是破解版哦,下载过后解压就可以使用,方便快捷。

2019-02-28

sourceinsight4.0

Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。 Source Insight不仅仅是一个强大的程序编辑器,它还能显示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信 息。 Source Insight提供了快速和革新的访问源代码和源信息的能力。与众多其它编辑器产品不同,Source Insight能在你编辑的同时分析你的源代码,为你提供实用的信息并立即进行分析。

2018-09-07

空空如也

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

TA关注的人

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