自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 verilog计数分频

【代码】verilog计数分频。

2024-01-09 14:30:52 505

原创 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 499

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

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

2023-12-15 16:21:02 379

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

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

2023-12-15 13:23:10 503

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

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

2023-10-07 12:34:33 830

原创 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 133

原创 一个最简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 124

原创 运动控制中的轴回零

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

2023-08-17 19:24:43 308

原创 运动控制笔记

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

2023-08-14 09:14:44 280

原创 WDM设备栈

WDM设备栈

2023-08-08 10:34:53 141

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

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

2023-06-29 14:24:33 63

原创 各种串行通信总线

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 319

原创 C语言double比较大小

C语言double比较大小。

2023-05-17 14:24:12 752

原创 图形硬件在做什么?

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

2023-05-04 15:08:46 51

原创 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 166

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

Windows系统进程和用户进程

2023-02-06 11:24:39 204

原创 WDM USB电源管理笔记

WDM USB电源管理笔记

2022-12-14 17:22:18 144

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

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

2022-12-09 13:48:47 1641

原创 CopyFiles.inf

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

2022-12-07 13:49:48 157

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

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

2022-12-01 05:35:15 465

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

C++类成员函数指针

2022-11-28 13:28:45 236

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

x86寻址和保护模式笔记

2022-11-27 17:58:56 353

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

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

2022-11-24 17:36:07 175

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

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

2022-11-15 10:59:31 408

原创 Windows驱动开发学习笔记

Windows驱动开发学习笔记

2022-10-11 15:58:10 195

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

Windows驱动开发

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

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

WDM驱动开发

2022-08-09 08:59:36 1106

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

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

2022-07-24 01:34:30 597

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

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

2022-07-24 01:29:02 2210

原创 x86 CPU访问DRAM和PCI

驱动开发

2022-06-18 22:03:33 170

原创 qt使用Windows经典风格

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

2022-06-16 09:42:03 315

原创 Windows彻底删除驱动程序

Windows驱动

2022-06-14 21:48:03 3140

原创 内存映射IO(MMIO)和IO端口

操作系统

2022-06-13 19:07:02 990

原创 可编程逻辑(PL)笔记

对于ZYNQ7,PS是核心,配置PL需要PS参与,PS要先启动,所以配置PL时PS不能掉电;

2022-05-15 17:14:59 93

原创 CentOS7搭建Qt5.14.2开发环境遇到的坑和解决方法

1、首先Windows下载.run文件,移动到Linux上后,chmod +x ,root执行,报错“No marker found, stopped after 1.00 MiB”,解决:在Linux下浏览器下载.run安装文件,然后执行;特别注意,Qt安装时如果选择了Qt Desktop gcc选项,这并不是指会额外安装gcc编译器。2、安装时最好断网,否则会提示输入注册账号,麻烦;3、新建工程编译报错,提示需要C++11支持,这是因为系统的gcc编译器版本太低,参考如下链接解决:cento

2022-05-03 12:53:57 1483

原创 万能Makefile

INC:=-I ./include #every includePath should add -I CPPS:=$(wildcard src/*.cpp)CS:=$(wildcard src/*.c)BUILD_DIR:=buildTARGET:=$(BUILD_DIR)/mainLIBRARY_PATH:=STATIC_LIBRARY:=SHARED_LIBRARY:=LDFLAGS:= #compile shared library should add -shared flagC.

2022-04-28 18:46:22 435

原创 Win32实现阴影窗口

#include <windows.h>#include <math.h>#pragma comment(lib,"Msimg32.lib")LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );LRESULT CALLBACK ForegroundWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA.

2022-04-14 19:49:56 696

原创 Win32按钮设计思路

#include <windows.h>#include <stdio.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);HINSTANCE hInst;#ifdef _DEBUGint main()#elseint WINAPI WinMain(HINSTANCE hInstance, .

2022-04-09 01:02:55 349

原创 Win32实现VS风格的Dockable窗口的思路

#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);HWND hMainWnd;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("Win32DockTest"); HWND .

2022-04-05 12:27:53 252 1

原创 Win32无边框窗口实现拖动和改变大小

#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("NoBorderWnd"); HWND hwnd; MSG .

2022-04-04 14:55:50 2103 1

WrapStdCFile.h

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

2019-12-26

空空如也

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

TA关注的人

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