自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

百里杨的博客

孔子曰:温故而知新~~

  • 博客(325)
  • 资源 (30)
  • 收藏
  • 关注

原创 TinyEMU之文件系统构建

BusyBox作为一个集成了众多常用命令和工具的软件,用户可以直接通过命令行调用这些工具,无需单独安装每个工具。这使得BusyBox在嵌入式系统、小型Linux系统或资源受限的环境中特别有用,因为它可以显著减少系统所需的存储空间,同时提供基本的命令行操作和管理能力。此外,BusyBox的集成性也提高了系统的可维护性和易用性。由于BusyBox包含了大量的常用命令,用户无需担心系统中缺少某些必要的工具,可以更加方便地进行系统配置、文件操作、网络管理等任务。

2024-04-22 21:37:38 235

原创 TinyEMU源码分析之访存处理

访存指令,主要有,如下这些:在RISC-V架构中,CPU在处理与内存访问相关的这些指令时,会发出对某地址的访问。这些指令通常涉及加载(Load)和存储(Store)操作,用于从内存中读取数据或将数据写入内存。本文旨在,通过分析访存指令的执行,以理解CPU在执行指令时,是如何发出以及处理这些地址请求的。

2024-04-17 19:52:45 795

原创 TinyEMU源码分析之中断处理

mtimer是实现在M模式下的定时器,它位于CLINT控制器内部。并给该计时器,定义了两个64 位宽的寄存器mtime和mtimecmp。当mtime 中的计数值 >= mtimecmp 中设置的比较值时,计时器便会产生时钟中断。时钟中断,会一直拉高,直到软件重新写mtimecmp 寄存器的值,使得mtimecmp值大于mtime值,从而将计时器中断清除。在TinyEMU源码,riscv_machine.c中riscv_machine_get_sleep_duration函数,如下:当mtimecmp

2024-04-12 19:01:18 1163

原创 RISC-V特权架构 - 中断注入

对于该中断的处理过程,与正常中断处理流程一致,可参考《RISC-V特权架构 - 模式切换与委托》中《中断处理时模式切换》章节。设置mip寄存器中的STIP字段,相当于把M模式下的定时器中断,注入S模式,并由S模式的操作系统处理。因此,我们看起来,像是固件异常处理代码,伪造了一个S模式下时钟中断,这个过程,就叫做中断注入。相对而言是硬件中断,硬件中断,一般是靠GPIO引脚的高低电平来触发。注入中断后,在mip寄存器中,对应bit指示了,发生了何种中断。

2024-04-10 11:49:13 410

原创 RISC-V特权架构 - 模式切换与委托

若medeleg中该异常对应bit为1,表示该异常,需要委托给S模式处理,则更新scause、sepc、stval、mstatus、pc这些S模式寄存器,并切换到S模式;若bit为0,表示不委托,则更新mcause、mepc、mtval、mstatus、pc这些M模式寄存器,并切换到M模式,异常服务程序执行完毕后,通过mret指令返回到之前的模式。因此,系统调用,这种异常的处理,与《2.1 异常处理的模式切换》完全一致,不再赘述。更新寄存器,进入模式,以及返回指令,与异常处理时,完全一致,不再赘述。

2024-04-08 17:58:16 1024

原创 RISC-V特权架构 - 中断定义

但是狭义上的中断,则可以被屏蔽掉,RISC-V 架构定义了CSR 寄存器机器模式中断使能寄存器mie(Machine Interrupt Enable Registers)可以用于控制中断的屏蔽。由上可见,一旦响应中断进入异常模式后,中断被全局关闭再也无法响应新的中断,因此RISC-V 架构定义的硬件机制,默认无法支持硬件中断嵌套行为。除此之外,RISC-V 架构,也允许用户实现自定义的中断控制器,实现硬件中断嵌套功能。曾经提到多个中断,理论上可能存在着中断嵌套的情况。

2024-03-28 11:53:17 1165

原创 TinyEMU源码分析之RISCV启动流程

我们沿着TinyEMU的启动流程,依次讲解,以便理解其启动原理。整个虚拟机,到底从哪里,开始执行第一条指令呢?

2024-03-26 17:39:56 649

原创 TinyEMU源码分析之译码执行

