自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【GPU驱动】- Weston

它管理显示器,包括其内容的组成,支持其输入设备事件(触摸屏,鼠标,键盘等)及其设置(壁纸,分辨率,多监测器显示等)。它适用于许多嵌入式和移动用例。Wayland Server使用Wayland协议与Wayland客户端的GUI计划进行通信。Weston库实现了Wayland合成器,该合成器使用Linux内核模式设置(KMS)来设置显示,使用OpenGL|reg|ES和直接渲染管理器(DRM)执行合成,并管理Linux输入设备。Wayland客户端应用程序使用Wayland协议与Wayland合成器通信。

2025-02-26 09:00:42 174

原创 【编译器】- CUDA编译流程

分开编译适合简单的 CUDA 应用,易于理解和实现,但可能不如双模式编译灵活,尤其是在需要进行复杂优化或跨平台支持时。双模式编译则通过生成 LLVM IR 和 JIT 编译,能够提供更高的优化效率,尤其适用于需要高性能或支持多个平台的 CUDA 项目。这两种方法各有优势,开发者可以根据具体需求选择适合的编译方式。

2025-02-24 08:36:14 891

原创 【GPU驱动】- 状态机

Mesa 是一个开源的图形库,它提供了一个通用的图形抽象层,支持多种硬件和驱动程序。Mesa 的核心组件之一是 State Tracker,它在抽象图形 API(如 OpenGL )与具体的图形驱动之间起到桥梁作用。State Tracker 通过将高级 API 的调用转换为硬件能够理解的命令,从而使得 Mesa 能够支持多种图形 API 和硬件平台。

2025-02-22 11:03:00 1156

原创 【GPU驱动】-G2D(NXP)分析

在weston项目中,涉及g2d内容的主要是libweston的backend-drm 文件夹和renderer-g2d 文件夹。

2025-02-21 15:02:32 953

原创 【编译器】-llvm前端处理流程

LLVM(Low Level Virtual Machine)是构架编译器(compiler)的框架系统,以C++编写而成,用于优化编译器和代码生成。

2025-02-21 14:46:31 827

原创 【编译器】-LLVMIR

LLVM 是一种基于静态单赋值 (SSA) 的表示形式,提供类型安全、低级操作、灵活性以及干净地表示“所有”高级语言的能力。二进制形式 是 LLVM IR 的紧凑编码形式,称为 Bitcode。它是 LLVM IR 的序列化格式,设计为编译器内部和外部使用,以便高效存储、传输和重用。内存中的数据结构 是 LLVM IR 的第三种表现形式,通常用于编译器在内存中对中间表示进行操作和优化。

2025-02-21 14:43:15 866

原创 【编译器】-NIR

NIR(New Intermediate Representation)是 Mesa 3D 图形库中的一种中间表示(IR),用于在图形编译器中表示图形着色器等 GPU 程序的中间形式。NIR 的设计目标是提供一种灵活、可扩展的中间表示,以便在编译器的不同阶段进行优化和代码生成。它主要用于表示图形着色器程序,包括顶点着色器、片段着色器等。

2025-02-21 14:23:50 600

原创 静态库与动态库区别

静态库:生成静态库时,源代码编译后生成目标文件(.o或.obj),然后将这些目标文件打包成一个静态库文件(如:.lib或.a)。动态库:生成动态库时,源代码编译生成目标文件,然后链接生成动态库文件(如:.dll, .so, .dylib)。动态库:动态库在运行时被加载。应用程序的可执行文件中包含了动态库的引用,实际的库代码在程序运行时被载入内存。静态库:在编译应用程序时,静态库的代码被复制到应用程序的可执行文件中。静态库:适用于不希望在运行时依赖外部库文件的应用程序,确保所有依赖在编译时就解决。

2025-02-21 14:16:44 416

原创 【GPU驱动】OpenGLES图形管线渲染机制

顶点着色器的输出通常是经过变换后的顶点坐标和其他顶点相关的属性(如颜色、法线等)。顶点着色器的输入包括:着色器程序(顶点上执行操作的顶点着色器程序源代码或可执行文件)、属性(顶点数组提供的每个顶点的数据)、统一变量(顶点着色器使用的不变数据)、采样器(顶点着色器使用纹理的特殊统一变量类型)。片段着色器的输入包括:输入(顶点着色器生成的数据)、统一变量(片段着色器使用的状态)、采样器(着色器中的纹理图像)、代码(片段着色器源代码)片段着色器的输出是一个或者多个片段颜色,传递到管线的逐片段操作部分。

