自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(556)
  • 收藏
  • 关注

原创 Excel使用 CONCATENATE 函数或“&”符号拼接多列数据

如果你想在Excel中拼接多列数据,你可以使用Excel的函数来实现。其中一个常用的函数是`CONCATENATE`函数或者更简洁的`&`符号。这将达到与 CONCATENATE 函数相同的效果,但使用了更简洁的语法。然后,你可以将这些公式拖动或复制到其他单元格,以便拼接整个数据集中的多列数据。这将拼接 A 列、B 列和 C 列的数据,以及一些额外的文本。1. **使用 CONCATENATE 函数:**2. **使用 & 符号:**

2024-04-16 14:07:15 51

原创 Python创建文件并写入内容

Python的文件操作来创建一个.py文件并写入内容。

2024-04-15 18:39:07 71

原创 Python调用random模块choice()函数随机选择数组中的元素

模块来获取数组中的随机值。如果数组是列表或者其他类似的序列,你可以使用。函数来随机选择一个元素。中随机选择一个元素,并将其赋值给。在Python中,你可以使用。

2024-04-15 17:37:20 56

原创 寄存器偏移地址介绍

总的来说,寄存器偏移地址是用于访问内存映射设备或寄存器映射设备中特定寄存器的地址偏移量,通过与基地址相加,可以确定要访问的寄存器的物理地址,从而进行读写操作。为了方便软件开发者访问设备的寄存器,通常会提供寄存器映射表,该表列出了每个寄存器的偏移地址以及其功能描述,开发者可以根据表格中的信息进行寄存器的读写操作。要访问特定寄存器,通常需要将基地址与寄存器偏移地址相加,生成要访问的寄存器的物理地址,然后通过该物理地址进行读取或写入操作。是该虚拟设备的基地址,所有寄存器的偏移地址都是相对于这个基地址而言的。

2024-04-15 10:07:18 299

原创 AXI4总线信号

AXI4(Advanced eXtensible Interface 4)是一种高性能、低功耗、可扩展的总线协议,由ARM公司推出。它被广泛应用于各种数字系统中,特别是嵌入式系统中。AXI4总线协议定义了一套规范,用于描述多个主设备和多个从设备之间的通信机制。主设备是指能发起读写事务的设备,而从设备是指接收并响应这些事务的设备。AXI4总线协议提供了高带宽、低延迟的数据传输方式,同时支持多个主设备和多个从设备的并发操作。

2024-04-10 11:32:27 542 1

原创 Visual Studio Code SSH 连接远程服务器

2. **配置 SSH**:在 VS Code 中,点击左下角的 "Remote Explorer" 图标,然后点击上方的齿轮图标,选择 "SSH Targets: Open SSH Config"。3. **连接远程服务器**:在 "Remote Explorer" 中,点击上方的连接图标,选择 "Connect to Host"。4. **免密登录**:一旦连接成功,VS Code 将使用你的私钥文件进行身份验证。确保将 "服务器IP地址或域名"、"用户名" 和 "本地私钥文件路径" 替换为实际的值。

2024-04-09 09:51:29 356 2

原创 Python 的 subprocess.Popen 指定目录启动程序输出结果写入文件

标准输出(stdout)和标准错误(stderr):子进程的输出会被解码为文本,而不是字节流。标准输出(stdout)和标准错误(stderr):子进程的输出会被解码为文本,而不是字节流。标准输入(stdin):如果你向子进程发送文本数据,Python 会将其编码为字节流并传递给子进程的标准输入。的作用是在 Python 中使用文本模式处理标准输入、输出和错误流,使得处理文本数据更加方便。的作用是在 Python 中使用文本模式处理标准输入、输出和错误流,使得处理文本数据更加方便。

2024-03-27 11:07:44 955

原创 Python subprocess 模块poll() 函数、wait() 函数、terminate() 函数介绍

一、poll()一、poll()

2024-03-26 17:11:32 504

原创 python修改txt文件指定行内容

在这个示例中,我们首先读取了文件的所有行内容,然后修改了第三行(索引为2)的内容为 "New content for line 3",最后将修改后的内容写回到文件中。

2024-03-22 10:49:06 280

原创 python实现 linux 执行命令./test启动进程,进程运行中,输入参数s, 再输入参数1, 再输入参数exit, 获取进程运行结果重定向写入到文件

在这段代码中,我们使用 `subprocess.Popen` 来启动 `./test` 进程,并使用 `stdin.write` 方法向进程输入参数,通过 `stdin.flush` 确保输入被发送到进程。要在 Python 中实现执行 `./test` 启动进程,并在进程运行中依次输入参数 `s`、`1`,最后输入参数 `exit`,并将进程的输出结果重定向写入到文件,你可以使用 `subprocess` 模块。你可以直接执行这段代码来实现输入参数、控制进程功能,并将进程的输出结果写入到文件中。

