自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 踩内存问题分析方法

比较麻烦的在于程序奔溃点在之后的某个时间出现。此时array为全局数组,则被踩坏的内存也属于全局数组(除非array定义在全局区域的边缘),此种情况比较容易查找,通常也是由于index越界引起,可通过被踩坏内容的特征往前推,大致推导开始踩的位置,找出对应的全局变量后检查代码逻辑,看是否存在溢出。看到func没有对参数i做范围检查,极可能传进的i超过10,甚至是负数,这就无法知道被踩坏内存位置和自己内存位置,此种问题也是最难查的,因为可能每次奔溃的情况都不一样。1.1.2. 栈溢出。

2024-01-06 16:44:27 1156

原创 死机重启不开机

这种情况的原因是panic或HWT流程卡住导致HW reboot了,需要参考last kmsg,按普通的kernel panic或HWT分析,找问题的原因。HW reboot没走任何软件流程,是直接复位的,无法知道CPU处于什么状态,因为重启后什么都丢了,不像kernel panic或HWT有详尽的CPU寄存器和调用栈参考。1/5:表示HW reboot(如果fiq step不为0则是有发生panic然后才发生的HW reboot,此时应该先看panic),看门狗发出FIQ还是无法得到响应,只能硬件复位。

2024-01-05 14:02:26 913

原创 CAMERA调试

1.1. kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_debug_defconfig 与 kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_defconfig。在config_static_metadata.sensor.xxx.h文件中将 CONFIG_ENTRY_VALUE(MTK_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME, MUINT8)改为。

2023-12-14 18:27:43 117

原创 NVRAM相关

假设修改的是NVRAM_EF_IMS_PROFILE_LID这只NVRAM的默认值,它的文件名前缀MT79,升级前的NVRAM_EF_IMS_PROFILE_LID_VERNO号是000,修改默认值后将NVRAM_EF_IMS_PROFILE_LID_VERNO修改为001,那么Download Only升级前/data/nvram/md/NVRAM/NVD_DATA/目录中就有MT79_000这只文件。里面存的是普通NVRAM,2G RF driver NVRAM,3G RF driver NVRAM。

2023-12-07 14:34:32 169

原创 TP触摸屏调试

在系统亮屏或灭屏时,会调用回调tpd_fb_notifier_callback,并通过参数data实时传入FB_BLANK_UNBLANK(亮屏)与FB_BLANK_POWERDOWN(灭屏)的值,从而在亮屏时queue_work调度任务touch_resume_work运行并执行敦泰的resume(g_tpd_drv->resume(NULL)),灭屏时cancel_work_sync挂起任务touch_resume_work并执行敦泰的suspend(g_tpd_drv->suspend)。

2023-11-11 15:54:35 1197

原创 LCD调试

BOOT_LOGO = hd720 --- 根据屏分辨率来选择开机logo 位置在 vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo。后续所有围绕lcd的驱动处理,都会回到上面nt35521_hd_dsi_vdo_truly_nt50358_lcm_drv中所注册的函数。lcm_drv->init_power 对应 lcm_init_power --- 上电。--- 主要是跑屏初始化列表寄存器。

2023-11-04 16:16:42 182

原创 Flash ddr调试

流程:先确认所使用DDR类型(eMCP或分离式DDR+eMMC,可与项目经理确认),确认完DDR类型后,在官网online上面QVL查询是否有对应时序,若无,则可让flash供应商提供时序。大概意思为先读取eMMC firmware的emmc id,再与解析后的xlm时序表中的emmc id做遍历,若找到,则初始化ddr。--- CUSTOM_CONFIG_MAX_DRAM_SIZE的大小不能小于实际DRAM大小,DRAM会自适应物理DRAM的size。背景: Android T。

2023-06-17 17:18:13 472

原创 Keil v5小红叉消除

1. Project中的小红叉,如:去除方式:右键 --> Update Config File(Ver:0.0.0 -> 1.0.0):2. 代码中的红叉,如:以上红叉并不影响正常编译与程序的执行,可通过以下方式消除:

2022-03-25 15:16:40 3365

原创 keil编译报错找不到core_cm3.h文件

安装一次CubeMx后,可编译的工程报错:.\platform\Start_up\stm32f10x.h(478): error: #5: cannot open source input file "core_cm3.h": No such file or directory因为缺失CMSIS

2022-01-18 09:09:38 6413 3

原创 简单的链式队列

链式队列为使用链表来实现队列的存储结构。它创建两个指针top与rear分别指向链表头与链表尾部。下面是一个头节点的示意图:此时队列中未存储数据,top与rear指针同时指向头节点。添加一个新节点示意图:1. rear->next指向新添加的节点node2. 新添加的节点node成为新的rear节点删除一个元素示意图如下:完整代码如下:#include <stdio.h>#include <string.h>#includ...

