- 博客(21)
- 收藏
- 关注
原创 Windows INF文件语法
INF文件(Information File)是一种文本格式的文件,在Windows操作系统中用于设备驱动程序和软件组件的安装、配置以及系统设置。它包含了安装设备驱动程序所需的详细指令和信息,通过这些指令,Windows系统可以准确地将驱动程序文件复制到适当的位置、修改注册表项、配置服务等操作,从而使设备能够正常工作这部分定义了在整个INF文件中会用到的各种字符串常量,如设备名称、制造商名称、设备ID等信息。通过字符串引用
2025-01-04 14:38:29
1005
原创 PyQt5之带图标QCheckBox实现
这段代码基于PyQt5中的QListView、QStyledItemDelegate、QCheckBox构建了一个简单的图形用户界面应用程序,展示了一个带有可勾选列表项的窗口界面。每个列表项可以有名称、默认勾选状态、图标以及是否显示勾选框等属性,用户能够通过界面上的勾选框对相应的列表项进行勾选操作,并且界面会根据操作实时更新显示状态,数据模型也能正确地处理和保存这些勾选状态的变化。应用场景可以是软件配置选项展示、文件类型筛选等需要用户进行多项选择的情况
2024-12-01 15:33:23
1177
原创 PyQt5之QListView非分层列表实现分层设计
使用 PyQt5 库实现了一个带有层次结构展示功能的图形用户界面应用的示例,主要展示了一个分层列表(HierarchicalList),支持列表项的展开与折叠操作以及根据层次结构进行缩进显示,模拟了类似树形结构在列表视图中的呈现效果,可用于展示具有父子层级关系的数据,如文件目录结构等场景
2024-11-23 16:45:24
1120
原创 PyQt5之动态加载界面实现
使用 PyQt5 创建了一个自定义的窗口应用程序,主要功能是显示一个带有特定文本的窗口,同时在窗口中绘制一个由彩色点组成的圆形图案,并且当窗口大小变化时,文本和圆形图案会自动调整位置和大小以适应新的窗口尺寸
2024-11-10 14:32:09
576
原创 X86架构(九)——保护模式的进入
假设已经从描述符表中选择了一个段描述符,CS描述符高速缓存器已经装载了正确的32位线性基地址,那么,当处理器取指令时,会自动用描述符高速缓存器中的32位线性基地址加上指令指针寄存器EIP中的32位偏移量,形成32位物理地址,从内存中取得执令并加以执行。GDT的线性基地址在GDTR中,每个描述符占8字节,因此,描述符在表内的偏移地址是索引号乘以8。在保护模式下,对内存的访问仍然使用段地址和偏移地址,在每个段能够访问之前,必须先行设置好 GDT 的地址,并加载全局描述符表寄存器(GDTR)
2024-09-29 21:55:05
775
原创 X86架构(八)——32位处理器架构
分支目标预测的目的就是在分支指令执行之前,尽可能准确地预测分支的执行方向和目标地址,以便处理器提前取指并执行可能的目标指令,避免因等待分支结果而导致的流水线停顿。乱序执行是指处理器在执行指令时,不按照程序中指令的顺序依次执行,而是根据指令的依赖关系和处理器的资源情况,动态地调整指令的执行顺序。不过,段的基地址是0x00000000,段的长度是4GB。在32位模式下,为了防止对内存的违规访问,传统的段寄存器(CS、SS、DS、ES)不在保存16位段地址,而是段的选择子,用于选择要访问的段。
2024-09-23 21:25:44
1437
原创 X86架构(六)——光标控制
光标(Cursor)是在屏幕上有规律地闪动的一条小橫线,通常用于指示下一个要显示的字符位置。光标在屏幕上的位置保存在显卡内部的两个中,每个寄存器是8位的,合起来形成一个16位的数值。标准是25 行,每行80个字符。所以,0表示光标在屏幕上第0行第0列,80表示它在第1行第0列,这样算来,当光标在屏幕右下角时,该值为光标寄存器是可读可写的。
2024-09-04 22:53:08
403
原创 X86架构(六)——硬盘访问与控制
在前面几节中,我们总是通过ROM-BIOS从硬盘的主引导扇区读取一段程序并加载到内存运行,但是处理器是如何访问硬盘呢?这是一个值得我们思考的问题OK,我们先看一张图所有这些和计算机主机连接的设备,叫做外围设备,也叫IO设备。IO设备的控制与访问是通过总线技术将多个设备挂载在Bus上,然后通过输入输出控制设备集中器(I/O Controller Hub,ICH)芯片连接不同的总线,并协调各个I/O接口对处理器的访问。
2024-08-31 22:25:52
1355
原创 X86架构(四)——汇编指令与标志寄存器FLAGS
开始执行后,因指令是由地址低到高顺序执行的,所以指令的偏移地址并不影响指令的执行,但是当我们要访问定义在后方的数据时,假设数据的偏移地址为0x012e(在硬盘中),当加载到0x0000:0x7c00后,数据的地址就变成了 0x012e+0x7c00了,这就是为什么要用。,它在编译时计算的汇编地址是0x05,当程序被加载到内存后,它在段内的偏移地址仍然是0x05,任何使用这个标号来访问内存的指令都不会产生问题。但是,如果程序加载时,不是从段内偏移地址为0 的地方开始的,而是0x7c00,,段长512 字节。
2024-08-24 13:25:46
978
原创 X86架构(三)——汇编语言与显卡控制
书接,本章将基于采用汇编语言,编写一段在ROM-BIOS中的程序,帮助理解X86汇编语言与显卡控制原理。
2024-08-21 22:56:56
1370
原创 X86架构(二)——计算机(芯片)的启动过程
计算机的启动总是从上电开始的,在上电过程中处理器会执行硬件初始化的相关操作,以及可选的内部测试,然后将内部所有寄存器的内容初始到一个预置的状态——复位。复位可根据行为的差距分为上电复位、硬件复位、软件复位等。对于Intel 8086来说,复位将使代码段寄存器(CS)的内容为0xFFFF,其他所有寄存器的内容都为0x0000,包括指令指针寄存器(IP)。NOTE如果你好奇8086相关寄存器的使用可访问 X86架构(一)进行相关的涉猎。加电或者复位之后,内存中还没有任何有意义的指令和数据,那处理器该如何
2024-08-15 23:01:34
695
原创 X86架构(一) —— Intel8086内存分段机制
8086 是Intel 公司第一款16 位处理器,诞生于1978 年,是整个Intel 32 位架构处理器(IA-32)的开山鼻祖。
2024-08-14 23:21:22
1154
原创 Windows下GTX1050 从cpu玩家到gpu玩家的转型
Windows(GTX1050)下Tensorflow-gpu环境的搭建即使本人长得这么帅,而且还有点小才华,这个GPU的东西是真的让人烧脑壳。为了帮助后来的同学能够快速的从这个坑里爬出来,我还是决定写下这个博客。1.环境介绍windows 10NVIDIA GeForce GTX 1050tensorflow-gpu == 1.9.0cudnn-9.0-windows10-x64-v...
2019-09-29 23:00:00
888
原创 简单向前神经网络与卷积核心操作详解
简单向前神经网络与卷积核心操作详解之前学习过一下tensorflow,但是有一段时间没做,现在重新捡起这些东西、发现有些东西还是有必要计一下的。人工神经元人工神经元就是使用一个数学函数来对生物的神经元建模。 简单来说,一个人工神经元就是接受一个或者多个输入(训练数据),对它们加和,并产生一个输出(也就是y = w*x + b)。一般来说,这里面的加和指的是 加权求和(每个输入乘上权重,并加上...
2019-09-24 13:05:24
564
原创 基于openmv的色域识别(测距和测角度)
基于openmv的色域识别和巡线代码写在前面:由于最近做比赛和着急,有很多东西都是着急去实现并没有做整理,直到昨天才觉得感觉到内心的空虚,发现知识并没有成型,所以决定来写写总结。做些看似有意义的东西。1、知识储备A、openmv之简介在官网中有详细介绍:https://singtown.com/product/373/openmv-cam-m7/B、openmv之图像知识在这里着重说...
2019-09-20 19:27:46
28372
14
原创 基于STM32F103实现8 Line Sensor Follow的模拟量的读取
基于STM32F103实现8 Line Sensor Follow的模拟量的读取由于最近做比赛啊,我又是一个小白我就很脑壳痛,队友说用啥5路传感器,说比较好用,那没办法啊,就只有自己去实现一波。但是仔细一看啊,这个实验室又没有这个5路传感器但是有8路的,就将就用一下咯,反正都是读取的模拟量。QTR-8A反射传感器阵列介绍官网上说这个传感器的输出格式是8个模拟电压(0-供电电压), 接口使用...
2019-09-04 19:15:47
2174
2
Windows INF 文件编写示例
2024-12-07
PyQt5之带图标QCheckBox实现
2024-12-01
PyQt5之QListView非分层列表实现分层设计
2024-11-23
基于PyQt5的重绘机制实现加载页面
2024-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人