自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 fio

fio的I/O引擎在执行磁盘访问模拟时具有不同的特点和行为。以下是几个常见的fio I/O引擎及其区别: 1. sync(同步引擎): • 特点:直接使用系统调用进行I/O操作,是最基本的引擎。 • 行为:每个读取或写入操作都将阻塞进程,直到完成该操作。 • 适用场景:测试同步I/O负载,并需要较低级别的控制。 2. mmap(内存映射引擎): • 特点:利用内存映射技术将数据文件映射到进程地址空间中。 • 行为:读取和写入操作直接在内存中进行,无需复制数据到用户空间和内核空间之间。 • 适用场景:在某些情

2024-04-22 17:55:47 727

原创 LTSSM

PCIe 设备通过交换 LTSSM 号码来告知对方当前的状态,从而协商出最佳的通信参数。通常,在初始化时,两个设备会经过训练阶段,通过成功完成 LTSSM 状态转换来建立正常的链路连接。LTSSM 的状态由不同的状态码表示,每个状态码代表了特定的状态和动作。它是用来管理 PCIe 设备之间建立和维护通信链路的状态机。其主要目标是使各个设备能够以一致且可靠的方式进行通信,并确保链路的稳定性和性能。需要注意的是,LTSSM 是 PCIe 技术的一部分,与具体的硬件实现和 PCIe 规范有关。

2024-04-15 11:02:30 641

原创 RX margin test

具体而言,这个测试通常被用来检测PCIe接收器对于低电平(0)和高电平(1)的灵敏度,以确保良好的信号完整性和稳定的数据传输。在进行PCIE RX margin测试时,发送端会逐步降低或增加发送的电压幅度,直到接收端无法正确识别比特为止。测试过程所得到的结果可以用来指导设备设计、调试和优化,以满足系统仿真标准和兼容性要求。然而需要注意的是,具体的PCIE RX margin测试实现方式和参数设置有多种可能,因此具体的测试细节需要参考相关规范、文档或厂商提供的建议和推荐。

2024-04-15 11:01:59 971

原创 err_cnt

误码计数可以通过硬件电路或软件程序实现,以便在测试期间对数字通信系统的性能进行监视和检测。相应的调试措施可以根据误码计数值来确定和优化,如更改信号发射功率、抗噪声技术或纠错编码等。例如,在一个数据通信链路上,如果发送1000比特,其中有5比特出错了,那么err_cnt就是5。通过该值,可以根据总比特数来计算误码率,进一步评估通信链路质量和性能。"err_cnt"可以被解释为误码计数,通常用于数字通信系统中误码率的计算。它表示在一定时间内,数据传输过程中出现错误的次数。

2024-04-15 11:01:25 176

原创 CE

有三种类型的错误:不可纠正错误(Uncorrectable Error),可纠正错误(Correctable Error)和预测性故障(Predictive Failure Analysis)。其中,不可纠正错误指的是无法修复的错误,会导致数据丢失或系统崩溃。例如,在内存中写入了一段数据,但由于噪声或干扰的原因,数据被扭曲了。可纠正错误则是介于这两者之间的一种情况,它指的是发生了错误,但是该错误可以通过硬件或软件的纠错机制进行自动的纠正和修复,从而避免数据丢失或系统崩溃等严重后果。

2024-04-15 11:00:55 316

原创 眼图

眼图是一种非常有用的工具,它可以在很大程度上帮助工程师快速诊断线路上的问题,优化系统的性能,提高网络可靠性。在这些系统中,数据以不同的方式通过通道传递,而眼图则提供了一种可视化信号波形,可以帮助评估信号的质量并确定下一步改进的方向。使用眼图所得出的数据结果包括有效比特率、误码率等参数,这些参数可以帮助确定是否需要优化系统的各个方面,以获得更好的性能和信号质量。1. “眼睛”的开合程度:通常情况下,开放的眼睛代表信号质量更佳,而闭合的眼睛则可能表示有噪声、抖动或其它影响干扰了数据传输。