需要注意的是,RISC-V是一个开源的指令集架构(ISA),不同的实现(即不同的RISC-V处理器)可能会在上述基本流程的基础上进行一些优化或扩展。例如,一些高级模拟器可能支持即时编译(JIT)技术,它结合了解释执行和编译执行的特点,能够在运行时动态地将热点代码(频繁执行的代码)编译成机器码,从而提高执行效率。但是,由于执行的是,已经翻译好的机器码,所以执行速度,:在指令执行过程中,如果发生异常或中断(例如,除零错误、外部中断等),RISC-V CPU会暂停当前指令的执行,转而处理异常或中断。

2024-03-21 15:33:04 826

原创 TinyEMU源码分析之虚拟机初始化

这里,主要是,确定Low Dram、CLINT、HTIF、VBUS、PLIC、High Dram的地址空间范围(申请内存),可以结合上面代码,好好看看,比较简单。我们可以在glue函数的,s->pc = GET_PC()位置处,打上断点,检查第一条指令的PC,的确是0x1000;cpu_state的类型为RISCVCPUState结构,该结构中,包含mstatus、mtvec、mscratch等CSR寄存器定义。因为,在执行指令时,必须要知道具体的内存空间,是如何分布的,以便正确访问内存。

2024-03-20 20:35:47 1040

原创 TinyEMU源码分析之配置加载

然后,再将BlockDeviceFile(bf),以及一些函数指针(bf_get_sector_count、bf_read_async、bf_write_async),用于初始化BlockDevice(bs)。第二轮,s->file_index=2,加载kernel-riscv64.bin,到p->files[VM_FILE_KERNEL].buf。第一轮,s->file_index=0,加载bbl64.bin,到p->files[VM_FILE_BIOS].buf。

2024-03-20 16:49:39 966

原创 TinyEMU之RISCV-PK编译

RISCV-PK(RISC-V Proxy Kernel),是一个轻量级的应用程序执行环境,可以承载静态链接的RISC-V ELF二进制文件。它旨在支持有限I/O能力的捆绑RISC-V实现,从而通过将I/O相关的系统调用代理到主机来处理它们。riscv-pk是一个代理内核,包含 bootloader,可以帮助模拟一个系统环境来运行Linux系统。这里,我们可以简单理解为,就是把riscv-pk当作bootloader,bootloader的实际工作比较复杂,但是它最主要的工作就是启动 Linux内核。

2024-03-14 20:25:56 823

原创 TinyEMU之Linux Kernel编译

将diskimage-linux-riscv-2018-09-23\patches\config_linux_riscv64,拷贝到riscv-linux-riscv-linux-4.15目录下,并修改文件名为.config。编译完成后,在riscv-linux-riscv-linux-4.15目录下,生成了内核镜像文件:vmlinux。,我们这里与TinyEMU例子中,使用的Linux 4.15版本保持一致。使用file命令,查看其文件格式,为RISC-V的ELF格式。最后,查看编译器版本,以验证安装。

2024-03-12 17:14:19 1113

原创 TinyEMU模拟器基础系列教程

TinyEMU是Fabrice Bellard写的一个RISC-V和X86模拟器,它的目的是小而简单,同时又完整。3《TinyEMU之Linux Kernel编译》为了更好的学习研究,我们分如下章节进行介绍。2《TinyEMU之Uboot编译》4《TinyEMU之文件系统构建》5《TinyEMU之配置文件解析》6《TinyEMU之译码执行》

2024-03-12 11:49:42 470

原创 解决Putty自动断开问题

将Session先Load后,再修改seconds,最后Save。这个seconds才能被保存,下次直接使用即可。我们很多人,包括那些专职维护的人员,都是直接点击窗口上的关闭按钮,完全没有理会弹出警告窗口,直接点击了 OK。我们在成功利用putty登录主机后,我们就可以完成大部分的工作。最后要关闭窗口了,这又要怎么做呢?这样做是不对的,这不是正确的注销方式,直接关闭窗口后,你的登录其实还在服务器上,占用了系统的资源。使用Putty登陆到远程主机后,如果长时间没有做任何操作,服务器会与本地客户端断开连接。

2024-03-07 14:38:58 596

原创 让Putty支持Tab页(多连接管理)

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权。随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windows x86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。

2024-03-07 11:37:11 425

原创 TinyEMU之源码编译与使用