2024-03-21 18:52:41 369

原创 Python测试框架Hypothesis 常用函数、方法

Hypothesis 是一个基于属性的测试框架,提供了各种函数和方法来帮助生成测试数据、定义属性和执行测试。

2024-03-21 17:14:30 306

原创 Python基于属性的测试库Hypothesis 介绍和使用

测试用例中我们定义了两个随机浮点数作为输入,并使用 `assert` 语句验证了被测函数 `divide` 的行为是否满足属性(即除法的逆运算)。在 Python 中,Hypothesis 是一个基于属性的测试库,它用于支持测试驱动开发(TDD)和属性-based testing。它提供了丰富的数据生成策略,使得测试用例可以覆盖更广泛的输入空间,从而提高测试的质量和全面性。通过这种方式,Hypothesis 将自动生成大量的随机测试数据,并运行测试函数,以便发现潜在的 bug 或异常情况。

2024-03-21 16:44:42 379

原创 Python生成器模式

在 Python 中,生成器模式的实现原理主要基于生成器函数和迭代器协议。生成器函数是一种特殊的函数,它可以在需要时生成值并保持函数的执行状态,从而能够动态生成数据序列。生成器函数使用yield关键字来产生值,每次调用生成器函数时会返回一个生成器对象。

2024-03-20 10:59:39 546

原创 Linux普通用户,上传文件为何必须选择普通用户所在目录

这是出于安全性考虑的一种限制,目的是确保用户无法随意修改系统文件或其他用户的文件。当一个普通用户登录时,其当前工作目录通常是其家目录,因此上传文件时会默认保存到当前工作目录,即普通用户所在目录。如果想要上传文件到其他目录,需要确保该目录对应的权限允许该用户进行写操作,否则会受到权限拒绝的错误。在 Linux 中,超级用户(root 用户)可以在系统的任何目录进行写操作,因为超级用户拥有最高权限。但对于普通用户来说,上传文件必须选择普通用户所在目录或有相应权限的目录进行操作,以遵守文件系统权限的规则。

2024-03-19 11:37:17 180

原创 Python使用Scapy库修改pcap包MAC地址

此外,如果你需要更直观的工具来修改pcap包中的MAC地址,你也可以考虑使用Wireshark这样的网络协议分析器。请注意,修改pcap文件中的MAC地址可能会导致数据包在网络中不被正确处理,因为MAC地址是用于在网络层进行地址解析的。在修改MAC地址后,你可能需要重新计算数据包的校验和或进行其他必要的调整,以确保数据包在网络中的正确传输。脚本将读取原始pcap文件,修改每个数据包的MAC地址,并将修改后的数据包保存到一个新的pcap文件中。替换为你要修改的原始pcap文件的路径,将。"新的源MAC地址"

2024-03-18 17:05:42 389

原创 Python尝试循环连接服务器,如果连接成功则退出,如果超过3次连接失败则退出

下面是一个使用Python实现的程序,可以实现你描述的功能:通过SSH连接服务器并重启服务器,然后循环尝试连接服务器,如果连接成功则退出,如果超过3次连接失败则退出。在这个示例中,我们首先通过SSH连接服务器并重启服务器,然后循环尝试连接服务器。首先,请确保你已经安装了`paramiko`库,它是一个用于SSH连接的Python库。- `your_server_hostname_or_ip`:目标服务器的主机名或IP地址。- `your_password`:SSH连接使用的密码。

2024-03-14 15:33:34 378

原创 python 使用rsplit从右边开始分割2次,截取最后2部分以外的内容使用斜杠连接起来

在这个示例中,`rsplit()` 方法按照 `/` 进行分割,然后我们选择除了最后两个部分以外的部分并用 `/` 连接起来,得到想要的结果。要截取字符串中最后两个斜杠之前的内容,你可以使用 Python 的字符串分割和切片功能。

2024-03-14 10:11:47 118

原创 Python使用openpyxl库或pandas库创建.xlsx格式的Excel文件,并向文件不同的sheet按行或按列写入内容

【代码】Python使用openpyxl库或pandas库创建.xlsx格式的Excel文件,并向文件不同的sheet按行或按列写入内容。

2024-03-13 14:52:31 635

原创 Linux命令grep -A 9999 “指定字符串“ 文件名 | sed -n ‘/指定字符串/,$p‘ > 新文件名。查找包含指定字符串的行,并将该行之后的内容保存到另一个文件中