2024-04-15 11:00:21 477

原创 BER

误码率的计算方法需要收集一段时间内传输的比特数和比特中出现错误的次数,然后将错误次数除以总比特数量即可计算BER。值得注意的是,由于BER受到许多因素的影响,例如噪声、传输距离、调制方式等,因此误码率不能单独使用,而应该结合其他性能指标一起使用。同时,在设定误码率性能指标时,需要考虑实际应用的需求,例如语音通信需要更低的误码率,而数据传输则可以容忍稍高的误码率。通常,BER以10的幂表示,例如,BER为1e-6表示1000000比特中错误的数量为1。BER也可以用百分比表示,即误码率百分之几。

2024-04-15 10:59:45 2619

原创 Lane、PHY和Preset Value Bit

每个Lane支持不同的传输速度和带宽,例如PCIe 3.0中,一个Lane的传输速度可以达到8 GT/s(Giga Transfers per second),也就是1 GB/s(GigaBytes per second)。Preset Value Bit(预置值位)是在PCIe 3.0的Lane上新引入的一种机制,用于优化信号传输质量。PCIe设备可以包含多个Lane,例如x1、x4、x8、x16等,表示该设备同时使用的Lane数目,比如x16表示该设备采用了16个Lane,具有更高的传输速度和带宽。

2024-04-15 10:58:54 772

原创 vim翻页,跳指定行数

的常用命令,例如搜索、复制、粘贴等等。键,然后输入命令来执行这些操作。(将 n 替换为实际的行号)。

2024-04-15 10:56:15 623

原创 while true

它的意思是“在条件为真的情况下,不断执行循环体中的代码”。由于这里的条件始终为真,因此该循环将会无限次地执行下去,除非在循环体内显式地跳出循环或者发生其他中断事件(如断电、程序崩溃等)。是一种常见的编程结构,在许多编程语言(包括 Shell、Python、JavaScript 等)中都有出现。结构,而是会在循环体内加入适当的条件判断语句,以便在满足特定条件时跳出循环。需要注意的是,在实际编程过程中,一般不会直接使用。

2024-04-15 10:55:34 343

原创 cpio

cpio -idmv < file.cpiocpio -id < file.cpio

2024-04-15 10:52:22 379

原创 -o strictHostKeyChecking=no

原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/ .ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。ssh会把你每个你访问过计算机的公钥(public key)都记录在~/ .ssh/known_hosts。当下次访问相同计算机时,OpensSSH会核对公钥。如果公钥不同,openSSH会发出警告,避免你受到DNSHijack之类的攻击。

2024-04-15 10:50:56 1715

原创 查bmc版本

ipmitool mc info或者cat /etc/os-release。

2024-04-15 10:47:46 490

原创 配 apip

Ifdown ifcfg-ens288 关闭网络。Ifup ifcfg-ens288 打开网络。

2024-04-15 10:47:04 121

原创 配bmc ip

192.168.x.xxx。

2024-04-15 10:45:55 173

原创 刷完bmc后设置root

usermod -a -G priv-admin root

2024-04-15 10:43:10 145

原创 查看sda分区格式

1。

2023-10-30 09:56:05 165

原创 挂载文件到uefi

然后把那个sda挂载到某个目录,然偶把需要用的文件放到那个目录下面就行了。先查看sda分区格式看看哪个是可以被uefi认到的格式。

2023-10-30 09:55:14 179

原创 ^[0-9]+$

是匹配字符串开始的意思,【0-9】意思就是只要是范围0-9里的东西都要,或者说只要不是数字都不要~+的意思的^[0-9]的范围里匹配一次以上~

2023-10-30 09:53:17 662

原创 字典类型及操作