2025-02-21 14:00:52 542

原创 【编译器】AST简介

MatchFinder::matchAST和MatchFinder::newASTConsumer同样的效果。,抽象语法树,是一种包含丰富语义信息的格式,其中包括类型、表达式树和符号等。TranslationUnitDecl:该类表示一个输入源文件。通过干净、简洁和高效的领域特定语言DSL编写模式匹配逻辑。:Decl的子类表示,如变量声明、函数和结构、类声明。:该类跟踪所有的AST节点和输入源文件数据。:Stmt的子类表示,表示动作概念的指令。:Expr的子类表示,总是生成值。

2024-03-01 14:03:58 788

原创 【GPU驱动】-GPU架构简介

GPU(Graphics Processing Unit,图形处理单元)是一种专门用于处理图形和并行计算的处理器。GPU系统架构通常包括硬件和软件层面的组件。

2024-03-01 13:50:18 1812

原创 【GPU驱动】-mesa简介

Mesa是OpenGL、Vulkan和其他图形API规范的开源实现。主要由Intel和AMD为其各自的硬件开发和资助。AMD 在已弃用的AMD Catalyst上推广其 Mesa 驱动程序 Radeon 和 RadeonSI ,而 Intel 仅支持 Mesa 驱动程序)。专有图形驱动程序(例如,Nvidia GeForce 驱动程序和 Catalyst)取代了所有 Mesa,提供了自己的图形 API 实现。

2024-02-28 17:04:24 3219

原创 【GPU驱动】- mesa编译与链接过程详细分析

st_glsl_to_nir.cpp 文件负责 GLSL 到 NIR 的转换,其中 NIR 提供了更抽象和可优化的中间表示。src/mesa/state_tracker/st_glsl_to_nir.c:在ST层主要实现了 GLSL 到 NIR 的转换功能,包括 GLSL 程序的链接、NIR 的最终化、优化以及统一变量的处理。src/compiler/glsl/glsl_to_nir.cpp:在Compiler层负责将GLSL源码转化成NIR,包括GLSL IR的释放和NIR的创建和验证。

2024-02-28 16:53:04 2465

原创 【GPU驱动】- GLSL介绍和使用举例

它负责将操作系统发出的指令转换为GPU可以理解的指令,并管理GPU的资源。NVIDIA的CUDA和AMD的ROCm是两种常见的GPU编程框架,它们提供了GPU编程的API和工具。GPU编程通常采用并行计算的模型,其中任务被分解成许多小的并行任务,由GPU的流处理器并行执行。CUDA和OpenCL是两种广泛使用的GPU编程语言,它们允许开发人员直接利用GPU的并行性。高带宽、低延迟的显存对于GPU的性能至关重要。OpenGL和DirectX是两种常见的图形API,它们提供了用于渲染图形和处理图形效果的接口。

2024-01-31 15:31:50 1006

原创 【编译器】- LLVM和Clang环境部署

在 Ubuntu 系统中,你可以通过修改 ~/.bashrc 文件来将 LLVM 的 bin 目录添加到 PATH 环境变量中,以及将 LLVM 的 lib 目录添加到 LD_LIBRARY_PATH 环境变量中。cmake -DLLVM_DIR=/home/zq/桌面/llvm-project/llvm/install/lib/cmake/llvm。首先将虚拟机关机,在虚拟机设置中,选择选项面板,选择共享文件夹,选择总是启用。将win下的共享文件夹加入的指定目录下:在/mnt目录下输入。

2024-01-31 15:24:32 1246

原创 【GPU驱动】-Mesa ST和GLSL编译器衔接交互分析

(基于Mesa 22.2.5版本)Mesa State Tracker 与 GLSL 编译器的协同工作是 Mesa 3D 图形渲染管线中的关键环节。这两者的衔接确保了 OpenGL API 调用能够正确、高效地映射到底层硬件,并为开发者提供了一个灵活而强大的图形渲染框架。这种衔接不仅涉及到状态的正确传递,还包括对 GLSL 着色器的管理、编译和链接过程的协同工作,从而为开发者提供了一个强大的图形渲染工具。

2024-01-25 11:26:54 630

原创 【GPU驱动】-Mesa ST和GLSL编译器衔接源码分析

st_glsl_to_nir.c 主要实现了 GLSL 到 NIR 的转换功能,包括 GLSL 程序的链接、NIR 的最终化、优化以及统一变量的处理。根据着色器类型(GLSL 或 SPIR-V)调用相应的链接函数,如 gl_nir_link_glsl 或 gl_nir_link_spirv。st_nir_assign_vs_in_locations 函数专门处理为顶点着色器输入分配输入位置的任务。st_glsl_to_nir_post_opts 函数执行 GLSL 到 NIR 转换的链接后任务。

