自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 q15 doc

【代码】q15 doc。

2024-04-10 10:03:57 70

原创 udsip record

item cnt price t113 board 1 94

2024-04-09 14:14:32 101

原创 wddm & dx11

device-conetxt obj 负责渲染 perform rending。device object 创建resource。

2024-04-01 10:51:56 110

原创 glBindTexture函数的理解

简单的说opengl的设计思想,实现较早,并不是基于对象,所以API操作, 总是以奇怪的enum枚举类型来作为操作对象。形成的编程范式就是先bind绑定到一个named obj(其实是个整数)。然后调用api对当然bind的对象以enum枚举类型进行操作。具体一个例子如下://相当于设置了gc->cur_texture_2d=id;//对gc->cur_texture_2d的texture_obj进行具体的设置。//切换gc->cur_texture_2d=id_other;切换对象了。

2024-03-26 11:00:37 986

原创 opemgl rgb2yuv NV12

比较稳妥的做法是,不要尝试建立内存连续的几个纹理,虽然多output fs是可行的,可以同时输出在多个texture,但是很难让2个texture在同一块内存上。并且uv分量存在下采样,也难以操作。应该创建一个更大的img,使用viewport分两次shader y + uv分量。如果没有使用img ext来实现,这个明显比yuv2rgb要难。

2024-03-22 17:49:53 88

原创 opengl fragment shader multi-output

在OpenGL, 片段着色器(Fragment Shader)通常只能输出一个颜色值,这个颜色值用于最终渲染的像素。然而,有时候你可能需要在片段着色器中输出多个值,比如不仅仅是颜色,还有其他额外的数据(如法向量、纹理坐标等)。在这个示例中,我们使用两个颜色附加缓冲区来输出不同的颜色值。请确保你的硬件和OpenGL版本支持多个颜色附加缓冲区功能。对于更高级的多输出要求,可以考虑使用更复杂的技术,如几何着色器或计算着色器。

2024-03-21 10:23:01 140

原创 opengl yuv2rgb shader

复制需要注意的是 OpenGL ES 实现 YUV 渲染需要用到 GL_LUMINANCE 和 GL_LUMINANCE_ALPHA 格式的纹理,其中 GL_LUMINANCE 纹理用来加载 NV21 Y Plane 的数据,GL_LUMINANCE_ALPHA 纹理用来加载 UV Plane 的数据question: texture().r是什么?

2024-03-19 15:30:29 907

原创 任务栏通知区域

在 Windows 操作系统中,任务栏底部右侧的区域被称为。

2024-03-18 15:43:36 383

原创 broker 居间人

2024-03-12 13:33:04 380

原创 认识事物的几个阶段 & GPU学习

这些阶段构成了认识事物的基本过程,帮助我们建立对世界的认知和理解。不同人可能在每个阶段的表现和处理方式有所不同,但这些阶段通常共同构成了认知活动的基本轨迹.比如学习中的“去魅”这个词,非常好的表达出来由不懂,敬畏,害怕,担心到平平无奇,原来是这样,如此来去的如来。1. 一个恰当的词语,一句恰当的话。能将之前领悟到不可名状的东西,突然能恰当的表达出来,概括出来。

2024-03-06 10:05:02 393

原创 gpu swizzled

swizzle操作符后接x、y、z、w, 分别表示原始向量的第一个、第二个、第三个、第四个元素;swizzle操作符后接 r、g、b和a的含义与前者等同。float4(a, b, c, d).wzyx 等价于 float4(d, c, b, a)float4(a, b, c, d).xyz 等价于 float3(a, b, c)float4(a, b, c, d).xyy 等价于 float3(a, b, b)float4(a, b, c, d).w 等价于 float d。Swizzle操作符。

2024-02-28 14:07:52 362

原创 驾驶技术+转大佬的数学分析

这一期从动力学角度来向大家解释了转向特性的问题,但前提还是侧偏角比较小的情况下,认为侧向力与侧偏角成正比关系,如果超过这个限度呢?

2024-01-26 11:44:13 934 1