这个命令的作用是先用`grep`找到包含指定字符串的行以及其后的所有内容(`-A 9999`表示匹配行及其后的最大行数),然后通过`sed`命令进行进一步处理,只输出从匹配行到末尾的内容,并将其保存到新文件中。要在Linux中查找包含指定字符串的行,并将该行之后的内容保存到另一个文件中,你可以使用`grep`命令结合`-A`选项和`sed`命令来实现。grep -A 9999 "指定字符串" example.txt | sed -n '/指定字符串/,$p' > output.txt。

2024-03-12 15:25:33 145

原创 Python使用int()函数将16进制或2进制转换为10进制数

在Python中,可以使用int()函数将十六进制数转换为十进制数。这段代码首先将十六进制数1f4表示为字符串"1f4",然后使用int()函数将其转换为十进制数,结果为500。print(decimal_number) # 输出为500。

2024-03-12 11:35:18 688

原创 Alveo 概念拓扑结构

在 Alveo 加速卡中,涉及到的概念拓扑结构主要包括 Alveo 卡上的各个关键组件以及与主机系统之间的通信结构。

2024-03-08 15:33:00 641

原创 Alveo U200 和 U250 数据中心加速器卡硬件原理图

在 U200 中,PCIe 接口用于与主机系统通信,以便通过 PCIe 总线与 FPGA 进行数据交换和控制。在 U200 中,DDR 用于存储 FPGA 运行时所需的数据和程序等。闪存:闪存是一种非易失性存储器,用于存储 FPGA 的配置文件和其它的固件。在 U200 中,闪存用于存储 FPGA 的逻辑配置文件,以便在开机时加载并初始化 FPGA。维护端口:维护端口是一种特殊的串行通信接口,用于与 U200 进行调试和配置。时钟:U200 中包含多个时钟源,用于为 FPGA 和其他器件提供时钟信号。

2024-03-08 15:15:39 533

原创 Linux命令 执行后再输入 y, 或 password 等多个参数 的组合命令

