- 博客(36)
- 收藏
- 关注
原创 weston compositor分析
Weston 是基于Wayland 协议的 compositor 的参考实现。其它的实现比如 GNOME 和KDE 也默认提供了基于Wayland display server 协议建立的全功能桌面环境。OpenHarmony 标准系统目前采用的是weston 的实现。
2024-11-18 17:14:09
838
原创 Weston概览
编译时会首先编译出wayland-scanner这个可执行文件,它利用expat这个库来解析xml文件,将wayland.xml生成相应的wayland-protocol.c,wayland-client-protocol.h和wayland-server-protocol.h。此外打开weston,还会使能依赖的wayland、wayland-protocols、libxkbcommon、pixman、libpng、udev、cairo、libinput、libdrm、seatd等。
2024-11-15 16:43:35
1071
原创 UDS诊断入门
UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议,在ISO 14229中规定。它是从ISO 14230-3(KWP2000)和ISO 15765-3协议衍生出来的。“统一”这个词意味着它是一个“国际化的”而非”公司特定的”标准。到目前为止,这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。
2024-11-01 18:26:30
655
原创 图形系统wayland和weston基础
简单地说,Wayland是一套display server(Wayland compositor)与client间的通信协议,而Weston是Wayland compositor的参考实现。其官网为。它们定位于在Linux上替换X图形系统。X图形系统经历了30年左右的发展,其设计在今天看来已略显陈旧。在X系统中,XServer作为中心服务,连接dien和硬件以刀及compositor。但时至今日,原本在XServer中做的事很多已被移到kemel口或者单独的库中,因此XServer就显得比较累赘了。
2024-10-30 18:35:20
1426
原创 yocto系统Image优化
使用yocto编译出来的Image文件(比如ext4格式)有时候根据业务需求,是要进行剪裁以缩小Image的Size。比如系统有OTA需求,系统预留的OTA分析大小是500M。但是Image(ext4格式)是1G大小。即使使用压缩文件,也未达到500M。这种情况下,可能就需要进行剪裁了。
2024-10-22 16:17:06
501
原创 Bitbake 介绍
从根本上说,BitBake是一个通用的任务执行引擎,BitBake允许shell和Python任务在复杂的任务间依赖关系的约束条件下有效地并行运行。BitBake的主要用户之一是OpenEmbedded,OpenEmbedded使用Bitbake以及面向任务的方法构建嵌入式Linux软件堆栈。从概念上来说,BitBake在某些方面与GNU Make类似,但是也有明显的区别:1.BitBake根据构建任务时提供的元数据来执行任务。
2024-03-18 11:26:36
758
原创 ftrace利器之trace-cmd和kernelshark
M set CPU mask to trace------------------------------------------------------------------这5个选项对应ftrace的设置set_ftrace_filter、set_graph_function、set_ftrace_notrace、buffer_size_kb、tracing_cpumask。但是如果在adb shell中,ctrl+c可能优先退出了shell,而没有正常停止trace-cmd record。
2024-03-08 17:52:05
987
原创 NFS 服务器和客户端挂载详解
NFS 是 Network File System 的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由 Sun 公司开发,于1984年向外公布。功能是让客户端通过网络访问不同主机上磁盘里的数据,主要用在类 Unix 系统上实现文件共享的一种方法。NFS 在文件传送或信息传送过程中依赖于RPC协议。
2023-07-27 22:02:00
165
原创 Linux新增用户、指定用户组、家目录、获取sudo权限
profile:bash启动时执行此文件,其实启动文档有3个.bash_profile,.bash_login,.profile,优先执行 ~/.bash_profile,找不到时,再执行 ~/.bash_login ,还找不到,才执行 ~/.profile,此文件定义命令的路径 (PATH) 与环境变量,可以添加自定义命令,做启动时的工作。当然不是,输入ls -al,a是全部的意思,l是列表的意思,将全部文件(文件夹)按列表的方式显示。一个点“.”表示当前目录,两个点“…都是蓝色的,都是文件夹。
2023-07-01 13:42:23
1354
原创 C# 属性
属性是类或对象中的一种智能字段形式。从对象外部,它们看起来像对象中的字段。但是,属性可以通过丰富的 C# 功能来实现。缓计算或方案所需的任何要求。
2023-02-23 14:45:28
29
原创 C++中的类型转换static_cast、dynamic_cast、const_cast和reinterpret_cast
这篇博文总结了C++中的类型转换,重点总结了其中的显式转换。对于C++支持的这四种显式转换都进行了详细的描述。
2023-02-16 15:36:42
28
原创 C语言静态函数
c语言中static的语义1.static变量:1).局部a.静态局部变量在函数内定义,生存期为整个源程序,但作用域与自动变量相同,只能在定义该变量的函数内使用。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。当static用来修饰全局变量的时候,它就改变了全局变量的作用域(在声明他的文件之外是不可见的),但是没有改变它的存放位置,还是在静态存储区中。2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。.....
2022-08-07 07:45:31
813
原创 CANalyzer及CANOE使用四:调用DLL实现UDS_TP/NM(OSEK/Autosar)或安全算法解锁功能
调用DLL实现UDS_TP/NM(OSEK/Autosar)或安全算法解锁功能
2022-06-21 10:35:55
2427
原创 Excel xlsx file; not supported(xlrd版本不兼容问题,完美解决!)
Excel xlsx file; not supported
2022-06-02 13:59:17
5575
原创 GLSL——常用内建函数与应用
GLSL——常用内建函数与应用STEP函数step(a, b);当b > a时, 返回1;当b < a时,返回0。函数原型float step(float a, float x){ if (a < x) { return x; } else { return a; }}应用对控件着色时,x坐标小于0.5时,使用黑色渲染;x坐标大于0.5时,使用红色渲染。代码段varying mediump
2022-05-16 14:57:06
2834
转载 adb shell input命令使用说明
adb shell input命令使用说明usage: input ... input text <string> input keyevent <key code number or name> input [touchscreen|touchpad] tap <x> <y> input [touchscreen|touchpad] swipe <x1> <y1> &l
2022-05-09 10:37:02
8820
转载 关于DBC文件的创建(DBC文件系列其一)
关于DBC文件的创建 关于DBC文件的创建摘要1、新建一个CAN数据库文件2、创建信号要用到的数值表Value Tables3、创建信号Signals,关联该信号的数值表4、创建报文Messages5、创建网络节点Network nodes6、将信号、报文及网络节点进行关联链接6.1、信号与报文的关联工作6.1.1 方法一:鼠标直接拖放6.1.2 方法二:在该报文的”Signals”配置下进行添加关联6.2、报文与网络节点的关联工作6.2.1 报文与发送节点的关联6.2.2 报文与接收节点的关联7、创建或
2022-04-27 17:08:10
6352
转载 理解Android Studio的视图和目录分析
AS一共有三种视图.我们来分别分析每一种视图的作用.一、Project视图.(白色字体的目录/文件可不关注)图片中的链接Gralde介绍:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/GIT/github使用:http://www.worldhello.net/gotgithub/.gitignore文件说明:http://www.html-js.com/article/2030Android的Module
2022-04-27 16:27:11
409
转载 objdump(Linux)反汇编命令使用指南
@TOC1 objdump反汇编示例源文件main.c:/* main.c */#include <stdio.h>void swap(int* first, int* second){ int temp = *first; *first = *second; *second = temp;}int main(void){ int a = 10; int b = 20; printf("a = %d; b = %d;\n",
2022-04-27 15:31:56
13298
转载 JAVA匿名内部类
1.前言匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在完成了手头的开发任务后,查阅了一下JAVA官方文档,将匿名内部类的使用进行了一下总结,案例也摘自官方文档。感兴趣的可以查阅官方文档(https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html)。2.匿名内部类匿名内部类可
2022-04-27 15:30:17
172
转载 cmake使用教程(二) install的使用
make install的使用这里主要介绍使用cmake进行install方面的操作:通过cmake可以 安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等,下面分别进行简述一下:细节可以参考官网,这里简单描述一下1.目标文件的安装install(TARGETS targets... [EXPORT <export-name>] [RUNTIME_DEPENDENCIES args...|RUNTIME_DEPENDENCY_SET <set-n
2022-04-27 14:34:25
1306
转载 cmake使用教程(一)多目录下多个文件的构建
1.采用 out-of-source 外部构建多个目录多个文件这里的文件存储方式如下:其中build是构建目录,即构建的结果和中间产物都在该目录下include是包含目录src是子函数的目录或是依赖文件的目录main.cpp主函数从上图的右边可以发现src里存在add.cpp和一个对应的cmakelists.txt文件,同时根目录下也存在一个cmakelists.txt文件main.cpp #include<iostream>#include"include/add.h"
2022-04-27 14:19:17
4097
转载 C++将类的构造函数、析构函数声明为private或者protected的用途
C++ 将对象的构造和析构函数声明为Protected的作用在看代码的过程中,有时会发现析构函数被定义成virtual,有一些没有定义成virtual但被放置于protected下。下面是较好的解答:1、如果一个类被继承,同时定义了基类以外的成员对象,且基类析构函数不是virtual修饰的,那么当基类指针或引用指向派生类对象并析构(例如自动对象在函数作用域结束时;或者通过delete)时,会调用基类的析构函数而导致派生类定义的成员没有被析构,产生内存泄露等问题。虽然把析构函数定义成virtual的可以
2022-04-27 10:02:38
627
原创 QML程序实现动态切换多语言
QML程序实现动态切换多语言Qt程序中实现多语言有Qt自己的一套机制,然而目前在5.9版本下该机制无法在程序运行期间动态切换语言。本文向大家介绍一种切实可行的walkaround方法,支持对普通文本以及在ListModel/ListElement中的文本的多语言处理。回顾Qt多语言机制Qt自身的多语言机制分下面几个步骤:在源码中用QObject::tr()(C++)或者qsTr()(QML)将字符串包起来;用Qt自带的lupdate生成.ts文件;用linguist工具翻译并发布为.qm文件;
2022-04-27 09:47:51
1261
转载 repo工具和同步android代码
repo工具和同步android代码 1. repo是什么 repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。 2. repo简介 因为Android源码引用了很多开源项目, 每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层 工具批量进行处理,因此repo诞生。repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪
2022-04-26 17:27:05
1338
原创 C++中extern关键字的作用
C++中extern关键字的作用extern是什么及其作用extern是c++引入的一个关键字,它可以应用于一个全局变量,函数或模板声明,说明该符号具有外部链接(external linkage)属性。也就是说,这个符号在别处定义。一般而言,C++全局变量的作用范围仅限于当前的文件,但同时C++也支持分离式编译,允许将程序分割为若干个文件被独立编译。于是就需要在文件间共享数据,这里extern就发挥了作用。...
2022-04-22 13:23:51
4297
原创 CommonAPI
关于CommonAPI 使用说明 程序员在开发中常用到进程间通讯,进程间通讯方式有很多种,如管道、信号量、FIFO、共享内存区,还有今天想说的CommonAPI进程间通信。 CommonAPI C ++是用于进程间和网络通信的C ++框架。 基本目标不是提供用于进程间或网络通信(IPC)的新机制,而是定义可用于不同机制的高级C ++ API。 对于C ++开发人员而言,好处是应避免使用专有或鲜为人知的通信框架或协议的细节。 CommonAPI C++依靠FrancaIDL来描述静态接口,
2021-11-28 11:47:12
1699
1
转载 qt中颜色对话框弹出时应用程序输出栏出现setGeometry: Unable to set geometry 152x30+682+300 on QWidgetWindow/‘QColorDialo
qt中颜色对话框弹出时应用程序输出栏出现setGeometry: Unable to set geometry 152x30+682+300 on QWidgetWindow/‘QColorDialogClassWindow’.
2021-11-28 11:42:00
1041
1
原创 C语言中static的作用
一、修饰变量1. static变量和普通变量的作用域不同。static 定义全局变量时,只在当前文件中有效。比如我们在a.c中定义变量int a; 在b.c文件中定义extern int a;这时候a变量是一个全局变量,a.c和b.c中都能访问。但是如果a.c中定义了static int a; 那么即使b.c中extern 外部声明也不可以。2. static变量修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。如果函数中定义一个变量不想
2020-12-15 14:00:13
458
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人