自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(220)
  • 资源 (1)
  • 收藏
  • 关注

原创 XY2-100的Verilog实现

【代码】XY2-100的Verilog实现。

2025-02-08 14:32:57 505

原创 Verilog边沿检测

【代码】Verilog边沿检测。

2025-01-25 11:19:37 905

原创 关于BAR(PCIE BAR或AXI BAR)的解释

假设某BAR的默认值是xxxx_0000(这里表示8个比特位),其中低4位不可写,可操作的最低位是4,所以该BAR的大小是2^4=16字节;如果系统软件向BAR写0xAF=1010_1111,由于BAR的低4位不可写,所以写完后BAR的值仍是0xA0,而不是0xAF。2、系统软件读BAR,读到的值是0xF0,于是系统软件知道该BAR的最低可操作位是4,该BAR的大小是2^4=16字节,要求。BAR的基地址必须能被其大小整除,即BAR的基地址必须按照其大小字节对齐,比如这里必须是16字节对齐;

2025-01-24 22:40:27 321

原创 Windows内核空间映射到用户空间实现用户进程间通信

【代码】Windows内核空间映射到用户空间实现用户进程间通信。

2025-01-05 11:15:51 251

原创 xilinx xapp1171学习笔记

0x00000000_def0c010对应的AXI地址为0x8100c010,即AXI CDMA中的TAILDESC_PNTR寄存器在AXI。即Host PC向AXI CDMA中的CURDESC_PNTR寄存器写入0x80800000,此值为AXI_PCIE_SG的基地址;1、Host PC向地址0x00000000_def0C000写入0x0A000100,即写AXI_CDMA_LITE基地址,a.Host PC在地址0x00000000_def00000处写入0x0000ccc0_c0000000,

2024-11-21 18:29:42 416

原创 基于AXI PCIE IP的FPGA PCIE卡示意图

如果在上图中的AXI互联IP上再连接一个带AXI Slave接口的BRAM控制器,这个BRAM控制器连接一个BRAM,Host PC在系统主存中分配了一些不连续的内存,Host PC可以将这些内存段的起始地址(当然要先转为PCIE总线地址)写到AXI总线上的BRAM中,这样AXI CDMA读取BRAM,将读取到的PCIE总线基地址写到AXIPCIE寄存器块中的AXIBAR2PCIEBAR_n寄存器中,这样就实现了SG DMA。通过动态改变AXIBAR2PCIEBAR_n寄存器的值,可以实现多通道DMA。

2024-11-20 23:10:09 1338

原创 Windows的FLAT内存模式

/将ds:data_label中的数据送至ax,这里data_label在数据段中虽然是0,但是经过链接器处理后,data_label将成为0~4GB的线性地址中的一个线性地址。代码段,数据段,栈段在程序被操作系统加载后,当应用程序执行时,操作系统会将CS,DS,ES等指向对应的段,这些段的基地址都是0,由于通用寄存器都是32位的,地址总线也是32位的,所以进行间接寻址时不用分段就可以寻址4GB的地址空间。保护模式下,所有段的基地址都是0,段限长是0xFFFFFFFF。

2024-06-25 10:46:54 236

原创 电子技术术语

term,terminology 术语。assert (信号)有效。strobe (信号)选通。

2024-05-10 10:54:59 203

原创 verilog计数分频

【代码】verilog计数分频。

2024-01-09 14:30:52 595

原创 AXI4学习笔记

AXI4和AXI4-Lite是全双工的,读操作包括读地址通道和读数据通道,写操作包括写地址通道、写数据通道、写响应通道。AXI4(AXI4-Full)和AXI4-Lite均输入存储器映射,AXI4支持最大256个数据的突发传输,而AXI4-Lite每次只能传输1个数据。AxLEN(这里的x为R或W)表示突发传输的数据个数,在AXI4的INCR突发模式下,实际的传输数据个数为AxLEN+1。所有信号都是在ACLK的上升沿采样。WVALID/WREADY:写数据的有效性和响应端是否准备好接收;

2024-01-05 11:14:41 615

原创 二叉树(二叉链表)的非递归遍历

【代码】二叉树(二叉链表)的非递归遍历。

2023-12-15 16:21:02 433

原创 Qt点击子窗口时父窗口标题栏高亮设计思路