原创 OpenGL API 变换 & 纹理

纹理图像是方形数组,纹理坐标通常可定义成一、二、三或四维形式,称为s,t,r和q坐标,以区别于物体坐标(x, y, z, w)和其他坐标。相反,纹理坐标通常用于指定如何将纹理映射到模型表面,例如贴图坐标的重复、镜像或拉伸。这样,当顶点通过变换被移动、旋转或缩放时,纹理坐标会相应地进行插值和调整,以使纹理正确地适应变换后的顶点位置。综上所述,OpenGL之所以只对顶点进行变换而不是纹理,是因为顶点变换用于调整模型在3D空间中的位置和方向,而纹理坐标则用于指定如何将纹理映射到这些变换后的顶点上。

2024-01-22 14:17:16 388

原创 openGL API

这个是 mesa的OGL API. openGL规范里面对应的是BindVertexArray。

2024-01-18 14:43:37 361

原创 openGL & dri3 资料收集

DRI1由于当时图形卡内存大小,只有一个屏幕front buffer+back buffer由所有DRI clients和X server使用,front buffer和back buffer就像现在显示系统的双缓冲一样,所有要做渲染操作的实体都直接渲染到back buffer,然后执行swap就更新画面,front变back,back变front。DRI2是进入compositor时代的设计,buffer开始变成离屏buffer,并且离屏buffer可以做直接渲染,DRM也经过了一次大更新;

2024-01-18 10:13:28 422

原创 OpenGL & DIR

在经典的 X Window 系统架构中,X Server 是唯一能够独占访问图形硬件的进程,因此也是在framebuffer进行实际渲染的进程。X clients所做的就是与 X Server通信以分派渲染命令。这些命令是独立于硬件的,这意味着 X11 协议提供了一个提取图形设备的 API,因此 X clients不需要担心底层硬件的细节。任何依赖硬件的代码都位于设备相关 X 中,X Server 中管理video card或显卡驱动的部分,通常也称为视频或图形驱动程序。

2024-01-17 16:57:54 1084

原创 OpenGL & EGL & others

EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层,它主要由系统制造商实现。与设备的原生窗口系统通信查询绘图表面的可用类型和配置创建绘图表面在OpenGL ES 和其他图形渲染API之间同步渲染管理纹理贴图等渲染资源为了让OpenGL ES能够绘制在当前设备上,我们需要EGL作为OpenGL ES与设备的桥梁。

2024-01-17 15:13:07 779

原创 peertalk & Usbmux 资料收集与整理

macos example & ios example

2023-12-05 14:39:18 657

原创 腾讯云服务器端口localhost可以访问,外部无法访问解决

2. tencent这个防火墙规则设置后,还要设置到实例上。1. ubuntu ufw系统防火墙。搭建frp跳板,发现无法使用。

2023-10-19 10:01:03 382

原创 windows 虚拟设备驱动安装

2. enum.exe 用来enum设备,此时设备没有驱动。可以用toaster.inf。devcon inf "hwid" 它会创建dev node.devcon hwids * 查看。1. 首先安装总线dynambus。

2023-08-15 10:05:32 272

原创 x86 kgdb deug调试分析

前面我们在《gdb 和 watchpoint》 文章里讨论了在gdb的watchpoint,这次我们来讨论下如何让kgdb也支持watchpoint特性。KGDB 相当于一个gdb server,只是这个server是跑在内核里面。所以KGDB支持watchpoint实现和gdb server的实现如出一辙,即通过GDB远程串行协议里的Stop-Reply-Packets来传达watchpoint信息给gdb,让gdb知道那个watchpoint击中了。其运行的大致流程为:123。

2023-08-09 11:58:37 212

原创 vps sshd 暴力破解防御

vps在网上挂久了,如果允许密码login并且强度不高,很有可能被人暴力破解:穷举密码组合。2. 使用复杂高强度密码,定期更换。1. 使用ssh key,禁止密码登录。1. 怎么确认存在被人暴力破解?

2023-06-02 09:43:25 153

原创 github push