集合中的每一个元素就是一个基本元素,它不是一个键值对,而字典种的每一个元素他是一个键值对,我们在集合类型中要求大家如果生成一个空的集合类型不能使用空的大括号的方式,这是因为空大括号的方式是默认用来生成字典的,因为字典类型在计算机编程中会非常常用,所以把大括号空的形式保留给了生成空字典类型来使用,如果想生成空的集合类型,那就使用set函数。 = {:,:,...,:}{:,:,...,:}

2023-08-17 17:19:08 138

原创 基本统计值计算问题分析

print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),dedian(n)))-中位数:将所有元素进行排序,如果这些元素是奇数个就找到最中间的那个,如果是偶数就找中间的两个取平均值。iNumStr = input("请输入数字(回车退出):")iNumStr = input("请输入数字(回车退出):")总个数、求和、平均值、方差、中位数。-方差:各数据与平均数差的平方的和的平均数。-分隔多个函数:模块化设计方法。-平均值:求和/总个数。-总个数:len()

2023-08-17 17:01:14 83

原创 序列类型应用场景

如果由多人共同完成一段程序,我们又不希望我的这段数据通过某些变量被修改,那么可以要求程序之间的接口采用元组形式来传递,这样就可以达到一定保护数据的目的。-元组用于元素不改变的应用场景,更多用于固定场景搭配。这样后续的程序无论怎么杨操作都不会改变他的数据值。-最主要作用:表示一组有序数据,进而操作它们。-如果不希望数据被程序所改变,转换成元组类型。-列表更加灵活,他是最常用的序列类型。这样的应用更主要的是对数据的表达。

2023-08-16 10:15:58 182

原创 列表类型及操作

