自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 I2Cdetect工具梳理

i2cdetect 探究

2022-11-09 22:26:11 1637 1

原创 DDR基础概念理解

DDR学习第一趴本部分主要做基础概念介绍,争取达到阅读完此小节,可以对DDR的相关概念有基本认知1. 常规名词介绍流程概念理解名词说明BLBurst length,突发长度,突发是指同一行中相邻的存储单元连续进行数据传输的方式,连续传输所设计到存储单元(列)的数量就是突发长度(SDRAM),在DDR SDRAM中指连续传输的周期数BankSDRAM中的基本单元,一个bank代表一个行列组成的基本单元,一般都是8bank结构RASRow Address St

2022-05-11 22:33:06 1852 1

原创 QTTabBar 安装记录(Win10 enable .NET)

1. QTTabBar 下载安装过程;2. WIN 10 enbale .NET Framework 3.5 错误记录

2022-05-02 17:49:47 2449 1

原创 关于Kswapd的理解(一)

关于Kswapd的理解(一)之前跟踪了MemAvailable的计算方式,其中watermark的计算花了很多精力,在学习的过程中看到一些资料中说watermark是给swapd使用的,于是乎,研究一下看看咯本部分主要记录两个方面:对于kswapd这个东西,从初学者(我)的角度出发会考虑哪些内容?跟踪kswapd 初始化结构部分;1. KSwapd机制上图是还没有跟踪kswapd code的时候,对自己提出的一些疑问和自身的理解,主要是如下内容:kswapd 机制用来做什么:内存不足时

2022-03-29 22:25:07 1610 2

转载 gerrit权限控制

Access controls in Gerrit are group based. Every user account is a member of one or more groups, and access and privileges are granted to t...

2022-03-18 10:11:26 4799

原创 关于Meminfo中MemAvailable 理解

MemInfo中MemAvailable计算过程,包含watermark、totalreserve_mem等计算过程

2022-03-08 21:40:01 5002

原创 Linux 内存管理之 SLUB分配器(6):slub debug 实例测试

Linux 内存管理之 SLUB分配器(6):slub debug 实例测试1. Object layoutslub object layout 之前已经有专门的一小节进行介绍了,这里直接将其结果拿来:2. 配置开关默认情况下上述的layout中debug信息是没有打开的,毕竟会增加太多的内容,增加内存的压力,所以需要打开如下部分内容:Config:CONFIG_SLUB=yCONFIG_SLUB_DEBUG=yCONFIG_SLUB_DEBUG_ON=yCONFIG_SLUB_C

2022-01-10 21:49:05 1638

原创 Linux 内存管理之 SLUB分配器(5):slub初始化过程

Linux 内存管理之 SLUB分配器(5):slub初始化过程本小节整理记录下kmem_cache结构的初始化过程,其实呢,在前边4个小节整理完成后,本部分也就呼之欲出了本部分主要解决如下问题:在slub分配逻辑中可以看到,object的alloc实际是在kmem_cache和kmem_cache_node 结构中分配的,那么必然存在一个蛋与鸡的故事,如何处理的?在初始化的过程中,有哪些关键接口,以及其作用?首先将本部分的整体调用结构图示出来:1. 构造静态kmem_cache &am

2021-12-27 21:33:12 1053

原创 Linux 内存管理之 SLUB分配器 (4):slub page大小计算方法

page order的计算方法,即在申请kmem_cache的时候,每个slab申请几个page合适呢?order_objects 的计算和API说明

2021-12-25 19:15:08 934

原创 Linux 内存管理之 SLUB分配器(3):Object分配逻辑

SLUB Object分配逻辑整理

2021-12-21 23:45:42 867

原创 Linux 内存管理之 SLUB分配器(2) :kmalloc_cache 结构

1. slub2. kmalloc_caches、kmem_cache数据结构3. 分配逻辑

2021-12-20 22:29:29 1665

原创 Linux 内存管理之 SLUB分配器(1): Object-layout

slub分配器 object layout(debug)

2021-12-18 17:49:15 1294

原创 Slob分配器的数据结构和分配逻辑

slob分配器:1. 数据链表结构构造;2. 分配与释放的逻辑分析;

2021-12-11 13:14:53 699

原创 Audio 加载hal (loadHwModule)