echo "password")` 创建一个子 shell,在其中依次执行 `echo "y"` 和 `echo "password"`,将它们的输出合并起来。要在执行 Linux 命令后输入多个参数,比如 "y"、密码等,您可以结合使用 `echo`、`printf`、Here Document、管道和重定向等技巧来实现。如果需要输入多个参数,只需在命令序列中添加相应的 `echo` 或 `printf` 命令即可。- `echo "y"` 用于输出 "y"。

2024-03-08 09:40:10 142

原创 操作系统-进程

进程模型是操作系统中用于管理和执行进程的一种抽象概念。它描述了操作系统是如何组织和控制进程的,以及进程之间的关系和调度方式。在单任务模型中,操作系统一次只能执行一个进程,进程执行完毕后才能运行下一个进程。这种模型通常用于早期的操作系统,如单用户的DOS系统。多任务模型允许操作系统同时执行多个进程,通过时间片轮转或优先级调度等方式来实现进程间的切换和调度。现代操作系统如Windows、Linux等都采用多任务模型。并发模型强调多个进程同时执行,但不一定要求同时处理多个任务。

2024-03-06 14:49:45 824

原创 Intel网卡

支持虚拟化相关的技术,如SR-IOV(Single Root I/O Virtualization)和VMDq(Virtual Machine Device Queues),以提高在虚拟化环境下的性能和管理效率。:支持不同的以太网速率,如千兆以太网(Gigabit Ethernet)、万兆以太网(10 Gigabit Ethernet)甚至更高速率,或者无线网络速率(如Wi-Fi 6)。Intel的不同配置网卡可能会支持各种不同的功能,具体功能取决于网卡型号和规格。

2024-03-01 17:53:31 279

原创 操作系统-多核原理

传统的单核系统可能使用抢占式调度,但在多核系统中可能需要更复杂的调度算法,如将任务分配到不同的核心上,避免核心间的竞争和资源争夺。在多核系统中,需要使用适当的算法和数据结构来实现高效的信号量,以确保在多核并发访问时能够正确地进行信号量的增减操作。多核系统中,各个核心需要进行数据共享和通信,因此操作系统需要提供高效的通信机制和共享数据的管理,以确保不同核心间的数据一致性和可靠性。操作系统需要优化针对多核处理器的并发性能,例如通过并行化和线程级别的优化来充分利用多核处理器的计算能力,以提高系统的整体性能。

2024-03-01 10:45:38 660

原创 操作系统-输入输出(I/O)原理

通过复合 I/O,可以将多个独立的 I/O 操作组合成一个更大的操作单元,从而减少系统调用的次数,提高系统的性能和效率。通过可编程I/O,用户可以使用编程语言(如C、Python等)对I/O设备进行配置、控制和管理,从而实现更灵活、定制化的I/O操作。专有通道I/O是一种高级的输入输出技术,它通过专门的通道(Channel)来管理和执行I/O操作,提供了更高的性能、可靠性和扩展性。软件I/O层是指计算机系统中处理输入输出操作的软件部分,包括操作系统提供的I/O管理功能和应用程序使用的I/O接口。

2024-02-29 11:46:36 578

原创 Python 使用 MyHDL库 实现FPGA板卡仿真验证

编写 MyHDL 硬件描述:使用 MyHDL 库编写 FPGA 项目的硬件描述,包括顶层模块、信号连接等。编写仿真测试:使用 Python 编写仿真测试脚本,利用 MyHDL 提供的仿真功能对硬件描述进行仿真验证。运行仿真:运行仿真测试脚本,检查功能是否符合预期。

2024-02-28 17:13:13 330

原创 Python 使用 仿真框架cocotb 实现FPGA板卡仿真验证

要使用 Python 结合仿真框架 Cocotb(Co-simulation COrner TestBench)实现 FPGA 板卡的仿真验证,您可以利用 Cocotb 提供的功能来编写测试台和仿真环境,与 Verilog/VHDL 设计进行交互并进行仿真验证。2. **编写 Cocotb 测试脚本**:使用 Python 结合 Cocotb 编写测试脚本,与 Verilog/VHDL 设计进行交互,并定义测试场景和预期结果。通过上述步骤,您可以使用 Cocotb 框架实现 FPGA 设计的仿真验证。

2024-02-28 17:09:53 363

原创 Python 使用 PyRTL库 实现FPGA板卡仿真验证

要使用 Python 结合 PyRTL 库实现 FPGA 板卡的仿真验证,您可以利用 PyRTL 提供的硬件描述语言和仿真功能来进行 FPGA 设计的验证。1. **编写 PyRTL 硬件描述**:使用 PyRTL 库编写 FPGA 项目的硬件描述,包括顶层模块、信号连接等。2. **编写测试脚本**:使用 Python 编写测试脚本,利用 PyRTL 提供的仿真功能对硬件描述进行仿真验证。3. **仿真验证**:运行测试脚本,对硬件描述进行仿真验证,检查功能是否符合预期。Python 测试脚本。

2024-02-28 17:06:45 350

原创 Python使用HDL 模拟器实现 FPGA 板卡的仿真验证

2. **编写测试脚本**:使用 Python 编写测试脚本,通过调用 Verilog 模拟器对 Verilog 设计进行仿真,并生成仿真波形。1. **编写 Verilog 设计**:首先,您需要编写 FPGA 项目所需的 Verilog 设计代码,包括顶层模块、IP 核等。4. **与 FPGA 开发工具集成**:将验证通过的 Verilog 设计加载到 FPGA 开发工具中进行综合、布局和调试。3. **仿真验证**:运行测试脚本,对 Verilog 设计进行仿真验证,检查功能是否符合预期。

2024-02-28 17:00:20 336

原创 Python实现FPGA板卡仿真验证方法

有一些商业和开源的HDL模拟器提供了Python接口或支持Python脚本控制,可以通过Python来调用模拟器进行仿真。:cocotb是一个基于Python的仿真框架,用于对HDL设计进行仿真和验证。通过cocotb,可以在Python中编写仿真测试用例,并与Verilog或VHDL代码进行交互,实现仿真和验证功能。:MyHDL是一个Python库,用于将Python代码转换为Verilog或VHDL代码,并进行仿真。通过MyHDL,可以在Python中编写硬件描述代码,并进行仿真验证。

2024-02-28 16:55:19 491

原创 操作系统-文件原理

文件系统是计算机操作系统中用于管理存储设备上的文件和目录的一种机制。它定义了文件和目录的存储方式、组织结构以及对其进行访问和管理的规则和方法。文件系统负责将存储设备的物理存储空间抽象成逻辑上的文件和目录,使用户和程序能够方便地对数据进行读取、写入、删除和管理。文件系统的主要功能包括:文件和目录的创建、删除、读取、写入、重命名、权限控制、数据保护、磁盘空间管理等。文件系统还负责处理文件的逻辑组织、存储空间的分配和回收、文件的元数据维护(如文件属性、时间戳等),以及处理文件系统的错误和恢复。

2024-02-28 11:45:15 873

原创 操作系统-内存管理

内存抖动通常发生在系统内存不足时,导致操作系统频繁地将页面从物理内存中换出到磁盘(页面置换),而后又需要将其重新调入内存,这样频繁的置换操作会消耗大量的计算资源和时间,影响系统的性能。通常,操作系统会被加载到计算机的物理内存中,并占用一定的地址空间。通过这种方式,双向链表可以根据页面的访问顺序进行排序,最近访问的页面始终位于链表的头部,而最久未使用的页面位于链表的尾部。内存管理是操作系统中一个非常重要的功能,它主要负责管理计算机系统中的内存资源,包括内存的分配、回收、保护和共享等。

2024-02-27 11:23:35 994

原创 操作系统-线程原理

线程是操作系统中最小的执行单位,它是进程中的一个执行流程。一个进程可以包含多个线程,这些线程可以同时执行不同的任务。线程的特点包括:轻量级:线程比进程更轻量,创建和切换线程的开销相对较小。共享资源:线程之间共享进程的资源,包括内存空间、文件句柄等。并发执行:线程可以并发执行,从而提高程序的执行效率。线程可以分为内核线程和用户线程:内核线程:由操作系统内核创建和管理,它们是在内核空间中运行的。用户线程:由用户程序创建和管理,它们是在用户空间中运行的。用户线程依赖于内核线程的支持。

2024-02-26 11:27:37 613

原创 操作系统-进程原理

当一个程序的时间片用完后,操作系统会将当前的进程挂起,切换到下一个进程,并保存当前进程的信息,以便后续恢复执行。管道(Pipe)是一种用于进程间通信的机制,它通过创建一个管道,将一个进程的输出连接到另一个进程的输入,从而实现它们之间的数据传输。内核空间进程表中的每个表项通常包含了进程的唯一标识符(如进程ID)、进程状态(如就绪、运行、阻塞)、进程优先级、CPU占用时间、进程所占用的内存等信息。总的来说,进程管理是操作系统的重要功能,通过创建、调度、同步和通信等机制,实现了多任务处理和进程间的协调与合作。

2024-02-23 16:42:33 618

原创 操作系统-基础原理

设备管理软件是操作系统的关键组成部分:设备驱动程序是操作系统与硬件设备之间的接口,它负责将操作系统的请求转化为设备能够理解和执行的命令。综上所述,人造学科的特点为我们学习操作系统提供了理论和实践的基础,帮助我们理解操作系统的设计和开发过程,掌握相关技术知识和应用能力,培养创新意识和解决问题的能力,并了解操作系统在社会和生活中的作用。编译器的优化技术和算法的进步,可以提高生成的代码的执行效率和性能,而操作系统的进步也可以为编译器提供更多的资源和功能接口,进一步提高软件的运行效率和可靠性。

2024-02-23 10:28:08 1006

原创 Linux命令:重复多次后台运行且不保存输出,查看命令对应的进程数量

在这个示例中,`your_command` 是你想要重复运行的命令。`> /dev/null 2>&1` 部分用于将命令的标准输出和标准错误输出重定向到 `/dev/null`,即丢弃输出,从而不保存命令的输出。要查看与该命令对应的进程数量,你可以使用 `pgrep` 命令来查找匹配进程的数量。要在后台重复运行 Linux 命令并查看对应的进程数量,你可以使用循环结构和后台运行符号 `&` 结合起来。通过执行上述循环,你可以将 `your_command` 命令重复运行 3 次,并且不保存输出。

2024-02-21 15:01:15 454

原创 Linux命令:pkill 强制终止进程

`-signal`:指定要发送给匹配进程的信号。请注意,`pkill` 命令是一种强制终止进程的方式,它会直接发送信号给匹配的进程,因此请谨慎使用,以免造成数据丢失或系统不稳定。`pkill` 是一个用于终止进程的 Linux 命令。它通过进程的名称或其他属性来查找并结束匹配的进程。- `-f`:强制匹配整个命令行,而不仅仅是进程的名称。其中,`pattern` 是用于匹配进程的模式。- `-u user`:限制匹配的进程为指定用户所属的进程。- `-e`:精确匹配整个命令行,而不考虑模式中的大小写。

2024-02-21 13:52:10 363

原创 python中yml文件值 value: 0135解析结果 93的原因分析

根据你提供的信息,你在解析一个 YAML 文件时遇到了问题。在 YAML 文件中,键值对中的值可以是字符串,整数,浮点数等类型,但在 Python 中,YAML 解析器会将这些值自动转换为适当的类型。这样,当解析 YAML 文件时,`value` 的值将会被识别为字符串类型,而不会被自动转换为整数。数据类型转换问题:在解析yml文件时,0135可能被误解为八进制数,对应的十进制值为93。

2024-02-19 11:16:16 144

空空如也

空空如也

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

TA关注的人

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