- 博客(119)
- 资源 (16)
- 收藏
- 关注
原创 buildroot添加HOST端工具
以zlog为例,假设我们需要在host添加编译一个zlog库。首先,在package/zlog/下面新增一个Config.in.host文件,对应命名都比Config.in多一个host字段:diff --git a/package/zlog/Config.in.host b/package/zlog/Config.in.hostnew file mode 100644index 00000000..0191c92f--- /dev/null+++ b/package/zlog/Config
2022-05-13 16:25:27 874
原创 error processing package libapache2-mod-php7.2
安装libpciaccess报错:Setting up php7.2-cli (7.2.24-0ubuntu0.18.04.11) ...dpkg: error processing package php7.2-cli (--configure): installed php7.2-cli package post-installation script subprocess returned error exit status 10No apport report written becaus
2022-05-05 15:05:58 815
原创 buildroot添加本地自定义代码编译步骤
configs/xxx_defconfig添加定义## XXX package#+BR2_PACKAGE_XXX=ypackage/Config.in添加配置menu "XXX package"source "package/xxx/Config.in"新建package/es-dma/添加Config.in和xxx.mkConfig.in:config BR2_PACKAGE_XXXbool "xxx"help xxx help.xxx.mk:#######
2022-03-18 14:34:04 1569
原创 i2cTool交叉编译
https://i2c.wiki.kernel.org/index.php/I2C_ToolsI2C -tools包包含一组用于Linux的I2C工具:总线探测工具、芯片转储器、寄存器级SMBus访问助手、EEPROM解码脚本、EEPROM编程工具和用于SMBus访问的python模块。只要内核中包含I2C支持,就支持所有版本的Linux。这些工具曾经是航天器传感器软件包的一部分,但后来被拆分为一个单独的软件包。下载源码, 解压https://mirrors.edge.kernel.org/pub
2022-03-10 10:26:47 1344
原创 谁是卧底? 科普影子寄存器
寄存器是软件和硬件真正交互的接口. 影子寄存器是常常听到, 但很多人没有正常了解.简单科普一下.大多数寄存器是保存静态的数据, 比如某个屏幕的硬件分辨率,固定是1920x1080的.我们给摄像头的长宽寄存器分别设置为1920和1080.那么这个摄像头输出的图像大小就这么定好了.But, 有时候, 有的数据参数需要在运行时动态地更新, 比如用户用鼠标把窗口缩小成360P了, 这时候需要设置新的分辨率. 但是, 这些数据不能在当前正处理的帧上更新, 只能在某一帧处理结束并且新的一帧尚未开始这样的节点, 从采
2022-01-28 11:53:07 2094 1
原创 一文简述BSD,System V ,POSIX,SUS版本历史, 以及glibc移植的特性测试宏
BSD,System V ,POSIX,SUS 功能测试宏
2022-01-05 16:57:39 3512
原创 warning: implicit declaration of function ‘usleep’
implicit declaration of function ‘usleep’
2022-01-05 11:27:22 2724
原创 warning: implicit declaration of function ‘open_memstream’
implicit declaration of function ‘open_memstream’
2022-01-05 11:09:25 1304 2
原创 Gstreamer 内存分配协商机制
在两个衬垫的caps协商完成之后,元件之间需要确认如何分配buffer。本文梳理GStremer内存协商机制,比如当某元件不能自己分配内存时,如何使用其他元件的分配器。
2021-12-23 16:03:13 1625 1
原创 Gstreamer 内存管理
内存分配内存的分配和管理是多媒体中非常重要的课题。高清晰度视频使用许多兆字节来存储一个图像帧。尽可能重用内存,而不是不断地分配和释放内存,这一点很重要。多媒体系统通常使用特殊用途的芯片,如dsp或gpu来执行繁重的工作(尤其是视频)。这些特殊用途的芯片通常对它们操作的内存,和如何访问内存都有严格的要求。本文讨论GStreamer插件可用的内存管理特性。我们将首先讨论管理对内存访问的底层对象GstMemory,然后继续讨论它的一个主要使用者GstBuffer,它用于在插件之间和应用程序之间交换数据。我
2021-12-14 22:19:39 3890
原创 linux内存相关命令汇总
进程调度内存管理查看内存剩余free:e0005055@ibudev20:~$ free total used free shared buff/cache availableMem: 32791720 19499516 935896 2552 12356308 12824920Swap: 2097148 2048 2095100其中,
2021-11-23 19:40:11 5892 1
原创 meson 概述
meson是一个编译系统,类似于 CMake 或者GNU Autotools. meson只是负责配置构建,后台默认是用ninja来编译的(当然也支持其它后台)。ninja是一个小型的致力于编译速度优化的编译系统,相当于make的替代物。所以meson+ninja相当于Cmake+make。meson设计目标是好用,同时保持高性能。它采用了一种自定义语言,号称简单、清晰和简洁性。很多灵感来自于Python编程语言,具有较好的易读性。meson的另一个设计目标,是为现代编程工具提供辅助的支持,包括单元测试
2021-11-21 23:37:45 13861 4
原创 gstreamer编译错误处理记录
1. server certificate verification failede0005055@ibudev20:~/wk/gst_scr$ git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.gitCloning into 'gst-plugins-base'...fatal: unable to access 'https://gitlab.freedesktop.org/gstreamer/gst-plugi
2021-10-30 11:35:54 1456 1
原创 automake 交叉编译模板和常用配置说明
一般地,交叉编译常用的配置有以下:export CROSS_COMPILE=$AERO_TOOL_DIR export CC=${CROSS_COMPILE}gcc export CXX=${CROSS_COMPILE}g++ export LD=${CROSS_COMPILE}ld export PREFIX=/usr/local/ export LD_LIBRARY_PATH=$PREFIX/lib export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgco
2021-10-09 15:15:17 886
原创 gstreamer debug tracer使用概览
gstreamr traces提供了延时、内存泄露等配置,可以直接通过环境变量来控制相关信息输出。1. 延时统计延时主要计算元件中,从src到sink的时间。使用 GST_TRACERS="latency(flags=element)"来使能log:GST_TRACERS="latency(flags=element)" GST_DEBUG=GST_TRACER:7 ./filter_test0:00:04.662245924 14152 0x5555750b4120 TRACE
2021-09-26 14:45:49 2152 4
原创 export和source关于shell环境变量的设定
如果我们在终端定义一个变量,这个变量并不会在环境中保留。$ YGC_SON="i'm son"$ env |grep SON如我我们想要保留这个变量,需要使用export:$ export YGC_SON="i'm son"$ env |grep SONYGC_SON=i'm sonexport父进程定义的变量只在父进程有效,在子进程中不能使用。我们分别在父子shell中设定父子变量,看是否能相互应引用:父shell:# cat dad.shYGC_DAD="I'M DAD'"
2021-09-23 18:21:38 807
原创 gstreamer笔记:capabilities negociation 规格协商
caps协商主要通过问询和事件机制来实现.定义的衬垫都由自己可以处理的数据类型,规定了当前元素的功能和支持的参数,比如常见的音视频格式、比特率等。在元素连接的过程中,相邻的元素需要协商彼此可以衔接的数据格式,以便将对应的数据传给对方。最常见的协商是当前的src pad通过GST_QUERY_CAPS询问下游元素sink pad支持的格式,从中选择一个共同支持的格式。另外,下游也可以在规格需要更改的时候,发送重新配置的事件GST_EVENT_RECONFIGURE,之后会重新走一遍协商流程。无论怎样,
2021-09-01 11:26:00 1335
原创 vim环境配置
新入公司的电脑卡到爆,编译服务器居然是8核的。想用vim,没有安装权限,也不能联网。无奈只能自己在家里的虚拟机鼓捣好了,再上传到编译服务器。顺便记录一下过程。1. 安装依赖应用1.1 cscope1.2 ctags1.3 插件管理2. 使用方法2.1 cscope2.1.1 创建数据库cscope -Rbqk-R:为当前目录下所有子目录创建数据库-b:生成数据库之后退出,不启动自带界面-q:生成cscope.in.out和cscope.po.out,加快搜索速度-k:跳过/usr
2021-08-27 10:52:27 360
原创 从GTK、GLib到GObject与GType历史梳理
1. KDE与GNOME1.1 X Window System微软Windows取得市场地位后,unix业界也急于开发类似的图形化操作系统。麻省理工学院(MIT)在1984年与当时的DEC公司合作,致力于在UNIX系统上开发一个分散式的视窗环境X Window。作为图形环境与UNIX系统内核沟通的中间桥梁,任何厂商都可以在X Window基础上开发出不同的GUI图形环境。X Window使用X-Server作为Ui与系统交互的桥梁,UI不直接与系统交互,因此拥有很强的设计灵活性和可移植性,但因此决定了
2021-08-12 11:33:57 1559 1
原创 va_list可变参数和判断
#include <stdarg.h>#define VNAME(name) (#name)#define Assert(name) do { \ if(NULL == name){ \ g_printerr("#error: %s is null.\n",VNAME(name)); \ return -1; \ } \}while(0) int CheckPointer(char *arg,...) { va_l
2021-08-11 16:14:40 434
原创 git 笔记
git 笔记远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --push[name][newUrl]拉取远程仓库:$ git pull [remoteName] [localBran
2021-08-11 11:28:36 4026 2
原创 gstreamer信号、属性、消息、事件、问询、状态的详细梳理
1. 信号的作用信号时是属于元件的,用于元件和外部(应用或者其它元件)之间,基于预定事件的交互,比如元件创建了新的cap等。元件内部定义了本元件相关的信号。如果外部需要关心和了解这一信号,可以连接该信号和处理函数。这样,元件内部发生信号时,该函数将被调用执行。2. 元件创建信号...
2021-08-10 15:36:05 3264
原创 Linux打印函数调用栈
应用程序打印调用栈定义dump_stack函数如下:#include <execinfo.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> #define STR_SIZE 100 #define STACK_MUN 100 void dump_stack(){ int j, strack_num; void *strack_buffer[STACK_
2021-07-29 10:16:09 604
原创 plugin插件加载和初始化流程详解
在插件学习中,总想要了解插件究竟是在哪里加载和初始化的,不然没头没脑的总不放心。结合源代码追溯流程,记录如下:插件函数与声明gstreamer的插件是如何被加载和初始化的呢?在所有插件中,有一个plugin_init函数,这是插件运行的起点。static gbooleanplugin_init (GstPlugin * plugin){ /* FIXME Remember to set the rank if it's an element that is meant to be
2021-07-28 17:13:56 1984
原创 gst 笔记1:信号、消息、事件、状态
基本操作示例gst-launch-1.0 filesrc location="/home/e0005055/Videos/test1.mp4" ! decodebin ! videoconvert ! autovideosink代码:#include <gst/gst.h>static gbooleanbus_call (GstBus *bus, GstMessage *msg, gpointer data){ GMainLoop *lo
2021-07-27 18:27:57 968
原创 2021 gstreamer插件编写指南中英对照 (三) 编写一个插件
Writing a Plugin写一个插件You are now ready to learn how to build a plugin. In this part of the guide, you will learn how to apply basic GStreamer programming concepts to write a simple plugin.现在您已经为学习如何构建插件做好准备了。在本部分指南中,您将学习如何应用基本的GStreamer编程概念来编写一个简单的插件。Th
2021-07-21 19:16:17 1671 1
原创 2021 gstreamer插件编写指南中英对照 (二) 基础知识
Foundations 基础This chapter of the guide introduces the basic concepts of GStreamer. Understanding these concepts will help you grok the issues involved in extending GStreamer. Many of these concepts are explained in greater detail in the GStreamer Applica
2021-07-21 19:15:13 427
原创 2021 gstreamer插件编写指南中英对照 (一) 前言
Introduction 介绍GStreamer is an extremely powerful and versatile framework for creating streaming media applications. Many of the virtues of the GStreamer framework come from its modularity: GStreamer can seamlessly incorporate new plugin modules. But beca
2021-07-21 11:46:45 680
原创 全志T7/T507 Qt5.12.5移植记录
1.error “Qt requires C++11 support”1.1.Qt编译报错:…/…/…/include/QtCore/…/…/src/corelib/global/qglobal.h:1172:1:warning: identifier ‘nullptr’ is a keyword in C++11 [-Wc++0x-compat]Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName,bool *ok=
2021-06-18 11:37:07 4632 1
转载 Linux内核之进程1:进程的概念
本文援用ppipp笔记,略做修改。1.什么是进程?进程:资源的封装单位;linux用一个PCB来描述进程,即task_struct, 其包含mm,fs,files,signal…root目录,是一个进程概念,不是系统概念;每一个进程都可以用chroot命令设定属于自己的root路径,如果没有设置,继承父进程值。apropos chrootman chroot 2如下图,将分区/dev/sda5挂载到/mnt/a,调用chroot,改变root目录,当前进程下的文件b.txt即位于当前进程的根
2021-05-05 12:09:43 199
原创 ext4 exfat ntfs无法自动挂载问题
问题描述只有fat32可以识别,其它格式无法正常挂载。处理过程ext4处理# create /dev/sda create /dev/sda1 [ 340.311161] EXT4-fs (sda1): Unrecognized mount option "utf8=1" or missing value [ 340.323172]> EXT4-fs (sda1): Unrecognized mount option "utf8=1" or missing value [ > 3
2021-02-27 17:43:10 3826
原创 BT601和BT709数据区别最简洁的描述
本质区别是数据转换系数不同。BT601是SDTV规格:令:Y = kr R + (1-kb-kr)G + kb BCb = 0.5/(1-kb) * (B-Y)Cr = 0.5/(1-kr) * (R-Y)则:R = Y + (1-kr)/0.5 * CrG = Y - 2kb(1-kb)/(1-kb-kr) * Cb-2kr(1-kr)/(1-kb-kr) * CrB = Y + (1-kb)/0.5 * CbBT709是HDTV规格:令:Y = 0.2126R +
2021-02-23 17:52:24 11322 4
原创 短歌行——python大法好,退C保平安!
对酒当歌,人生几何?快用派神,快乐很多!指针内存,忧心伤身。何以解忧,唯有派神。青青子衿,悠悠我心。但为派神,沉吟至今。呦呦鹿鸣,食野之苹。我为派神,鼓瑟吹笙~明明如月,何时休歇?忧从中来,不可断绝。变量指针,泄露内存。契阔谈䜩,心念派神。月明星稀,还是宕机。熬到凌晨,何处可依?山不厌高,海不厌深。派神大法,天下归心!...
2020-12-24 09:06:34 234
vim 配置和插件打包下载
2021-08-22
xcode 13.0 真机调试镜像 DeveloperDiskImage
2019-07-25
xcode iOS12.4 DeveloperDiskImage真机调试镜像
2019-07-25
xcode iOS12.3 DeveloperDiskImage真机调试镜像
2019-07-25
xcode iOS12.3 真机镜像DeveloperDiskImage.sig
2019-07-24
xcode iOS12.3 DeveloperDiskImage真机调试镜像
2019-07-24
先锋CarPlay样机log记录 usb分析仪文件
2019-05-05
CarPlay认证的协议log记录usb分析仪文件
2019-05-05
Accessory Interface Specification 最新解密版
2019-04-29
iAP 协议带IDPS实例ATS
2018-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人