原名为riscvemu,于2018-09-23,改为TinyEMU。TinyEMU是Fabrice Bellard写的一个RISC-V和X86模拟器,它的目的是小而简单,同时又完整。Fabrice Bellard正是开发鼎鼎大名QEMU的作者。支持RV128IMAFDQC基本ISA(用户级ISA版本2.2,特权架构版本1.10)的RISC-V系统仿真器包括:32/64/128位整数寄存器32/64/128位浮点指令(使用SoftFP库)压缩指令动态XLEN变化。

2024-03-05 21:04:15 1038

原创 RISC-V特权架构 - 机器模式下的异常处理

RISC-V 定义的三种模式 User、Supervisor 和 Machine,均可发生异常,但是只有特权模式 **Supervisor** 和 **Machine** 才能处理异常,因为处理异常需要 CSR 寄存器。默认情况下,RISC-V所有的异常,都在Machine模式下处理。除此以外,还可以通过委托机制,将异常委托给Supervisor模式下处理。

2024-03-01 17:47:37 1681

原创 RISC-V特权架构 - 中断与异常概述

中断(Interrupt)机制,即处理器核在顺序执行程序指令流的过程中,突然被别的请求打断而中止执行当前的程序,转而去处理别的事情,待其处理完了别的事情,然后重新回到之前程序中断的点,继续执行之前的程序指令流,其要点如下。打断处理器执行程序指令流的“别的请求”便称之为中断请求(Interrupt Request),“别的请求”的来源便称之为中断源中断源通常来自于外围硬件设备。处理器转而去处理的“别的事情”便称之为中断服务程序中断处理是一种正常的机制,而非一种错误情形。

2024-03-01 10:55:08 1042

原创 RISC-V特权架构 - CSR寄存器

我们知道,CSR寄存器被划分为4个级别:用户级、监管级、超级监管级、机器级。接下来,我们看看各个权级,具体定义了哪些寄存器。

2024-02-29 11:31:50 1675 1

原创 RISC-V特权架构 - 特权模式与指令

例如,当多个处理器或线程同时访问和修改共享内存时,如果没有适当的同步机制,就可能出现一个处理器读取到的内存值是另一个处理器尚未写入的旧值的情况,从而导致程序行为的不正确。它会从特定的CSR寄存器(如sstatus、sepc等)中恢复监督模式的状态信息,并将sepc寄存器中的值复制到程序计数器(PC),从而确保处理器从正确的地址开始执行用户模式的程序。需要注意的是,sret指令只能在监督模式下执行,并且只有在软件修改了相应CSR寄存器的字段以指定要返回到的模式之后,才能安全地使用该指令进行返回操作。

2024-02-27 17:53:01 1757

原创 RV64 - 64位地址指令

那么RV32G 指令的64 位版本 – RV64G 指令,其示意图,如下(图9.1 至9.4)所示:灰色部分是将操作扩展到64 位寄存器的旧RV32指令,而深(红)色部分是RV64的新指令。由图可见,将RISC-V 扩展为64 位只需加入少数指令:32 位指令的字(word)、双字(doubleword)和长字(long)版本,并将包括PC 的所有寄存器扩展为64 位。因此,RV64I 中sub指令的操作数是两个64 位数,而非RV32I 中的32 位数。

2024-02-26 21:04:34 469

原创 RISC-V指令集之RV32C

RV32C基于32位寄存器的RISC-V架构,同时增加了压缩指令集(C),可以将32位指令压缩为16位或更短的指令,从而减少指令存储和传输的开销,提高指令的缓存效率,同时降低功耗和成本。尽管处理器设计者不能忽略RV32C 指令,但能通过以下技巧降低实现开销:在执行指令前通过一个译码器将所有16 位指令翻译成相应的32 位指令。此外,16 位指令仅对汇编器和链接器可见,并由它们决定是否将标准指令替换为相应的短指令。本文中的这些指令较多,具体指令详细含义,见RISC-V指令手册,不再赘述。

2024-02-26 17:57:14 453

原创 RISC-V指令集之RV32A

预订取数读出一个内存字,写入目的寄存器,并记录该内存字的预订信息。RV32A 是可选的,一个不支持它的RISC-V 处理器会更简单。AMO 指令对内存中的操作数执行一次原子操作,并将原内存值写入目的寄存器。简洁编程语言开发者假定底层的体系结构提供原子的比较-交换操作:比较某寄存器值与用另一寄存器寻址的内存值,若相等,则将第3。个寄存器的值与内存值交换。本文中的这些指令较多,具体指令详细含义,见RISC-V指令手册,不再赘述。RV32A是RISC-V规范定义的用于原子操作的指令集。