2021-11-12 14:31:40 752

原创 SELinux

1.何为SELinux:SEAndroid是SELinux in Android的缩写。SELinux全称Security Enhanced Linux,即安全增强版Linux,它并非一个Linux发布版,而是一组可套用在类Unix操作系统(如Linux、BSD等)的修改,主要由美国国家安全局(NSA)开发,已经被集成到2.6版的Linux核心之中,现已有十几年的开发和使用历史,是Linux上最杰出的安全子系统。标准的UNIX安全模型是“自主访问控制“DAC(Discretionary Access..

2021-08-25 17:33:08 215

原创 property_get_bool 获取系统属性并强制转为bool

int8_t property_get_bool(const char *key, int8_t default_value);根据键key所设置的值来判定返回一个bool值,若未对键key设置值,则返回默认值default_value。若key所设置的值为以下值时,函数返回true:"1", "true", "y", "yes", "on"若key所设置的值为以下值时,函数返回false:"0", "false", "n", "no", "off"若是值为" off",其中带有一个空格,则为非

2021-07-02 14:33:45 3196

原创 芯片制程与功耗,运算速度关系

首先芯片制程越小,功耗越少,运算速度越快。芯片内部实际计算单元用到的都是二极管。二极管是什么?二极管是一种半导体,实际它是单向通电的,和我们普通电线做对比,普通电线正负极对调仍然可以通电,只不过是电流方向改变了而已,但是二极管是只有在正负极接对时才通电,解反是不通电的。下面以水管止逆阀为例,该阀门只能朝一个方向打开,若水流与打开方向不一致时,则阀门就会自动闭合上。如下图所示,有两个1米高的水桶,当向A中倒水时,止逆阀就会闭合,水流不会像C桶流动;当向C桶倒水时,止逆阀就会自动打开,水流就会顺着管子向

2020-08-11 15:32:07 6602

原创 u-boot之logo show

位于u-boot\drivers\video\drm\rockchip_display.c 函数display_logo:static int display_logo(struct display_state *state){ struct crtc_state *crtc_state = &state->crtc_state; struct connector_state *conn_state = &state->conn_state; struct l..

2020-06-09 16:23:22 876

原创 uboot驱动之udevice

struct udevice --> driver的一个实例该结构保存关于设备的一些信息,这个设备是驱动绑定的某个端口或外设,在本质上它也还是个driver实例。可通过调用bind函数创建一个device,使用U_BOOT_DEVICE()宏实现(在这种情况下,platdata为非空)或在设备树中创建一个节点(在这种情况下of_offset大于0)。在后一种情况下,是将设备树信息保存到platdata中去的,保存操作的函数为驱动的ofdata_to_platdata方法(当设备是一个设备树节点形式

2020-06-04 19:36:29 3144 1

原创 Makefile赋值符 = := ?= +=

[ = ] 与c语言类似,有一个特点就是在Makefile完全展开后,变量取最后一次的赋值。如:x = fooy = $(x) barx = abc此时y值是abc bar,而不是foo bar。[:=] 与前面[=]对比,[:]表示变量值取决于它在makefile中的位置,而不是等makefile展开后的值。如:x := fooy := $(x) barx := abc此时y值时foo bar,而不是abc bar。[?=] 表示若变量没有被赋值过,则就赋等号后面的值,如:foo .

2020-06-03 11:58:47 199

原创 unexport export locale LC_X

export: 表示将当前make中声明的变量和值传给sub makeunexport: 表示不要将当前make中声明的变量传给sub make。LC 是 locale的意思,它是根据计算机用户所使用的语言,所在国或地区及当地文化习俗所定义的一个runtime语言环境。比如中国大陆通常讲“文件系统”,而台湾或香港地区则使用“档案系统”,因此就需要有一套为各地区服务的本地化系统。locale根据使用习惯分为了12大类:1.LC_CTYPE 表示语言符号及其分类,控制字符处理方式,包括字符编码,字符.

2020-06-03 11:09:17 991

原创 System.loadLibrary动态库加载

System.loadLibrary先查找APK中的so目录,再查找系统目录/system/lib(64),/vendor/lib(64), Android中动态库的加载与Linux本质上是一样的,最终都是调用了dlopen,dlerror,dlsym, dlclose方法,通过动态库句柄和所需调用的函数名来调用动态库中对应的函数。...

2020-05-28 15:58:33 1204

原创 libcardboard_jni.so missing and no known rule to make it

需要编译一下sdk。编译方式如下:

2020-05-27 19:48:03 483 1

原创 PS8622 DP转LVDS

DP转LVDS转换器:1. 1 Lane DP输入,1 Lane LVDS输出PS8622是一款DP转LVDS的器件。DP信号或eDP信号来自于带GPU的PC机,转换后的LVDS输入到一个显示面板去显示。2.功能:1. 使能LVDS显示面板,源视频设备有着DP或eDP接口2.支持视频格式色深18位 高达1680x1050@60Hz或色深24位 高达1440x900@60fps3. 采用普瑞的CystalFree技术,无需额外的晶体或时序参考4. 单一3.3V或2.5V供电,功耗低,普通

2020-05-15 14:27:24 2194

原创 TI快充芯片-BQ25890

它是一个针对单个锂电池和聚合物锂电池的,5A开关模式电池充电芯片。它集成输入反转模块FET(RBFET-Q1),高端开关FET(HSFET-Q2),低端开关FET(LSFET-Q3)和电池FET(BATFET-Q4)。在高端门驱集成升压二极管。功能描述:1. 设备POR(Power-On-Reset)VBUS和BAT给内部偏置电路供电,当VBUS大于Vvbus_uvloz或BAT大于Vb...

2020-04-30 10:19:06 8351 1

原创 Android显示系统

正在上传…重新上传取消

2020-04-28 10:23:31 216

原创 散列表(哈希表)

数组特点是查找容易,插入删除困难;链表特点是查找困难,插入删除容易。而散列表可以取数组与链表的优点。散列表就是把key通过一个固定算法函数(哈希函数)转换成一个整型数字,在将该数字对数组长度取余,取余的结果就当做数组下标,后将value存储在以该取余结果为下标的数组中。公式: 存储位置 = f(关键字)实例:#include "stdafx.h"#include <stdlib...

2020-04-16 15:53:59 330

原创 双向循环链表

双向链表节点有两个指针域,一个前驱指针,一个指向后继指针。且链表中第一个节点前驱节点为NULL,最后一个节点后继节点为NULL// myLink.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>typedef struct bidir_link_list { struct bidir_lin...

2020-04-16 11:28:47 299

原创 notify通知链机制

notifier是一种异步通信机制,比如模块A对事件E感兴趣,但事件E是由模块B产生的,则A可通过通知链机制从B获取事件E。notifier结构体在文件kernel\include\linux\notifier.h中声明:1. notifier回调函数声明, action即为发生的事件,data为携带的结构数据信息:2.notifier通知链表3.优先级,数字越大优先级越高,表示任务执行...

2020-04-15 13:11:01 702

原创 devm_regmap_init_i2c

内核在3.1版本加入了regmap模块,主要是给I2C,SPI总线的读写提供一个统一的接口,后来陆续添加了以下接口的支持:1. 支持SPMI,MMIO2.Spinlock和客制化lock机制3.Cache支持4.字节序转换5.寄存器范围检查6.IRQ支持7.只读和只写寄存器8.Precious寄存器和volatile寄存器9.寄存器页两个最重要的结构体struct regm...

2020-04-14 17:16:12 5586

原创 devm_kzalloc

devm_kzmalloc()是资源管理版本的kzalloc(),它与设备关联,来进行内存的申请与释放。也就是设备从系统中剥离,设备驱动被卸载后,使用该函数申请的内存会自动释放。void * devm_kzalloc(struct device *dev, size_t size, gfp_t gfp);参数:dev --> 需要申请内存的设备size --> 申请的内存大...

2020-04-14 15:58:07 707

原创 Android Kernel 等待队列waitqueue --NFC PN54x的处理过程

等待队列中存放的是被阻塞的进程。而唤醒进程,就是从等待队列中把进程放到就绪列表中去等待运行。1.声明等待队列:2.probe中初始化等待队列:3.等待队列中去睡眠,其中又分为有条件睡眠和无条件睡眠,一般使用有条件睡眠:有条件休眠函数:wait_event_interruptible(queue, condition)当condition为true(BOOL值)时,立即返回;否则让进程进...

2020-04-13 15:22:53 348

原创 dtsi属性

各符号含义如下:/ --> 表示根节点@ --> 指定设备地址& --> 引用节点: --> 冒号前的是节点别名label,一般是以&label方式使用。如上面vdd_gpu所示。, --> 都好可用于属性名称中,如上面compatible属性可知,以逗号分隔开。# --> 表示reg属性的格式,比如address-cells...

2020-04-08 19:15:10 1549

原创 Flash烧录工具SuperPro Model610P 操作记录

a. 1个电源adapter供电,1根USB数据线插入到PC的USB端口1个烧录座子,以Flash WINBOND W25Q32FW芯片为例,实物安放如下:b.操作软件:1.快捷键图标:2.界面,主要操作步骤:文件打开,选择器件以及Auto:a.打开文件:b.器件选择,可选多个厂商芯片配置。...

2020-03-26 10:11:53 2960

原创 RK3399PRO的字符spi设备驱动

Linux 4.4内核SPI驱动特性:①默认采用摩托罗拉SPI协议②支持8位和16位③软件可编程时钟频率和传输速率高达50MHz④支持SPI 4中传输模式的配置⑤每个SPI控制器支持一个到两个片选1. 首先申请设备号(动态):int alloc_chrdev_region(dev_t *dev,unsigned baseminor,unsigned count,const cha...

2020-03-16 11:55:02 973

原创 RK3399Pro ueventd.rockchip.rc

1. 该文件位于 rk3399pro\device\rockchip\common\ueventd.rockchip.rc, rc只是一个资源文件,类似于xml,以gps为例:/dev/ttyS1 0660 gps gps分别对应设备节点,设备权限,设备所有者,设备所有者所在组。2. 在它被解析使用前,还有一个init.rc文件会用到,位于rk3399pro\sys...

2020-02-28 11:48:07 1050

原创 RK3399Pro DTSI PIN-CTRL

1. 类似IOMUX的如下配置含义: i2c3_gpio: i2c3_gpio { rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_none>, ...

2020-02-13 11:20:05 1550

原创 Windows orb-slam2 单目测试工程

VS2015 + Opencv2.4.13.6-vc14 + cmake 3.8.0+logi HD720P+ Intel Core [email protected] 3.19GHz RAM 8G 64Bit1.有现成依赖库的,打开翻墙软件下载快.a. opencv:下载OpenCV库,直接解压安装在D:\ORB-SLAM2\Thirdparty目录下。b.eigen库: 下载地址,同样解...

2019-12-26 21:19:10 402

原创 STM32F4 CubeMX Flash读写代码片段

//.h#include <stdint.h>#include "stm32f4xx.h"#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) /* Base @ of Sector 0, 16 Kbyte */#define ADDR_FLASH_SECTOR_1 ((uint32_t)0x08004000...

2019-12-26 18:48:39 1257 1

原创 STM32F4xx添加浮点运算解算IMU(CubeMX + μVision 5.14)

1.在IMU四元数解算文件内添加 #include <arm_math.h>。2.支持更为快速的sin/cos三角函数运算,需添加以下三个文件:①arm_cos_f32.c,arm_sin_f32.c位于:Drivers\CMSIS\DSP\Source\FastMathFunctions\②arm_cortexM4lf_math.lib位于:Dr...

2019-12-20 15:18:19 1617

原创 tensorflow pip3国内源配置

1.mkdir ~/.pip2.vim ~/.pip/pip.conf[global]timeout=6000index-url=https://pypi.douban.com/simpletrusted-host=pypi.douban.com3.pip3 install tensorflow

2019-12-06 11:54:25 401

原创 wifi adb log打印笔记留存

1. 开发板WiFi与带无线网卡的PC机(笔记本)连上同一个局域网2.开发板U口插上带无线网卡的PC(笔记本)的U口,使用adb启动并设置tcpip端口3.拔掉USB线,在PC(笔记本)端通过WIFI使用adb连接。偶尔第一次是没法连上的,可使用adb kill-server杀一下,再连即可。4.转到使用Powershell tee来打印logcatadb l...

2019-11-18 14:07:23 310

原创 结构体与链表进行任意长度数字相加Test

#include "stdafx.h"#include <iostream>#include <string>#include <cstdlib>#include <string.h>#include <stdlib.h>#include <conio.h>using namespace std;//ad...

2019-11-05 18:12:16 197

原创 STM32CubeMX V5.4.0 在 IAR EW V7.70中运行报错

报错如下:Error[Pe018]: expected a ")" D:\STM32\ARPro\Drivers\CMSIS\Include\mpu_armv7.h 246 Error[Pe020]: identifier "len" is undefined D:\STM32\ARPro\Drivers\CMSIS\Include\mpu_armv7.h 249 Error[Pe020...

2019-10-30 11:57:30 1773

Andorid电池曲线测试apk 电池曲线测试apk

Andorid电池曲线测试apk 电池曲线测试apk

2022-07-23

glfw-3.3.2.bin.WIN64.zip

These packages contain the GLFW header files, documentation and release mode static libraries, DLLs and import libraries for Visual C++ 2010-2019, MinGW-w64 and plain MinGW.

2020-04-21

Totalcmd-ax64.rar

Totalcmd 代码管理工具 64位

2020-04-09

monitorinfoview.rar

EDID读取工具 读取厂商ID PID 分辨率 串号等

2020-04-09

套件php 集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader

简单的一键部署PHP调试环境,适合初学者。集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader

2020-03-12

SPI-USB-myImu-STM32F103TB.rar

STM32F103TB ICM20948代码,已实现UART串口Log,SPI数据抓取,USB传到上位机。

2020-03-04

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

TA关注的人

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