父窗口调用findChildren得到其子孙窗口的列表,列表元素统一为QWidget*,遍历列表元素,每个元素调用installEventFilter,过滤QEvetn::FocusIn和QEvent::FocusOut事件,做相应处理即刻。

2023-12-15 13:23:10 563

原创 Verilog HDL阻塞赋值和非阻塞赋值笔记

1.begina=b;c=a;endendmodule上面的代码在vivado中综合后的电路为:2.begina

2023-10-07 12:34:33 925

原创 WDM DMA编程笔记

3、我们在AdapterControl中会调用MapTransfer,MapTransfer的作用是为执行DMA传输做准备,注意不是MapTransfer后设备就开始执行DMA了,MapTransfer后,我们可能需要写设备相关寄存器(通过WRITE_PORT/REGISTER_UCHAR之类的HAL函数),以命令设备开始DMA传输,当这样做了后,设备就开始执行DMA传输了,当执行完DMA操作后,设备产生中断,系统会调用我们在StartDevice中设置的中断处理函数。

2023-09-16 17:44:54 226

原创 一个最简verilog代码的分析

在t2时刻,D触发器1的Q输出端是0,D触发器2的Q输出端是0,则D触发器2的D输入端就是0,D触发器1的D输入端是1,此时acc=2'b00;假设在t1时刻,两个触发器的状态都是1,即acc=2'b11,此时半加器1的A端是1,则D触发器1的输入D端就是0,D触发器2的输入D端是0;在t2时刻,D触发器1的Q输出端是0,D输入端是1,D触发器2的Q输出端是1,D输入端是0,此时acc=2'b10;

2023-09-14 11:21:40 271

原创 运动控制中的轴回零

当电机运动至原点时,会触发一个事件,驱动器会将编码器置0,此时编码器位于原点,其值也为0,编码器的值与原点的数值只差为0,于是就可以实现绝对运动了,比如让电机运动到100个脉冲,若当量为1pulse/mm,则当电机运动完成后,编码器的值就是100,电机实际位置也是100mm。理论上,驱动器也可以在电机运动到限位处时产生事件,让编码器的值为对应限位的值,但是由于限位通常是运动轴的极限位置,存在不安全因素,所以,轴回零通常是让电机回到原点后让编码器置0。

2023-08-17 19:24:43 710

原创 运动控制笔记

答:点位运动指点到点的运动,点位运动包括绝对运动和相对运动,指令中都包含了目标位置(相对运动);JOG运动指点动,注意不是点位运动,JOG运动指令中没有目标位置,只要发出了开始运动命令,就一直运动,直到发出停止命令为止。1、点位运动与JOG运动的区别?

2023-08-14 09:14:44 594

原创 WDM设备栈

WDM设备栈

2023-08-08 10:34:53 225

原创 世界坐标系到摄像机坐标系的转换

世界坐标系到摄像机坐标系的转换

2023-06-29 14:24:33 127

原创 各种串行通信总线

485实现半双工通讯,会遇到一个问题,MCU1向MCU2发数据时,并不知道线上是否正传来MCU2数据,因为没有其他线可用来判断对方的收发状态,那么可能也会导致数据冲突。RS-232通常是指RS-232C,它有TXD和RXD,所以是一种全双工串行通信标准/协议,它对信号线的功能、电气特性、物理接口等都做了明确规定,RS-232C采用的是EIA电平,是以正负电压表示逻辑状态,其中-3~-15表示逻辑1,+3~+15表示逻辑0。TTL电平是以高低电平来表示逻辑1和逻辑0,+5V为高电平,表示逻辑1;

2023-05-31 16:04:02 670

原创 C语言double比较大小

C语言double比较大小。

2023-05-17 14:24:12 1243

原创 图形硬件在做什么?

Windows下的GDI函数,比如LineTo,这个函数画一条直线,我们只给它传了一条直线的终点,但是一条直线上有很多个点,这些点是由谁生成的呢?答案是CPU或GPU。如何生成这些点,这是计算机图形学考虑的事情,谁来生成这些点,是图形硬件。生成点的过程被称为绘制或渲染,而点最终需要映射到屏幕上,这个将点映射到屏幕上的过程被称为显示。绘制与显示是完全不同的概念。显示是将显存中的数据转换成电信号后点亮屏幕上的荧光粉使其发光(老式的电子枪显示器),显存中的数据则是由图形硬件生成的。