2024-02-26 17:18:45 351

原创 RISC-V指令集之RV32FD

尽管RV32F 和RV32D 是独立的可选指令集扩展,但它们通常同时使用,因此我们一起介绍。

2024-02-26 16:51:17 370

原创 RISC-V指令集之RV32M

RV32M指令集很简单,指令条数很少,主要包含乘法、除法两类指令。

2024-02-26 16:16:52 380

原创 RISC-V指令集之RV32I

RV32I数据读写指令,可以从内存中加载数据到寄存器,或者将寄存器值存储到内存。在RISC-V 的规范里面,RV32I定义了32 个通用寄存器,其中31个是常规寄存器,1个恒为0值的x0寄存器。RV32I指令集,一共包含了47条指令,分别涵盖了数据传输、算术运算、逻辑运算、分支跳转、比较判断等功能。通过上述内容的学习,我们了解了RV32I指令集有哪些指令,以及这些指令的字节码(机器码)构成。这里展示了RV32I指令集的每一条指令,并且每条指令的具体格式,以及指令类型。RV32I具备的所有指令,如下所示。

2024-02-01 21:08:13 1122

原创 RISC-V指令格式

在RISC-V指令集架构中,G表示通用组合,全称为RV32G(32位)或RV64G(64位)。也就是说,RISC-V的所有指令集合名称,全部是以RV打头,加位宽,加模块名来组成的,后续识别也就很简单了。因此,RV32I,表示RISC-V的32位整数指令集,它是RISC-V 的核心,是冻结的,永远不会改变。I表示基础整数指令集;因此,G是RISC-V指令集架构中通用处理器所包含的指令集的表示。RV32G,表示32位RISC-V通用处理器,指令集组合。我们看看RISC-V的命名规范,是如何定义的,就明白了。

2024-01-31 18:19:47 1695

原创 RISC-V指令集简介

RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。RISC-V包含一个非常小的基础指令集和一系列可选的扩展指令集。

2024-01-30 15:59:39 1170

原创 RISC-V指令集基础系列教程

RISC-V(发音为“RISC five”)的目标,是成为一款通用的指令集架构(Instruction Set Architecture,ISA)。RISC-V 是一款与众不同的ISA,不仅因为它年轻(它诞生于2010 年,而其他ISA 大多诞生于1970 或1980 年代),而且因为它开放。与过去几乎所有架构不同,其未来不受任何一家公司的兴衰或心血来潮的决策所影响(过去许多ISA 因此消亡)。相反,RISC-V 属于一个开放的、非营利性质的基金会。

2024-01-30 11:35:50 542

原创 管理命令集之一

管理命令集(Admin Command Set),定义了可以提交到Admin Submission Queue的命令,这些命令以操作码(Opcode)的形式,进行编码,如下表所示:O/M定义:O = 可选,M = 强制未列出的操作码被保留在命令的“Dword 0”中Opcode00 ~ 11h,命令主要负责I/O Queue与Firmware等管理工作。80 ~ BFh,特定于I/O命令集。C0 ~ FFh,特定于供应商的。

2024-01-25 20:21:12 917

原创 NVMe系统内存结构 - 命令聚合与仲裁

Fused Operations(聚合操作),是指通过“融合”两个更简单的命令,来实现更复杂的命令。这个功能是可选的,Identify Controller Data Structure表明了对该特性的支持。在聚合操作中,有以下要求:这两个命令,应作为一个原子单元按顺序执行;控制器应表现为,在这两个命令之间,没有执行过其他操作。在这两个命令中遇到错误时,操作结束。如果序列中的第一个命令失败,那么第二个命令将被中止。如果序列中的第二个命令失败,那么第一个命令的完成状态是序列特定的。LBA ra

2024-01-19 12:04:42 828

原创 NVMe系统内存结构 - 完成消息格式

命令需要被提交到Submission Queue中,以便NVMe控制器执行,在执行结束后,会有对应的完成状态,放入到Completion Queue中。NVMe命令长度均为64Byte,对应的Completion消息长度均为16Byte。

2024-01-18 10:16:57 964

原创 NVMe系统内存结构 - Meta Data