2024-01-25 10:43:13 693

原创 【公共工具】-Markdown使用

Markdown 是一种轻量级标记语言,允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML 、Word、图像、PDF、Epub 等多种格式的文档。文档后缀为 .md, .markdown。

2024-01-16 09:59:11 404

原创 计算机基础笔记(五)—数据库

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言文件结构顺序文件索引文件散列文件目录数据库数据库体系结构数据库模型数据库的设计其他数据库文件结构文件是数据记录的集合,每个记录都由一个或多个域组成。存取方法决定了怎样检索记录:顺序的或随机的顺序文件定义: 只能按照顺序从头到尾一个接一个地进行存取文件更新新主文件:新的永久数据文件旧主文件:需要更新的永久文件事务文件:包含要对主文件做改变的文件(添加、删除、更改)错误报告文件:错误清单与纠正操作索引文件由数据文件组成,它是

2022-03-24 13:57:55 2819 1

原创 计算机基础笔记(四)—数据结构

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言数组链表栈(LIFO)队列(FIFO)广义线性表树图有特殊关系的数据的集合,能被单独或作为一个整体被访问抽象数据类型抽象数据类型就是与该数据类型有意义的操作,封装在一起的数据类型数组元素的顺序集合,通常这些元素都具有相同的数据类型两种标识符: 数组的名字和各个元素的名字多维数组存储配置: 大多数计算机使用行主序存储数组的操作:查找元素、元素插入、元素删除、检索元素、元素遍历(被用于每个元素上的操作)适用范围: 插入和删除操

2022-03-23 11:42:33 662

原创 计算机基础笔记(三)—操作系统

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、概述二、操作系统分类三、组成部分用户界面内存管理器进程管理进程同步设备管理文件管理四、主流操作系统UNIXLinuxWindows一、概述定义: 计算机硬件和用户的一个接口,它使得其他程序更加方便有效地运行,并能方便地对计算机硬件和资源进行访问。计算机系统: 硬件+软件软件系统: 操作系统+应用程序操作系统加载过程:自举程序运行→操作系统装入内存→CPU运行操作系统二、操作系统分类批处理操作系统: 早期控制大型计算机,保证

2022-03-21 15:57:24 3640

原创 计算机基础笔记(二)—计算机组成

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、中央处理器(CPU)二、主存储器三、输入/输出子系统四、子系统互连五、程序执行六、计算机体系结构组成构成:中央处理器+主存储器+输入/输出子系统一、中央处理器(CPU)算术逻辑单元(ALU)+控制单元+寄存器组算术逻辑单元(ALU): 对数据进行逻辑、移位、算术运算寄存器: 存放临时数据的高速独立的存储单元数据寄存器: 用来存储输入数据和运算结果更多的复杂运算由硬件设备实现,所以CPU中使用大量寄存器来提高运算速度。指令寄

2022-03-18 17:10:49 662

原创 计算机基础笔记(一)—计算机网络

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、 概述二、 TCP/IP协议族分层应用层传输层网络层数据链路层物理层一、 概述网络: 一系列可用于通信的设备相互连接构成的。局域网: 将几个主机相连的私有网络,每个主机都有局域网中唯一的标识符和地址。广域网: 将广域内的通信设备互连,将交换机、路由器或调制解调器的连接设备互**连,由通信公司创建并运营,并租借给使用它的机构。协议: 定义发送器、接收器以及所有中间设备必须遵守的以保证有效地通信的规则。协议分层目的:使我们可以将大

2022-03-16 16:52:31 4567

原创 前端开发笔记(四)—vue项目部署

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、 使用淘宝镜像cnpm安装vue1. 安装node.js2. 安装淘宝镜像cnpm3. 安装脚手架vue-cli4. 自动升级vue5. 初始化脚手架二、 创建vue项目1. 创建vue项目2. 打包vue项目三、 Windows服务器利用IIS搭建环境1. 安装NET框架2. 安装IIS3. 安装web平台组件与URL重写组件一、 使用淘宝镜像cnpm安装vue1. 安装node.jsNode.js是一个基于Chrome V8引擎

2021-11-18 11:17:28 1134 1