2023-05-04 15:08:46 97

原创 Windows同步I/O和异步I/O

ReadFile、WriteFile、DeviceIoControl等函数的OVERLAPPED*参数为NULL时为同步I/O,此时这些函数的内部会创建一个事件对象并等待该对象,当驱动程序完成I/O时,会调用IoCompleteRequest设置该事件对象,于是ReadFile、WriteFile、DeviceIoControl就返回。应用程序同步I/O与异步I/O的差异仅在于事件内核对象,同步I/O时,事件内核对象由ReadFile、WriteFile、DeviceIoControl函数内部创建;

2023-04-27 09:44:18 247

原创 Windows系统进程和用户进程

Windows系统进程和用户进程

2023-02-06 11:24:39 301

原创 WDM USB电源管理笔记

WDM USB电源管理笔记

2022-12-14 17:22:18 223

原创 USB协议与Windows USB设备驱动程序笔记

USB协议与Windows USB设备驱动程序笔记

2022-12-09 13:48:47 2443

原创 CopyFiles.inf

用CopyFiles.inf来简要说明INF文件中的SourceDisksNames、SourceDisksFiles、DestinationDirs

2022-12-07 13:49:48 229

原创 x86架构下的PCI地址空间概念

x86架构下的PCI地址空间概念

2022-12-01 05:35:15 603

原创 C++类成员函数指针

C++类成员函数指针

2022-11-28 13:28:45 272

原创 x86寻址和保护模式笔记

x86寻址和保护模式笔记

2022-11-27 17:58:56 383

原创 x86实模式,加载程序为什么要将应用程序加载到16字节对齐的物理内存地址处?

x86实模式,加载程序为什么要将应用程序加载到16字节对齐的物理内存地址处?

2022-11-24 17:36:07 246

原创 Linux硬盘分区与文件系统

硬盘需要先分区,然后用文件系统对各个分区进行格式化后才能使用。在Linux系统中,格式化后的分区需要mount到某个目录下,然后用户才能访问。Linux根分区挂载到/目录下。Linux系统必须有boot分区、根分区、交换分区。交换分区不需要挂载到目录上。分区可以挂载到不同目录下,写文件默认写到根分区中,除非该文件所在目录存放在其它分区中。boot分区存放有操作系统内核、系统引导和启动所必须的文件等。

2022-11-15 10:59:31 462

原创 Windows驱动开发学习笔记

Windows驱动开发学习笔记

2022-10-11 15:58:10 240

原创 PCI设备内存、I/O空间、配置空间

Windows驱动开发

2022-09-14 15:03:50 1386 2

原创 在win7和win10上通过INF文件安装64位WDM驱动

WDM驱动开发

2022-08-09 08:59:36 1325

原创 行为级描述与RTL级描述

行为级描述更多是关注算法,一般不考虑电路的实现和可综合,只定义输入输出关系,通常用过程语句描述硬件电路的行为(电路最终的功能)。RTL级是一种用寄存器级的描述方式来描述电路的数据流,其目的是可综合,RTL级不关心寄存器本身和组合逻辑的实现。...

2022-07-24 01:34:30 740

原创 Verilog HDL中的reg型变量的理解

reg型变量泛指这种类型的变量的值受别的信号的影响,比如选择器,输出信号受输入信号影响,当输入信号改变时,输出信号就会改变,这种影响可以称为“触发”。注意reg型变量并不是指数字电路中的寄存器,数字电路中的寄存器特指由触发器构成的存储器,是一种时序逻辑电路。...

2022-07-24 01:29:02 2411

原创 x86 CPU访问DRAM和PCI

驱动开发

2022-06-18 22:03:33 225

原创 qt使用Windows经典风格

在main函数中添加:a.setStyle(QStyleFactory::create("Windows"));即可。

2022-06-16 09:42:03 476

原创 Windows彻底删除驱动程序

Windows驱动

2022-06-14 21:48:03 4301

WrapStdCFile.h

C标准文件操作函数封装,个人觉得C标准文件操作函数有点繁琐,所以简单封装下。

2019-12-26

空空如也

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

TA关注的人

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