列表类型定义列表是序列类型的一种扩展,十分常用-列表是一种序列类型,创建后可以随意被修改-使用方括号[]或list()创建,元素间用逗号,分隔-列表中各种元素类型可以不同,无长度限制>>> ls = ["cat", "dog", "tiger", 1024]>>> ls['cat', 'dog', 'tiger', 1024]>>> lt = ls>>> lt['cat', 'dog

2023-08-16 10:05:01 151

原创 元组类型操作

color[-1]会索引到creature这个元素上,由于creature也是一个元组类型,它可以继续使用[2],继续使用他的第二个元素所以返回tiger。>>> creature[::-1] #进行切片时不改变原有creature变量里的值,而是生成新的元组值。color是由creature和另外两个元素组成的元组,我们使用方括号进行索引操作。-元组是一种序列类型,一旦创建就不能被更改。元组类型继承了序列类型的全部通用操作。-元组继承了序列类型的全部通用操作。

2023-08-09 14:21:53 164

原创 序列处理函数及方法

如果x是序列s的元素,返回True,否则返回Flase。如果x时序列s的元素,返回Flase,否则返回True。切片,返回序列s中第i到j以k为步长的元素子序列。返回序列s从i开始到位置中第一次出现元素x的位置。索引,返回s中的第i个元素,i是序列的序号。返回序列s的最小元素,s中元素需要可比较。返回序列s的最大元素,s中元素需要可比较。s[i:j]或s[i:j:k]返回序列s中出现x的总次数。序列类型通用函数和方法。s.index(x)或。

2023-08-08 18:20:41 142

原创 序列类型的定义

类似数学元素序列:s0,s1,...,sn-1。-元素间由序号引导,通过下标访问序列的特定元素。-序列是一维元素向量,元素类型可以不同。序列是具有先后关系的一组元素。

2023-08-08 18:13:51 110

原创 集合类型应用场景

简单说我们有一组数据,怎么判断某一组数据或其他他一组数据食肉在这个数据中,这时候我们要用集合方式来表达这组数据,并且对另外的数据或一组数据与这组数据的关系进行比较。>>> lt = list(s) #将集合转换为列表。>>> s = set(ls) #利用了集合无重复元素的特点。数据去重:利用了集合中所有元素不能重复的特点,对一组数据中重复的元素进行删除。

2023-08-08 14:52:29 85

原创 集合处理方法

A.pop可以从集合A中取出一个元素,不断地取出,如果当A中的元素不存在,也就是A为空集合的时侯,那么A.pop将会产生一次异常,那么这个异常会被try except捕捉到,程序可以正常退出。所以这段代码做的事情是,从A中不断取出元素打印出来,当A中的元素为空时,程序退出。判断S中元素x,x不在集合S中,返回True,否则返回False。判断S中元素x,x在集合S中,返回True,否则返回Flase。移除S中元素x,如果x不在集合S中,产生KeyError异常。移除S中元素x,如果x不在集合S中,不报错。

2023-08-08 11:29:46 100

原创 集合操作符

返回True/False,判断S和T的子集关系。返回True/Flase,判断S和T的包含关系。返回一个新集合,包括在集合S和T中的所有元素。返回一个新集合,包括在集合S但不在T中的元素。返回一个新集合,包括同时在集合S和T中的元素。返回一个新集合,包括集合S和T中的非相同元素。更新集合S,包括在集合S和T中的所有元素。更新集合S,包括在集合S但不在T中的元素。更新集合S,包括同时在集合S和T中的元素。更新集合S,包括集合S和T中的非相同元素。S <= T 或 S < T。S >= T 或 S > T。

2023-08-07 11:11:13 63

原创 集合类型的定义

>>A = {"python",123,("python",123)} #使用{}建立集合。>>> B = set("pypy123") #使用set建立集合。-集合元素之间无序,每个元素唯一,不存在相同元素。-集合用大括号{}表示,元素间用逗号分隔。-集合元素不可更改,不能是可变数据类型。-建立空集合类型,必须使用set()-集合用大括号表示,元素间用逗号分隔。-集合中每个元素唯一,不存在相同元素。-建立集合类型用{}或者set()-集合类型与数学中的集合概念一致。

2023-08-07 10:24:11 73

原创 科赫雪花小包裹问题分析

取一个长度为s的直线,取他的三分之一长度,去掉中间一部分,用另外两条线连着,两条线之间为60°,利用4根三分之一直线。koch(600,3) #3阶科赫曲线,阶数。level = 3 #3阶科赫雪花,阶数。-修改科赫曲线的基本定义及旋转角度。-修改科赫雪花的基础框架图形。-递归思想:函数+分支。-递归链条:线段的组合。-修改分形几何绘制阶数。科赫曲线也叫雪花曲线。-递归基例:初识线段。

2023-08-03 11:13:25 388

原创 Pyinstaller库的使用

出现警告类似You are using pip version 10.0.1, however version 23.2.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.时,说明有新的pip版本,-.py文件----->Pyinstaller ------> -Linux。cmd命令行:pyinstaller -F <文件名.py>

2023-08-02 11:19:41 101

原创 py函数递归

函数 + 分支结构。-假设当nk时命题成立,证明当n=nk+1时命题也成立。-基例:存在一个或多个不需要再次递归的基例。-递归本身是一个函数,需要函数定义方式描述。-函数内部,采用分支语句对输入参数进行判断。函数定义中电泳函数函数递归自身的方式。-递归是数学归纳法思维在编程中的体现。-证明当n取第一个值n0时成立。-基例和链条,分别编写对应代码。-链条:计算过程存在递归链条。将字符串s反转后输入。

2023-08-02 10:31:38 73

原创 代码复用与模块化设计

代码抽象化:使用该函数等方法对代码赋予更高级别的定义。-通过函数或对象封装将程序划分为模块及模块之间的表达。-分而治之:一种分而治之、分层抽象、体系化的设计思想。-代码资源化:程序代码是一种用来表达计算的“资源”-代码复用:同一份代码在需要时可以被重复使用。-具体包括:主程序、子程序和子程序之间的关系。-紧耦合:两个部分之间交流很多,无法独立存在。-松耦合:两个部分之间交流很少,可以独立存在。函数 和 对象 是代码复用的两种主要形式。<a>.<b>和<a>.<b>()-模块内部紧耦合、模块之间松耦合。

2023-08-02 10:30:30 150

原创 shell source

命令会读取指定的脚本文件,并在当前 Shell 环境中执行该脚本文件的命令。这意味着,脚本文件中的变量、函数、以及其他命令都可以在当前 Shell 中生效,而不是在一个单独的子 Shell 中执行。是一个内置的命令,用于在当前 Shell 环境中执行指定的脚本文件,也可以用点号。命令后面的脚本文件必须具有可执行权限,否则可能会出现权限错误。执行后,你会在命令行上看到打印出的。source 脚本文件或脚本命令。在 Shell 脚本中,. 脚本文件或脚本命令。例如,假设有一个名为。

2023-07-19 10:54:25 1144

原创 三元表达式

print(y) --------> 输出:Even。使用三元表达式可以在简短的代码中做出条件判断,并根据判断结果赋值给变量或执行其他操作。具体来说,当条件满足时,返回value_if_true的值;当条件不满足时,返回value_if_false的值。在上面的示例中,如果x是偶数,则将字符串'Even'赋给变量y;三元表达式是一种简洁的条件表达式,用于根据条件选择不同的值。

2023-07-19 10:53:42 662

原创 七段数码管绘制

定义了一个主函数main(),在这个函数中设置了绘制窗口的大小(setup()),将画笔抬起(penup()),向左移动300个像素(fd(-300)),设置画笔的大小为5个像素(pensize(5)),调用drawDate()函数绘制日期字符串对应的数字,隐藏海龟图标(hideturtle()),最后调用turtle模块的done()函数以结束程序。根据不同的数字,通过调用drawLine()函数来绘制对应的数码管段。drawDigit(eval(i)) # 通过eval()函数将数字变为整数。

2023-07-18 10:53:13 882

原创 lambda函数

return <返回值>-lambda函数是用与定义简单的,能够在一行内表示的函数。<函数名> = lambda <参数>: <表达式>>>>f = lambda : "lambda函数"-lambda函数是一种匿名函数,即没有名字的函数。-lambda函数主要用作一些特定函数或方法的参数。-lambda函数有一些固定使用方式,建议逐步掌握。-使用lambda保留字定义,函数名是返回结果。-一般情况,建议使用def定义的普通函数。谨慎使用lambda函数。

2023-07-18 10:52:21 79

原创 局部变量和全局变量

如果一个组合数据类型在函数中被真实创建了,那么他就是这个函数的局部变量了,所以如果是局部变量,那么在函数运行之后这个变量就会被释放,它就不存在了,他跟外部的全局变量ls是不同的变量,那么如果这个组合类型在函数内部没有被真实的创建他的名字又与全局变量相同,那他就是全局变量。、如果我们在函数定义中使用了一个组合数据类型,如果这个组合数据类型,比如这个列表ls,如果在函数内部被真实创建,他本身的名字又等同于全局变量,那么这段函数就是在处理这个全局变量。-组合数据类型,如果局部变量未真实创建,则是全局变量。

2023-07-18 10:51:49 95

原创 函数的返回值

最后,通过返回表达式 s // m, n, m,返回了计算得到的阶乘结果 s 除以 m 的商,以及输入的参数 n 和 m。的结果,即 120,然后返回 (60, 5, 2)。这段代码定义了一个名为 fact 的函数,它计算一个数的阶乘,并返回结果以及输入的参数。函数接受两个参数:n 和 m,其中 n 是必需的,而 m 是一个可选参数,默认值为 1。请注意,函数返回的结果是一个元组,包含三个值:阶乘的商、参数 n 和参数 m。-函数可以有返回值,也可以没有,可以有return,也可以没有。

2023-07-18 10:51:05 144

空空如也

空空如也

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

TA关注的人

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