原创 雷达手势识别技术概述

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言雷达技术特点毫米波雷达实现过程手势信号预处理手势特征提取与分类识别算法雷达技术特点随着雷达技术的快速发展和广泛应用,雷达手势识别已成为人机交互技术领域的一个重要分支。与传统光学传感器相比,雷达传感器在雨、雪、雾霾等恶劣天气情况或者黑暗条件下均能够正常工作,具有全天候、全天时的优势; 其次雷达传感器可固定到电子设备内部,从而可提高装置的抗干扰性和灵活性; 另外,雷达信号在隐私安全方面也有着较大优势,可以有效的保护用户隐私信息。毫米波雷达

2021-11-09 09:52:45 4180 1

原创 前端开发笔记(三)—JavaScript教程

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、 简介1.引入方式一、 简介JavaScript,一种嵌入到HTML页面中的编程语言,由浏览器一边解释一边执行。用于控制着网页的行为。1.引入方式想要在HTML中引入JavaScript,一般有3种方式。(1)外部JavaScript(2)内部JavaScript(3)元素事件JavaScript** 外部JavaScript **<script src="index.js"></script>

2021-08-31 18:40:29 598

原创 前端开发笔记(二)—CSS教程

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、 简介1.引入方式二、 元素选择器1.元素基本属性2.选择器三、 字体样式1.简介2.标签使用四、 文本样式1.简介2.标签使用五、 边框、列表与图片样式1.简介2.标签使用六、 图片与背景样式1.简介2.标签使用七、 超链接式样与盒子模型1.简介2.标签使用八、 浮动与定位布局1.简介2.标签使用一、 简介CSS,Cascading Style Sheet(层叠样式表),是用来控制网页外观的一门技术,在Web开发中用于控制网页的外观

2021-08-05 14:35:57 313

原创 前端开发笔记(一)—HTML教程

前言不必害怕未知,无需恐惧犯错,做一个Creator!目录前言一、 简介1.语言语法2.开发环境:VScode3.HTML结构二、基本标签1.简介2.标签使用3.示例(网页显示如下内容)三、文本标签1.简介2.标签使用3.示例(网页显示如下文本内容)四、列表与表格标签1.简介2.标签使用3.示例:网页显示如下表格与列表内容五、图片与超链接标签1.简介2.标签使用3.示例:通过点击图片转到目标链接六、表单标签1.简介2.标签使用3.示例:网页显示如下表单一、 简介HTML/Hyper Text Mar

2021-07-23 10:09:12 645 2

原创 【嵌入式】NBIoT(BC26)低功耗模式与控制

不必害怕未知,无需恐惧犯错,做一个Creator!一、BC26工作模式机制工作模式工作模式工作状态描述正常Connected所有功能正常收发空闲DRX/eDRX寻呼窗口内可接收寻呼,周期性监听睡眠模式PSM网络处于非连接状态,无法接收下行数据切换机制模块当前的Task都处于挂起状态后,模块的AP将会进入空闲模式(默认自动使能进入),这时AP不再有业务需要处理。当空闲态下无数据交换超过一定时间,模块自动进入PSM模式空闲模式:DRX/eDRX为了

2021-05-27 17:10:46 2669

原创 【STM32】KEIL5-4兼容性问题处理

问题:通过KEIL5打开KEIL4文件出现兼容性问题处理一、点击 “Install Legacy Support”,进入KEIL官网下载支持包二、点击 “Download legacy Support for Cortex-M Devices” 进行下载三、点击下载下来的应用程序,安装支持包四、再次打开工程文件,不会出现兼容性问题。提示:若有错误不足,欢迎批评指正。该文章仅供参考,欢迎互相学习交流。感谢你的阅读,期待你的关注收藏点赞!...

2021-03-23 16:18:32 1891 1

原创 【嵌入式】EEPROM与Flash对比分析

不必害怕未知,无需恐惧犯错,做一个Creator!功能特点对比EEPROM的全称是“电可擦除可编程只读存储器”。这种rom的特点是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。具有较高的可靠性,但是电路复杂/成本也高。因此目前的EEPROM都是几十千字节到几百千字节的,较少有超过512K的。flash(nand)常见W25系列,是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。nand flash内部电路更简单,因此数据密度大,体积小,成本也低,因此大容

2021-02-05 09:31:10 2991 2

原创 【卫星】卫星通信基本概念与知识

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍卫星通信基本概念与知识。卫星通信基本概念与知识上行链路:从地球站发射信号到通信卫星所经过的通信路径成为上行链路。下行链路:通信卫星将信号再转发到其他地球站的通信路径称为下行链路。星间链路:同轨道卫星间的通信。星际链路:不同轨道卫星间的通信。卫星通信特点优点:通信距离远,费用与通信距离无关。覆盖面积打,以广播方式工作,可进行多址通信(同时多方向多地点通信)。机动灵活易于处理突发事件缺点:使用寿命短星蚀

