2022年2月11日
1. USB接口特点 简单易用 使用统一制式电缆和连接进行外设扩展,即插即用,支持热插拔 稳定性佳 使用差分信号传输,较强的纠错能力,多种差错管理和恢复机制 速度选择 1.5Mbps/ 12Mbps/ 480Mbps/ 5Gbps/ 10Gbps/ 20Gbps多种等级 使用灵活 提供了适合各种应用的传输类型、协议 应用广泛 协议标准向下兼容,系统集成驱动,扩展性强,连接支……
阅读全文
2022年1月27日
1. 序章 早在除夕之夜说过自己萌生了设计一个简单的外设来进行Windows驱动探索的想法。并且看中了USB外设,因为USB接口使用方便,硬件设计也相对简单。 春节期间恰好遇到了电子工程世界上兆易创新做的评测活动,评测活板子使用MCU是GD32L233,这颗芯片支持USB2.0, 正好可以……
阅读全文
2021年12月25日
时间好像真的是具有加速度的,越发的觉得一年的时间越来越短。新冠疫情笼罩之下这两年的记忆感觉像是被挖空了一样。这一年的生活解节奏就是按部就班。 1. 工作和学习 能想起来的比较记忆深刻的事情大概就是上半年有点时间研究multi-gpu相关的技术,虽然没啥实质性的研究成果,但是对于WDDM框……
阅读全文
2021年12月6日
1. WinDbg扩展有哪些用处? 在使用WinDbg进行设备驱动调试时,有时候如果存在某些特定的工具那么会让我们的调试过程变得更加的顺畅。比如对于PCI设备,我们想去读取设备物理地址某一段的值然后把它保存下来。我们当然可以使用!dd这个命令来做,读取少量的数据当然也还没啥问题,如果读……
阅读全文
2021年11月20日
对于Windows设备驱动开发者来说,经常就是一台调试机器和一台被调试机器,使用Debug Cable连接或者使用网络连接,就像下图的这种模式。 正常情况下这两台机器都是在我们身边的。那么重启Target机器也就非常的容易。但是有些特殊情况下,这两台机器都不在身边,是通过网络远程连接……
阅读全文
2021年10月23日
经典的GPU架构都是Immediate mode GPU.主要的流程就是vertex shader 和 pixel shader顺序执行。其数据流如下图所示: 执行流程可以用伪代码表示如下。 foreach(triangle) foreach(fragment) load FBO data (color, depth, ...) call fragment shader store new FBO data Immediate mode是Full Screen的,所以对于每个primitive都直接提交渲染。这样Pipeli……
阅读全文
2021年7月10日
首先可以看看imgui的目录结构: backends中的文件: 这里举例在一个简单的工程中使用imgui。 首先下图中框中的文件就是从上述的两个图中复制过来的。原本的工程中只有一个Transformation.cpp。 包含头文件 #include "imgui/imgui.h" #include "imgui/imgui_impl_win32.h" #include "imgui/imgui_impl_dx11.h" 在进入消息循环之前 // Setup Dear ImGui context IMGUI_CHECKVERSION(); ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); io.ConfigFlags |= ImGuiConfigFlags_NavEnableSetMousePos;……
阅读全文
2021年5月23日
再谈延迟,带宽和吞吐量之前,先看看在之前分享的文章中我们说过这样的一个例子: GPU内存架构和命令的处理 上面的例子以同时期的i7-2600k和GeForce GTX480来进行对比。i7-2600k的存储带宽在表现好的时候可以达到19GB/s, GTX480的存储带宽则是将近180GB……
阅读全文
2021年2月15日
Draw.io是GitHub上的一个开源的免费流程图绘制工具,功能非常的丰富,使用上和ProcessOn基本上是一致的,但是ProcessOn是收费的。 Draw.io也有在线网页版,可以直接访问(https://www.draw.io/)进行使用。也有桌面版,桌面版下载地址:ht……
阅读全文
2021年2月15日
首先,我想说明一下,虽然文章的标题是 How GPU Works,但是我无意再去重复GPU工作的各个stage,流水线这些概念。本文会深入到更底层一点:GPU是如何执行shader的。在本文中,我除了GPU执行shader的方式之外,还有稍微涉及一些多核心,SIMD,超线程这些过去大家看上去貌……
阅读全文