端到端:一端是主机的内存空间,一端是SSD的闪存空间。我们需要保护的是用户数据。主机与SSD之间,数据传输的最小单元是逻辑块(Logical Block,LB),每个逻辑块大小可以是512/1024/2048/4096等字节,主机在格式化SSD的时候,逻辑块大小就确定了,之后两者就按这个逻辑块大小进行数据交互。数据从主机到NVM(Non-Volatile Memory,目前一般是闪存,后面我就用闪存来代表NVM),首先要经过PCIe传输到SSD的控制器,然后控制器把数据写入闪存;反过来,主机想从闪

2024-01-16 21:09:30 979

原创 NVMe系统内存结构 - SGL

Scatter Gather List(SGL)是一个数据结构,用以描述一段数据空间,这个空间可以是数据源所在的空间,也可以是数据目标空间。SGL首先是个List,是个链表,由一个或者多个SGL Segment组成,而每个SGL Segment又由一个或者多个SGL Descriptor组成。

2024-01-16 15:51:48 1095

原创 NVMe系统内存结构 - PRP与PRP List

NVMe把Host的内存划分为一个一个页(Page),页的大小可以是4KB,8KB,16KB… 128MB。物理内存页面大小,由主机软件在“CC.MPS”中配置。Physical Region Page (PRP),PRP是指向物理内存页(Page)的指针。下图,显示了由Page Base Address和Offset组成的PRP的布局。

2024-01-12 15:29:57 1299

原创 NVMe系统内存结构 - 命令格式

Head和Tail条目指针,对应于Completion Queue Head Doorbells和Submission Queue Tail Doorbells。doorbell寄存器由host软件更新。Tail一个Queue条目的提交者,使用当前Tail条目指针,来标识下一个空闲Queue条目空间。提交者将新条目,提交到Tail指向的空闲Queue条目空间后,对Tail条目指针加1。如果Tail条目指针增量,超过Queue大小,则Tail条目指针将归零。

2024-01-08 17:44:07 1090

原创 NVMe控制器寄存器

NVMe控制器寄存器,位于配置空间BAR0与BAR1,所映射的内存空间中。BAR0为低32位,BAR1为高32位,一起组合为64位内存地址,表示PCIe设备内存空间的基址。NVMe控制器寄存器,就位于该内存空间中,并且host访问这些寄存器,应按原始宽度或32位对齐来访问。由于NVMe控制器寄存器,位于PCIe设备内存空间中,因此上表中Start和End列,是相对于PCIe设备内存空间基址的偏移。

2024-01-03 15:29:23 1173

原创 NVMe配置空间寄存器

NVMe基于PCIe协议,因此也必须满足PCIe协议的基本要求。本节主要介绍,NVMe设备的配置空间组成,比如PCI Header、PCI Capabilities和PCI Express Extended Capabilities,并且还有NVMe设备的附加要求。NVMe设备,如下所示:可以看到有,1个PCI Header,4个Capability,1个Extended Capability,接下来,我们详细介绍。

2023-12-26 15:39:08 1168

原创 NVMe的Queue与命名空间

NVM Express (NVMe)是一个寄存器级接口,用来实现主机软件与非易失性存储器子系统通信。该接口针对企业和客户端固态驱动器进行了优化,通常附加到PCI Express接口。该接口的目标是在客户端和企业系统中使用。此外,该规范还定义了一个用于NVM子系统的标准命令集。

2023-12-22 17:50:43 1028 1

原创 NVMe前世今生

目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口,接口协议为 AHCI,是 Intel 联合多家公司研发的系统接口标准。AHCI 最大队列深度为 32,即主机最多可以发 32 条命令给 HDD 或 SSD 执行,在 HDD 时代整个性能瓶颈在硬盘端,而不是接口和协议端,所以 AHCI 可以很好的匹配 HDD。

2023-12-19 16:08:40 1066

NVMe2.0协议规范文档

NVMe2.0协议规范文档,下载自NVMe官网。

2024-01-25

NVMe 1.1协议规范培训PPT

NVMe 1.1协议规范培训PPT

2024-01-25

NVMe 1.2协议规范文档

NVMe 1.2协议规范文档

2024-01-25

NVMe 1.3中文版翻译

NVMe 1.3中文版,翻译自开源英文版。这是word版,带导航目录标签。

2024-01-25

NVM-Express-1.1a协议规范文档

NVM-Express-1.1a协议规范文档

2024-01-25

DOSBox-MASM.rar