2021-01-29 16:12:42 8229 1

原创 【物联网】物联网关键技术与应用分析

感知层:智能硬件技术、传感技术传感器技术是从自然信源获取信息并对获取的信息进行处理、变换、识别的一门多学科交叉的现代科学与工程技术,它涉及传感器、信息处理和识别的规划设计、开发、制造、测试、应用及评价改进活动等内容。了解行业,根据不同的应用场景选择使用更契合的传感设备,感知设备。网络层:无线通信技术物联网中物品要与人无障碍地交流,必然离不开高速、可进行大批量数据传输的无线网络。无线网络既包括允许用户建立远距离无线连接的全球语音和数据网络,也包括近距离的蓝牙技术、红外技术和Zigbee技术。熟悉各.

2021-01-29 13:57:04 1151 2

原创 【Linux】jetson开发教程—RGB判据火焰识别

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍jetson开发板中RGB判据火焰识别的实现。一、原理流程图二、RGB判据原理人眼的视网膜上有两类感光器:锥状体和杆状体。其中,锥状体对红、绿、蓝三种颜色的光很敏感,因此一般用于人眼观看的颜色模型是RGB模型。对于普通的火焰来说,它的红色分量和绿色分量会很大,并且绿色分量会大于蓝色分量,所以我们设下的简单判据是:S = (1-3.0*minValue/(R+G+B))R > RT R>=G>=B S&g

2020-12-29 17:13:46 646 1

原创 【Linux】jetson开发教程—CSI摄像头使用

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍jetson开发板中CSI摄像头的使用。一、创建管道注:若没有安装GStreamer,需要先进行安装,可参考相关文章该管道配置函数是对管道的像素,帧数,格式转换string gstreamer_pipeline (int capture_width, int capture_height, int display_width, int display_height, int framerate, int flip_method)

2020-12-29 16:27:25 2551 1

原创 【STM32】HAL库开发教程(九)—W25qxx使用

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍STM32_HAL库开发中W25qxx的配置使用一、开发步骤1.指令表配置W25qxx的系列芯片的指令表大部分是互通,在参照芯片确定后,对指令进行宏指令配置。定义包括:读指令,写指令,擦除指令#define W25X_WriteEnable 0x06 #define W25X_WriteDisable 0x04 #define W25X_ReadStatusReg1 0x05 #define W25X_ReadSta

2020-12-28 18:58:07 3016 1

原创 【通信技术】天线技术

不必害怕未知,无需恐惧犯错,做一个Creator!本文主要记录学习的通信天线技术。一、基本原理天线将 射频电信号 转换成 电磁波 在自由空间中传播,并相应在接收端将电磁波转换回射频电信号。电磁波辐射的产生: 导线上有交变电流流动。基本单元: 半波对称振子,两臂长度均为1/4波长二、天线类别全向天线:水平方向360°均匀辐射。定向天线:水平方向上有一定角度范围的辐射。可通过反射板把辐射方向进行约束。提示:若有错误不足,欢迎批评指正。该系列文章仅供参考,欢迎互相学习交流。感谢你的阅读.

2020-12-24 20:12:27 695 2

原创 【STM32】HAL库开发教程(八)—看门狗使用

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍STM32_HAL库开发中看门狗的使用。目录前言一、开发步骤一、开发步骤

2020-09-15 14:45:47 2777

原创 【STM32】HAL库开发教程(二)—GPIO使用

前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍STM32_HAL库开发中GPIO的使用。目录前言一、开发步骤一、开发步骤

2020-09-15 11:43:42 2400

原创 【STM32】HAL库开发教程(七)—SPI使用

前言本系列本章针对STM32F207,基于STM32Cubemx和Keil进行程序开发,作者利用本系列文章对开发过程进行记录和总结。该系列文章仅供参考,欢迎互相学习交流。其中,本文主要介绍STM32_HAL库开发中RTC的使用。...

2020-09-15 11:19:11 26135 21

EEPROM与FLASH(W25)芯片手册对比.rar

EEPROM与FLASH(W25)芯片手册对比.rar

2021-02-05

F207_Manual-LEOBIT_ZQ.zip

免费下载!!!官网下载F207的数据手册,参考手册以及闪存编程手册,都是英文版本的,可以直接免费下载。

2020-08-31

空空如也

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

TA关注的人

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