Audio 加载hal (loadHwModule)近期在整理audio问题过程中不可避免的会涉及到一些流程处理,此前一些流程细节没有详细跟踪过,趁着这次机会,将看到的一些内容整理出来,方便后续查阅:1. audio.primary.xx.so加载audio的Hal层有蛮多内容,其中主要是:audio.primary.[ro.hardware].so 这里记录下该库被加载的流程;1.1 load module调用AudioFlinger::loadHwModule(const char *name

2021-09-14 23:17:58 1409

原创 记录:添加trace_event埋点并调用

记录:添加trace_event埋点并调用1. 环境基于如下环境添加测试:Android Pkernel 4.9.118ftrace 功能打开2. 添加trace_test_entrykernel中所有支持的trace接口,都定义在如下目录:kernel-4.9/include/trace/events所以我们只需要参照其中实现方法,将所需要的内容添加进去即可:#undef TRACE_SYSTEM#define TRACE_SYSTEM my_test //确保定义为我们添

2021-08-31 22:00:04 1050

原创 simpleperf 使用记录

simperf 使用记录近期处理CPU loading过高问题,使用simpleperf生成火焰图的方式进行分析,相较于以前查看record的方式直观了不少,方法记录如下:1. simpleperf 命令查看通用开源工具一般都可以通过 -h的方式查看其命令支持情况:console:/ # simpleperf -hUsage: simpleperf [common options] subcommand [args_for_subcommand]common options:-h/–help

2021-07-01 19:54:26 2754 2

原创 audio 相关概念梳理记录

sample rate:采样率 即一秒采集的sample数(当前理解为点数)bit:位深 即一个sample(点)中的信息,所谓高保真一般是位深比较高channel:声道数 常见为左右声道和5.1声道frame:audio中常用来描述数据的基本单位,frame = bits * channelperiod size:alsa中引入的概念,dma每传输完成一个块触发一个中断,即period size,或者理解为buffer大小period count:alsa中概念,buffer countla.

2021-05-24 23:05:03 455

原创 blend后颜色异常问题(glBlendFunc & glBlendFuncSeparate)

blend后颜色异常问题(glBlendFunc & glBlendFuncSeparate)1. 问题描述应用中显示投屏小窗部分的颜色值与预期不一致,预期为纯白色 [0xFF],而实际显示偏黑 [0xDE]相同渲染合成逻辑在X86平台测试显示为正常色彩 [0xFF]各个layer叠加顺序如下(简化层级可以说明问题即可):应用使用GPU渲染各个对象后进行blending合成输出到Overlay 01:mediabottom投屏画面输出到Overlay 02;PS:Over

2021-04-24 10:22:08 1007

原创 LVDS 屏 format

LVDS 屏 format1. LVDSLVDS (low voltage differential signal),低压差分信号,使用低幅值的信号差分走线传输数据:百兆甚至千兆穿行数据的传输速率电压幅值较低,噪声低,功耗小嵌入式领域中屏幕接口一般使用LVDS(另外早期的还有TTL、手机行业较多的mipi)根据数据传输量,所以不同分辨率的屏幕需要设置的clk大小不同,一般1920720的话基本在45M2 左右;2. 排列方式这里记录RGB888信号的两种标准传输格式:24.0 &

2021-04-14 21:12:43 1667

原创 git操作记录贴

git操作记录贴整理log信息要求在版本更新时获取到本次的更新记录:包含commit ID、root cause & solution、changeID、file list:上述所有信息都会添加在commit信息中,即可以通过git log信息获取到详细信息,或者gerrit上查看每一笔change不过既然提出了需求,那就将上述信息在更新推送时保存到文件中吧:git log --pretty=format:“commit %H” %n “%b” commitID1 commitID2

2021-04-12 21:05:40 149

原创 EGLImage使用记录

EGLImage使用记录1. 需求场景项目需要实现如下path:获取camera数据;GPU对camera数据做算法处理;处理完成后丢给surface显示;上述过程实现后存在撕裂现象,tearing即显示的buffer被复写导致出现画面撕裂;2. 实验分析camera getframe数据保存到文件确认数据完整性,此部分数据无异常;APP中将camera获取数据通过memcpy方式提供给到GPU输入,则此部分操作不同buffer,不存在被复写可能性GPU绘制操作完成后使用glFin

2021-03-01 21:40:55 3367

原创 Linux DRM 理解

本文从如下几个部分介绍1. DRM 概念介绍2. 对比HW结构分析3. code分析1. DRM 概念介绍DRM 是Direct Render Manager的缩写:Linux 显示子系统结构框架向上提供标准API给到应用使用管理GPU和Display模块相较于原来的framebuffer结构,DRM将更多的硬件模块抽象并管理起来,所以更加的灵活方便;包含如下模块:GEM(Graphics Execution Manager) 用于管理显示buffer的申请和释放DUMB:只

2021-02-20 16:04:46 3686 2

原创 OpenGL 概念整理

OpenGL 概念整理1. OpenGL1.1 术语说明概念描述版本OpenGLOpen Graphics Library Khronos 定义GPU功能实现的SPEC,标准API4.6OpenGL ESEmbedded System 为嵌入式系统定义的相关补充接口3.2EGL用于GPU渲染与机器原生窗口之间通信的API,独立于OpenGL ES各个版本VulkanKhronos组织新定义的接口,相比于OpenGL更加高效1.21.2 Op

2021-02-19 12:55:25 1095

原创 双系统安装:Deepin 尝鲜

双系统安装:Deepin 尝鲜1. 制作系统盘官网下载系统https://www.deepin.org/zh/download/使用迅雷下载,基本上在5分钟以内完成制卡将刚才下载的系统制作启动盘,这里采用deepin官方提供的制卡工具:建议使用4G以上的U盘作为启动盘(iso包有2.5G)2. 系统分割分区使用win10自带的磁盘管理即可:主机这里有两个SSD和一个机械硬盘,这里单独给Linux系统分配一个1T的SSD(可以看到磁盘1在win10系统中是未分配状态),用

2021-02-10 17:27:08 450

原创 Typora 图床配置

Typera 图床配置1. 起因近期整理资料发现平时所记录学习笔记等内容较为杂乱:typera本地图片上传需要手动导入一遍费时费力;印象笔记导入本地typera markdown笔记后在云端查看也无图片数据;则兴起了将图片保存在网络云盘上的想法,而当前typera中也添加了此部分支持,故添加之;2. typera配置配置路径:菜单 - 偏好设置 - 图像可以看到默认支持PicGo图床工具:https://support.typora.io/Upload-Image/#picgoap

2021-01-30 09:48:16 356 2

原创 GPU结构设计初探

GPUGPU 按照理解为graphics process unit,即与CPU / DPU / DSP等硬件单元模块相同为SOC中的组成部分;关于GPU 正在雪休理解的内容:GPU 的核心功能是做图形渲染和合成,它的典型特性是对于运算特别在行,则这里有一个疑问,其硬件结构是怎样的?如何做到善于运算?GPU这个模块单元对外的接口是什么?这里想了解的是硬件接口?GPU作为一个比较通用的硬件模块,存在标准的spec规定其如何操作,以及如何实现,即其操作步骤是怎样的?后续补充GPU pipelin

2021-01-25 22:36:53 2709

原创 显示低帧率排查思路记录

上述为思路简单整理总结1. streamline 使用streamline是arm官方提供GPU性能监测工具,集成在DS-5中:1. DS-5使用需要license;2. 路径:Program Files/DS-5 V5.29.2/sw/streamline3. 可以通过ds-5打开:window–>show view --> streamline1.1 gatord 编译安装下载DS-5 之后再上述安装目录中gator文件夹会有一个markdown形式的readme,其中介绍很.

2021-01-21 22:18:53 441

原创 ubuntu 20.04 编译yocto 错误集锦

4. ubuntu 20.04 编译yocto4.1 错误1:m4-native failed| 92 | #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."| | ^~~~~| make[3]: *** [Makefil

2021-01-20 23:14:54 11628 12

原创 yocto 打包外部应用到 system.img

yocto 打包外部应用到 system.img项目中难免需要将第三方编译完成的库或者应用打包到系统中使用,这里记录yocto中以shell 命令追加的方法:添加bbclass文件在项目源码中找到打包system.img的bbclass(类似于create-system-image,bbclass),在同级目录中添加add_test.bbclassvim add_test.class 添加类似于如下内容:add_test () {mkdir ${IMAGE_ROOTFS}/usr/bin/tes

2021-01-19 07:46:55 819

原创 移植opengl应用到yocto sdk

移植应用到yocto sdk1. yocto sdk 安装sdk 包解压tar -xf sdk.tarsdk 安装cd sdk./poky-glibc-x86_64-xxx-full-aarch64-toolchain-2.5.sh 具体如下图:安装完成后进行环境变量配置:cd xxx/xxx/sdk/sumo/lssource environment-setup-aarch64-poky-linuxaarch64-poky-linux-gcc -v 配置完成后

2021-01-16 22:44:16 389

原创 ubuntu系统工具记录

持续更新Ubuntu 20.04 双系统记录系统安装常规软件安装typora软件源配置安装nvida显卡Ubuntu 20.04 双系统记录由于2020年攒了一台主机,笔记本在使用频次上急剧降低,又因为平时需要在ubuntu环境下做一些实验程序,故搭建双系统;系统安装网上一堆教程,这里不再废话:压缩分区制作U盘启动ubuntu系统分区常规软件安装typora常用的markdown编辑工具,属于常用类软件:wget -qO - https://typora.io/linux/pub

2021-01-07 22:43:43 97

原创 AndroidP 开机自启动程序

AndroidP 开机自启动程序1. codemain.c#include <stdio.h>int main() { int i = 10; while (i--) printf("test_for_customer, this bin is built for running on boot\n"); return 0;}rc文件service just_test /system/bin/test_for_customer

2020-12-21 22:47:20 283 1

原创 QtCreator导入yocto sdk记录

QT安装以及导入vendor sdk1. QT-Creator安装本次前后安装了几个版本验证问题,方法具有一致性,但是不同版本对于系统依赖可能不同:主机环境:Ubuntu 14.04QT creator(QT版本):5.9.2 / 5.12.0 / 5.14.01.1 版本5.9.2 下载安装过程下载安装包官网路径:http://download.qt.io/official_releases/qt/执行命令安装cd ~/Download/chmod a+x qt-ope

2020-12-12 11:14:58 1059 2

原创 Linux 文件系统启动记录

Linux 文件系统启动记录1. 两个脚本1.1 inittab该脚本路径:/etc/inittab[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SctSKgOJ-1607260724411)(Linux%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E8%AE%B0%E5%BD%95.assets/image-20201206173119963.png)]基本inittab就是上述这张图这个形式,

2020-12-06 21:28:04 334

原创 外设适配-TI954 记录

1. 外设适配-TI954 记录1.1 问题描述项目需要支持1080P@60fps摄像头输入,针对于这种分辨率的摄像头一般都采用FPD link方式传输,这里采用TI 953、954作为摄像头输入的媒介,整体path如下:Camera(IMX290) -> ISP(5700) -> TI953 -> TI954 -> SOC项目反馈的状态是:可以在TI954测量到标准mipi波形输出,但是SOC无图像显示;1.2 检查思路基本参照上图逐步check,这个过程中还是遇到了一

2020-11-15 14:39:23 1693 2

原创 ubuntu 14.04 编译yocto源码--环境配置篇

ubuntu 14.04 编译yocto源码1. 环境安装ubuntu 14.04yocto依赖工具链sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping源码已经就

2020-10-30 21:37:02 791 1

原创 gdb 7.X 下载编译(aarch64)

gdb 7.X 下载编译(aarch64)文章目录gdb 7.X 下载编译(aarch64)1. gdb源码下载2. 交叉编译工具下载2.1 搜索支持的工具版本:2.2 下载安装:2.3 安装完成后查看gcc版本确认是否安装成功3 编译3.1 aarch64 结构的gdb(7.12)3.2 aarch64 结构的gdb(7.9)3.3 编译在x86下运行的gdb程序(解析aarch64体系coredump)1. gdb源码下载ubuntu系统中有自带的gdb软件,用于跟踪x86体系的程序:当然我们

2020-10-25 13:31:59 5227 1

原创 ubuntu14.04 安装adb 调试设备

安装adb 设备sudo apt-get install adb连接设备使用lsusb 首先确认usb驱动是否有识别到设备;将target 设备配置为android deviceudev配置需要在/etc/udev/rule.d/目录下的文件中添加adb server配置需要在~/.android/ 目录创建配置文件adb_usb.ini,在其中填入device的vendorIDsudo touch ~/.android/adb_usb.inisudo vim ~/.and

2020-10-24 17:41:28 698

原创 资源冲突导致启动黑屏问题

问题记录:资源冲突导致启动黑屏问题1. 问题发生终端客户反馈:上电后中控没有启动,仍为黑屏;进一步获取信息如下:836版本软件6台机器进行自动化开关机实验测试,其中3台出现此问题;客户同样方式煲机9台(Debug版本),一晚上未出现问题;客户将其中6台机替换为836版本软件,测试5小时,4台出现此现象;HW排查异常机器,晶振没有工作,MCU有正常给AP供电;2. 问题分析2.1 排除board 影响由于HW排查出现晶振没有工作的情况,担心board存在问题,立即到现场进行处理,首先

2020-10-15 22:27:57 376

原创 编译问题处理:undefined symbol: OPENSSL_init_crypto

编译问题处理:undefined symbol: OPENSSL_init_crypto结论:Python 2.7 编译_hashlib.so 提示undefined symbol: OPENSSL_init_crypto问题;原因为openssl版本不匹配,所需要的symbol在该版本库中没有实现;针对于本次问题,将openssl version 配置为1.0.1f并将其关联库删除后重新编译,编译通过(PS:这里需要注意编译时实际使用的lib库的路径,避免出现版本安装为1.0.1f后相关库仍使用

2020-10-13 21:54:31 6326

WALT学习.xmind

WALT 源码跟踪过程中xmind记录,方便后续查询 WALT:Windows-Assist Load Tracing的缩写: - 从字面意思来看,是以window作为辅助项来跟踪CPU LOAD; - 实质上是一种计算方法,用数据来表现CPU当前的loading情况,用于后续任务调度、迁移、负载均衡等功能;

2020-07-08

bootchart.jar

android 或者Linux 统计开机过程中各个进程耗费时间的工具 此jar包为对应PC端将锁抓取的bootchart.tgz解析为可视化图片的工具 使用方法为 java -jar bootchart.jar bootchart.tgz

2020-06-13

空空如也

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

TA关注的人

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