配置好好,记住,你项目得使用 SSH clone ,不要使用https来上传,会失败的,必须[email protected]:chuanjinpang。6 拷贝完公钥,从浏览器进入GitHub,然后,在右上角个人账号信息里面,点击setting(设置),在设置里面,点击SSH and GPG,再点击 New SSH key。这一步会出现让你设置密码什么的,个人建议直接全部回车,我就在这里栽过,各种密码太烦了,建议不设置的地方直接不要密码。

2023-05-24 16:03:02 621

原创 东顺 548B 说明书

换电池,LR44。要重新设置一下。

2023-02-13 19:18:42 382

原创 systemc books

David C Black_ Jack Donovan - SystemC _ from the ground up-Kluwer Academic Publishers (2004)

2023-02-03 19:42:52 86

原创 C++模板

cpp

2022-11-18 11:07:07 462

原创 debug kthread call stack

kthread task

2022-11-16 19:23:54 102

原创 opengl coordinate transformation 坐标变换

2022-11-14 15:42:11 302

原创 openGL 3D geometry 之数学部分

opengl相关的一些数学

2022-11-11 10:54:18 656

原创 get_user_pages_remote映射一点小分析

问题:这个get_user_page后,到底得到了啥?访问它会发生啥?先上结论:1. get_user_page后,如果成功,则struct page引用会加1,表示被引用中。mmu页表项也会分配出一个page,此时仍然是no present的。直到真实的access内容时才会page in。这样做的好处是,lazy handle。2.访问它时,这时会触发page fault。发生page in。载入内容。pte_present(entry) 当前内容不在主存上。pte_none(e

2022-05-23 14:04:35 632

原创 vfio interrupt & DMA remapping重映射

设备直通需要vt-d支持。1.DMA remappingDMA remapping需要iommu将GPA->HPA转换。这里iommu行为非常类似mmu。主要是PCIe设备,通过bus/dev/func信息来选择iommu映射表。所示每个vf可以有自己独立的映射关系。那么当一个PCIe设备passthrough直通时,会怎么样?对于config space配置空间,VMM会接管,避免打架。对于MMIO空间,可以直接由guest OS操作,通过mmu,iommu进行硬件直通,

2022-05-18 17:05:24 640

原创 linux 内存管理概要

linux内存是支持numa,但是常用的uma。其内存管理分3层:1.zone这一层,主要是内存地址并不完全等价,ISA总线只能传输16MB地址,32bit高端内存的问题。所以会分几个区。2.按page页粒度的buddy系统,alloc_pages,__get_freee_pages()这种按page order分配的管理系统。1- MAX_ORDER分组。它的优点在于效率与碎片比较均衡。具体算法是分配时,从对应order去free_area[MAX_ORDER]找空闲的,如果找不到,就大o

2022-05-18 13:50:18 136

原创 esp32s2 tinyusb vendor device小总结

usb 802.11 wifi网卡,遇到点问题。对tinyusb的架构有一点小了解了。发送路径:用户调用tud_vendor_write(urb_msg,urb_len); 启动传输tud_vendor_write()>tud_vendor_n_write(0, buffer, bufsize);>>tu_fifo_write_n(&p_itf->tx_ff, buffer, bufsize) 写入fifo缓冲>>maybe_tr..

2021-11-26 10:23:35 2997 1

原创 单片机esp32s2实现win10之USB副屏

概要单片机esp32s2+SPI屏实现一个win10 USB接口显示器。本项目借鉴了众多开源项目,主要借鉴:1.github.com/microsoft/Windows-driver-samples/tree/master/video/IndirectDisplay2.git://github.com/roshkins/IddSampleDriver.git3.Bodmer/TFT_eSPI.git4.nopnop2002/esp-idf-ili9340,5.serge-rgb/

2021-11-05 10:38:50 4492 2

原创 杂质与火,组织,系统

1. 关于为何要成势?火就是一种势,一种正反馈的系统关键。一片森林,平时难以起火。只是有些条件不够,最难的就是燃点。比别人做得好一点点是构成不了势的。在大环境中就是容易灭掉。 这事就像野火,一旦成势,就难以扑灭。每当我看到成都市成片的高楼,这哪一栋的财富不够一个伟大公司起步?为啥这城市平平无奇?少了成势的火2. 杂质与结晶我们说螃蟹总是拉着兄弟不让其爬出来?这世间本来就是这样的。过冷水不能成冰,因为没有杂质。没有一个杂质降低表面能,所以一些总是特立独行的人,反而能组织起许

2021-11-05 10:32:40 116 1

原创 横屏版esp32-s2做的usb迷你显示器,用于rpi,linux server很轻快

最近在用树莓派,然而没有配置好网络,得看下IP,才好操作。然后得抱大显示器,连上电源线,还要转换一下HDMI2VGA,如果只有一个显示器,得挪用,的确很麻烦。于是想加一个小显示屏,显示出IP信息。后来觉得这个方案还是有点别扭。刚好esp32-s2有USB otg,做一个小尺寸的320*240的小显示器应该是可行的。速度慢,帧率低点也行的。然后上google找了找,居然找到一个开源项目。GitHub - robopeak/rpusbdisp: Drivers and Tools for Robo

2021-09-26 18:09:31 1934

原创 ESP32C3 build-in USB JTAG调试 Failed to run flasher stub (-4) workaround解决,[最新20211104乐鑫已经修正]

ESP32C3是RISCV架构,还内置USB JTAG。相当便于调试,应该也能下载。然后还有esp-idf开发包,RAM有400KB,啥也不干时,可用300KB。我是非常喜欢C3,价格也不错。可惜一点,没有USB-OTG,有个通用USB-dev也成。不喜欢ESP32S2,因为C3应该有通用USB。目前还没有正式版本的upy。不过只是时间问题。这是一颗能和STM32比的芯片。其实STM32也挺好,主要有2点:首先支持国货,在哪上面开发都要投入精力,要熟悉生态。其次这货RAM,FLASH..

2021-09-01 10:43:27 3079

原创 strncpy的问题与GCC编译期检查的解决方案

用strcpy( )有问题,用strncpy( )还是有问题。#define PATH_MAX 128比如:strncpy(file_path, src, PATH_MAX);strncpy( )容易出现2种问题:1)源串太长,造成没有结束符,引用时有越界乱码现象。 2)字符串长度容易与标称不一致。比如file_path说是最大支持128字符,然而如果把结束符算上,经常只有127。strncpy源码:当src达到count时,就没有结束符了:char* strncpy(char* d

2021-06-29 14:37:07 1768

原创 15块rmb做一个语音识别控制的0.3W白光LED便利USB灯

市面上这种USB灯设计得挺不错的,小巧方便。设计者是个人才,价格也很有竞争力,只要2块钱一个。我想动手做一款用语音识别开关的USB灯,市面上像小米,opple等都有做语音识别的智能灯。但是这个有不同的地方:1.它大体上是开放的,是可以玩的(如果你觉得原生固件设计不合自己味口,你有机会改软件,变成自己的菜)。硬件设计上预留了下载口,可以下载并更新固件。目前厂商是开放了大部分源代码,也可以自己定义命令词。(这里也要吐槽一下厂商,明明下载器用普通的串口就能做,非要限制专用下载器。看在价格的份上,也

2021-06-24 18:20:11 676 2

原创 基于不器3D打印机_改装绘图机方案教程

重要说明:没有买mega2560的板子,因为最近价格有些贵。12块的8266手上有几块。这个绘图机可能和大家都的不一样,只是一个玩具,验证性的原型机。这只是一个原型机,它的绘制速度非常慢,只有大约30mm/s。原因主要是用的不是C语言实现,而是micro python脚本语言实现。 只能做个demo演示。限位开关都没有装,装了目前也用不上,原因是esp8266能用的脚太少,没有足够安全可用的GPIO, 换成esp32才能加。 没有大量测试,除了慢,按照要求生成gcode它还是能工作的。...

2021-06-21 14:17:48 1587

空空如也

空空如也

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

TA关注的人

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