DOSBox+MASM用于搭建汇编开发环境,参考文章《DOSBox和MASM汇编开发环境搭建》:https://blog.csdn.net/zyhse/article/details/133786703

2023-10-12

AMD处理器编程指导手册

Preliminary Processor Programming Reference (PPR) for AMD Family 17h Model 31h,Revision B0 Processors,AMD发布的编程指导手册,开放文档。

2023-02-18

CodeEditor源码文件

来自于QT5.14.2的官方开源例子,重点是CodeEditor类可支持行号显示,效果不错。效果参考博文:https://blog.csdn.net/zyhse/article/details/128223191

2022-12-07

CXL2.0协议规范文档-中文版

开放的CXL2.0协议规范中文版,使用百度翻译而成。需要与英文版(https://download.csdn.net/download/u011832525/86723168)对照起来阅读,效果更佳。

2022-10-27

CXL1.1协议规范文档-中文版

开放的CXL1.1协议规范中文版,使用百度翻译而成。需要与英文版(https://download.csdn.net/download/u011832525/86723164)对照起来阅读,效果更佳。

2022-10-27

PCIe5.0协议规范文档

开放的PCIe5.0协议规范文档

2022-09-27

CXL3.0协议规范文档

开放的CXL3.0协议规范文档

2022-09-27

CXL2.0协议规范文档

开放的CXL2.0协议规范文档

2022-09-27

CXL1.1协议规范文档

开放的CXL1.1协议文档

2022-09-27

SourceInsight4.0仿VS2013代码风格主题

SourceInsight4.0仿VS2013代码风格主题,效果可参考博文:https://blog.csdn.net/zyhse/article/details/122972129

2022-02-16

JUDE-Community-v5.5.2.rar

免费的UML工具

2021-07-20

embos实时操作系统用户指南&参考手册.rar

该文档为embos帮助文档,内含中文版和英文版。英文版下载自官网,中文版为有道翻译,可以这2个结合起来看,会比较好。

2021-06-22

2020最新个税计算器打包脚本

2020最新个税计算器打包脚本,内含exe、打包脚本,以及生成的安装包。 软件基于Qt开发,源码地址:https://gitee.com/bailiyang/cdemo/tree/master/Qt/55TaxCalculator/TaxCalculator

2020-10-19

2020最新个税计算器免安装版

2020最新个税计算器免安装版,自己基于Qt开发,开源,源码地址:https://gitee.com/bailiyang/cdemo/tree/master/Qt/55TaxCalculator/TaxCalculator

2020-10-19

2020最新个税计算器安装包

2020最新个税计算器安装包,基于Qt开发,源码地址:https://gitee.com/bailiyang/cdemo/tree/master/Qt/55TaxCalculator/TaxCalculator

2020-10-19

cachesize-master.zip

这是google开源的一个java小项目,代码有几百行,主要实现java获取CPU的Cache信息,Cache Size,Cache Line Size等。 底层使用C语言操作CPUID,获取cache,然后使用JNI技术,实现java调用C,java拿到Cache信息后,并进行class封装,以供java语言调用,获取相应Cache信息。代码很简单,感兴趣,可以看看。 git地址:https://github.com/xdx526/cachesize

2020-09-23

processhacker-2.39-sdk.zip

本资源为Process Hacker的SDK,包括lib、头文件。基于此SDK可以开发插件,并在Process Hacker中使用该插件。 Process Hacker是一款强大的系统进程管理工具,开源,并且还可以显示CPU、GPU、IO、内存等相关使用信息。 官网地址:https://processhacker.sourceforge.io/ git地址:https://github.com/processhacker/processhacker

2020-09-23

Flops-master.zip

该资源为源码,主要实现对x86/x64处理器,测试其浮点运算(floating-point operations per second)性能。FPU是专用于浮点运算的处理器,即对FPU进行测试。该源码支持Linux/Windows。 git地址:https://github.com/Mysticial/Flops

2020-09-13

processhacker-2.39-src.rar

本资源为源码。 Process Hacker是一款强大的系统进程管理工具,开源,并且还可以显示CPU、GPU、IO、内存等相关使用信息。 官网地址:https://processhacker.sourceforge.io/ git地址:https://github.com/processhacker/processhacker

2020-09-13

processhacker-2.39-bin.rar

本资源为win下免费开源软件,直接从官网下载的。 Process Hacker是一款强大的系统进程管理工具,并且还可以显示CPU、GPU、IO、内存等相关使用信息。 官网地址:https://processhacker.sourceforge.io/ git地址:https://github.com/processhacker/processhacker

2020-09-13

AMD_block_prefetch_paper.pdf

AMD 20年前的古董文档《使用块预取优化内存性能》,Using Block Prefetch for Optimized Memory Performance

2020-09-13

qt-vsaddin-msvc2017-2.4.3-rev.07.vsix

使用VS2017开发Qt的插件,安装后,可在VS中进行编码、编译、运行。VS插件。VS插件。VS插件。VS插件。VS插件。

2020-09-13

boost_reflect-master.rar

Boost Reflect是一款基于C++实现的开源反射库,类似java反射。 不过年代稍远,最近的更新也是8年前了。 git地址:https://github.com/bytemaster/boost_reflect

2020-09-13

Win64OpenSSL-1_0_2u.rar

该资源为OpenSSL的window版安装包,安装后,在安装目录下有lib、dll、头文件,开发时可以直接进行调用。免去了,编译OpenSSL源码的麻烦。

2020-09-13

rttr-0.9.5-win64-vs2015.7z

RTTR是基于C++的一款开源库,其支持反射性编程,类似java反射。并且,RTTR 还提供了一个动态库插件,可以非常快速地用 C++ 实现插件式架构,简单定义某个动态库需要暴露的类型以及方法名,就可以通过反射机制加载到对应的函数或者对象。该资源包含lib、dll、头文件,从官网上下载请放心。直接加入自己的工程中就可以使用。 官网地址:https://www.rttr.org/ 参考博客:https://blog.csdn.net/xianzongtanxun/article/details/103717891

2020-09-13

Depends.rar

这款软件用于查看exe依赖的dll,是否被正确加载,软件开发的必备利器。支持win32/win64。

2020-09-13

SourceCounter.rar

这是一款代码行数统计工具,支持30多种代码格式,能够统计代码行数、注释、空行、文件大小等数据,操作更是简单,非常实用,让统计代码更加方便。

2020-09-13

ResourceHacker.rar

Resource Hacker 主要用于察看、反汇编和取代 Windows 32 位可执行程序中的资源,支持 Delphi 5 和 C++ Builder。这个软件可以修改或者替换exe、dll等各种文件中的内容。 官网地址:http://www.angusj.com/resourcehacker/

2020-09-13

PYG密码学综合工具V5.0.0.5.rar

该软件支持常规的AES/DES/RSA/HASH加密,解密。可用于平时开发中,简单加解密的验证测试。

2020-09-13

cpu-z_1.92中文版.rar

Cpu-Z是一款计算机的CPU检测软件,可以准确显示CPU、Cache缓存、主板、内存、显卡等详细硬件信息。支持win32/win64系统。

2020-09-13

InnoSetup5.5.9中文帮助.rar

InnoSetup5.5.9中文帮助chm文档,详细介绍了安装脚本中各个字段含义,以及其他打包说明。

2020-09-13

FastMemcpy-master.zip

该资源为源码,分别使用AVX和SSE指令实现的快速拷贝函数,开源,支持linux和win。git地址:https://github.com/skywind3000/FastMemcpy

2020-09-13

openssl-1.0.1a.tar.gz

openssl-1.0.1a源码,可在linux下进行编译安装,参考博客:https://www.cnblogs.com/rocedu/p/5087623.html

2020-09-13

OpenHardwareMonitor-v0.9.5-code.zip

Open Hardware Monitor是一款使用C#开发的开源软件,本资源为C#源码。可以实时检测并显示电脑重要部件温度的软件。除此之外它还可以显示风扇转速、电压、内存、GPU、CPU负载和时钟频率等信息。 官网地址:https://openhardwaremonitor.org/ git地址:https://github.com/openhardwaremonitor/openhardwaremonitor

2020-09-13

OpenHardwareMonitor-v0.9.5.zip

Open Hardware Monitor是一款使用C#开发的开源软件,可以实时检测并显示电脑重要部件温度的软件。除此之外它还可以显示风扇转速、电压、内存、GPU、CPU负载和时钟频率等信息。 官网地址:https://openhardwaremonitor.org/ git地址:https://github.com/openhardwaremonitor/openhardwaremonitor

2020-09-13

空空如也

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

TA关注的人

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