- 博客(34)
- 收藏
- 关注
原创 掌握fio:Linux存储性能测试利器
摘要:fio是Linux下功能强大的存储性能测试工具,支持精确控制I/O参数,可绕过缓存直接测试磁盘性能。文章详细介绍了fio的核心参数配置方法,包括读写模式、块大小、队列深度等关键设置,并提供了4种典型测试场景的配置文件示例(随机读写、顺序读写、混合负载、压力测试)。测试结果重点关注IOPS、带宽、延迟百分位等指标,还可通过工具生成图形化报告。通过组合不同测试,可全面评估存储设备的性能表现。
2025-08-27 17:39:36
584
原创 iPerf3网络性能测试全指南
iperf3网络性能测试指南摘要:本文介绍了使用iperf3工具进行网络性能测试的方法。测试分为服务端(iperf3 -s)和客户端(iperf3 -c)两部分,支持TCP和UDP协议。TCP测试包括长包(1460/8192字节)带宽测试和短包(64/128字节)性能测试;UDP测试需指定速率(-b参数),包含长包吞吐量测试和短包转发性能测试。测试可设置持续时间(-t)、并行流(-P)、窗口大小(-w)等参数,通过-R参数实现反向测试。文末提供了完整测试方案示例和参数解释表,帮助全面评估网络性能。
2025-08-27 16:26:14
700
原创 Linux下I2C总线测试全攻略
本文介绍了在Linux系统下使用i2c-tools工具包测试I2C总线及设备的完整流程。主要内容包括:1)安装i2c-tools;2)核心测试指令:使用i2cdetect检测总线适配器和扫描设备地址,i2cdump读取寄存器值,i2cget/i2cset进行寄存器读写;3)高级用法i2ctransfer工具;4)测试流程总结和注意事项。文章详细说明了每个命令的使用方法和输出解读,并强调了设备地址格式转换、权限问题等关键点,为I2C设备调试提供了实用指导。
2025-08-21 14:40:17
829
原创 Petalinux NFS启动文件系统
首先确保已经准备好了以下文件:BOOT.BINimage.ubboot.scrroot.tar.gz (文件系统压缩包)
2025-08-08 15:09:53
754
原创 Xilinx Zynq UltraScale+ MPSoC(zu106)开发板的嵌入式Linux开发流程
针对Xilinx Zynq UltraScale+ MPSoC(zu106)开发板的嵌入式Linux开发流程,包括工程创建、配置、编译、打包和烧录过程。您的指令覆盖了关键操作,如FSBL调试信息设置、启动模式选择和环境变量配置。我将步骤合并为四个主要阶段(创建与配置工程、编译与打包、烧录准备与执行、附加设置),每个阶段包含子步骤以提高清晰度。
2025-08-08 09:45:18
597
原创 Petalinux:2. 添加并编译自定义驱动(ax-led-drv)
如果驱动依赖其他内核模块或配置,需确保内核已启用相关选项(如 LED 子系统、GPIO 驱动等)。)并编译的完整流程。查看内核日志,检查驱动加载时的输出或错误。# 在 PetaLinux 工程目录下运行。将你实现的 LED 驱动代码复制到。# 在目标板 Linux 终端执行。修改驱动代码后,需重新运行。若需启动时自动加载,将。,按空格键选中(显示。编译完成后,驱动模块(# 检查是否加载成功。
2025-08-08 09:25:39
182
原创 Xilinx‘s REAL TALK:XSCT命令行工具详解
XSCT是Xilinx提供的FPGA开发命令行工具,支持硬件调试、编程和状态查询。主要功能包括:通过connect命令连接JTAG设备,使用targets选择处理器,fpga命令下载比特流文件,dow加载ELF程序。调试时可读写内存(mrd/mwr)、控制程序运行(con/stop/rst)。支持脚本化操作,通过TCL脚本批量执行命令。典型流程为:连接硬件→选择目标→下载比特流→运行程序。
2025-08-08 09:18:29
426
原创 Petalinux:1. Linux下Petalinux项目开发全流程
petalinux-boot --jtag --prebuilt 3 --hw_server-url "TCP:10.0.0.134:3121" /*windows系统 ip*/在管理员模式下 在压缩包所在的文件夹下 tar -xzvf rootfs.tar.gz -C /media/rootfs。2、在文件夹peta-prj下创建文件夹“hw”,用于保存硬件信息,逻辑生成的*.hdf/*.xsa文件保存至此处。编译完成后,会在/image/linux生成BOOT.bin文件。
2025-08-08 09:12:22
368
原创 petalinux 配置实现支持usb3.0
本文介绍了在PetaLinux项目中配置USB支持的方法。主要内容包括:1)在设备树文件system-user.dtsi中添加USB控制器配置,设置dr_mode="host"使其工作在主机模式;2)在内核配置文件中启用相关USB选项;3)添加USB PHY节点定义并关联到控制器。完成修改后需要通过petalinux-build重新编译设备树和内核。这些配置可让开发板作为USB主机连接U盘等设备,配置时需注意硬件兼容性,修改后应检查内核日志验证功能是否正常。
2025-08-07 15:46:48
426
原创 PYLON交叉编译:Ubuntu是x86,编译出arm64上运行的程序
本文介绍了两种解决ARM平台动态库依赖问题的方法:1)将依赖库放入指定路径并用LD_LIBRARY_PATH指定;2)直接放入系统/lib目录。具体操作包括设置PYLON_ROOT环境变量、修改Makefile编译器为aarch64-linux-gnu-gcc,以及使用ldd/file命令检查依赖。建议优先采用第一种方法避免污染系统库路径,通过LD_LIBRARY_PATH指定自定义库路径即可运行,无需与Ubuntu路径完全一致。第二种方法虽简单但会修改系统目录。
2025-08-07 15:16:03
237
原创 Linux 系统上下载并编译适用于 ARM64 架构的 Linux 内核及其驱动程序usb3.0vision
编译成功后,内核文件将位于 arch/arm64/boot/Image 或 arch/arm64/boot/Image.gz。修改驱动程序 Makefile:如果驱动程序的 Makefile 包含了 x86 特定的编译选项,您需要手动移除或替换这些选项。选择内核版本:您可以选择一个适合您需求的 ARM64 内核版本。查找编译生成的模块:编译成功的驱动模块通常会生成在当前目录下的 *.ko 文件。安装必要的工具:确保您的系统已经安装了必要的编译工具和库文件。编译内核:使用多线程编译以加快速度。
2025-08-07 15:10:42
587
原创 Linux MMC子系统: 9. eMMC与NAND Flash核心技术
本文摘要: Flash存储器分为易失性(SRAM/DRAM)和非易失性(ROM/Flash)两类,重点解析NAND Flash(高密度存储)与NOR Flash(直接执行代码)的特性差异。eMMC作为NAND Flash的集成方案,通过内置控制器简化设计,具备坏块管理等功能。RPMB是eMMC的安全分区,采用HMAC-SHA-256和WriteCounter机制防止数据篡改,适用于存储指纹密钥等敏感信息。其读写流程通过随机数校验和计数器累加实现防重放攻击,默认容量为4MB(可扩展至16MB)。
2025-08-07 11:39:38
627
原创 TFTP: Linux 系统安装 TFTP,文件系统启动后TFTP使用
摘要:本文介绍了在Linux系统安装和配置TFTP服务器的步骤。首先通过apt命令安装tftpd-hpa服务,然后配置/etc/default/tftpd-hpa文件,设置共享目录为/srv/tftp并配置权限。最后重启并启用服务。使用TFTP时需先检查网络连通性,通过tftp命令的get/put参数实现文件传输。该指南简明扼要地说明了TFTP服务器的搭建和使用方法。
2025-08-07 11:39:07
217
原创 Linux MMC子系统: 8.详解eMMC基础命令(EMMC5.1)
该摘要总结了eMMC协议中主要命令的功能和参数设置。CMD0用于设备复位,参数不同可进入idle、pre-idle或boot模式;CMD1用于协商电压范围;CMD2/3/9/10分别用于获取CID、设置RCA、获取CSD和CID;CMD4设置DSR寄存器;CMD5切换休眠/唤醒状态;CMD6修改EXT_CSD寄存器;CMD7切换设备状态;CMD8/14/19涉及数据传输和总线测试;CMD12停止传输;CMD13查询状态;CMD15使设备进入非活动状态。这些命令通过特定参数和响应类型实现eMMC设备的初始化、
2025-08-06 11:07:19
779
原创 Linux MMC子系统: 7. 命令与函数对应关系 (class 0 and class )
摘要:MMC卡初始化流程包括一系列CMD指令操作:首先通过CMD0进入空闲状态,CMD1检查上电复位状态;随后通过CMD2获取CID寄存器,CMD3设置相对地址;接着用CMD9获取CSD寄存器,CMD7选择卡片进入传输状态;CMD8获取扩展CSD数据,CMD6修改扩展寄存器位;最后通过CMD13查询状态,CMD10再次获取CID,CMD5控制睡眠/唤醒状态。该流程实现了从初始化到数据传输的完整状态转换。
2025-08-06 11:03:02
337
原创 Linux MMC子系统: 6.EMMC读写速度检测步骤
内核下的emmc是以mmcblock的形式存在,可以使用。写测试:使用dd命令向emmc中写入4GB大小的文件。读测试:使用dd命令从emmc中读取4GB大小的文件。//使能emmc访问。
2025-08-06 10:59:18
327
原创 Linux MMC子系统: 5.eMMC通信协议详解(EMMC 5.1)
摘要:本文详细介绍了eMMC与HOST主机之间的接口通信协议。主要内容包括:1)接口信号线功能(CLK时钟、CMD命令/响应、DAT0~7数据线及DataStrobe同步信号);2)总线拓扑结构及通信流程,重点说明通过RCA地址选择设备、命令/响应/数据传输机制;3)详细解析eMMC命令格式(48位结构)和5种响应类型(R1-R5);4)数据读写操作流程,包括单块/多块传输模式及CRC校验机制;5)不同总线宽度(1/4/8位)和数据速率(SDR/DDR)下的数据传输格式。该协议通过分层命令交互实现可靠的存储
2025-08-06 10:45:36
827
原创 Linux MMC子系统: 4.SD/MMC/SDIO卡启动与传输模式全解析
摘要:SD卡协议定义了多种工作模式:boot模式(上电硬件复位后发送CMD0)、设备识别模式(接收CMD3后转为传输模式)、中断模式(仅允许设备通知主机进入中断)、数据传输模式(分配RCA后进入)和非活动模式(非法电压或CMD15触发)。各模式间根据特定命令和条件进行转换,形成完整的操作流程。
2025-08-06 10:34:30
418
原创 Linux MMC子系统:3.MMC中断唤醒机制深度解析
摘要:SDIO中断处理流程涉及三个关键函数:mmc_signal_sdio_irq首先禁用中断并标记状态,wake_up_process封装try_to_wake_up唤醒处理线程,try_to_wake_up执行核心唤醒逻辑。该流程通过先禁用中断防止中断风暴,再通过状态检查、CPU迁移等机制确保任务正确唤醒。内核使用内存屏障防止乱序执行,最终将任务加入调度队列实现中断处理。整个机制实现了从硬件中断到线程处理的可靠转换。
2025-08-06 10:29:03
522
原创 Linux MMC子系统 1.简介
和card可以分别理解为 MMC device的两个子设备:MMC主设备和MMC从设备,其中host为集成于MMC设备内部的MMC controller,card为MMC设备内部实际的存储设备。块设备是Linux系统中的基础外设之一,而 MMC/SD 存储设备是一种典型的块设备。与Linux的块设备子系统对接,实现块设备驱动以及完成请求,具体协议经过。完成传输,对 MMC设备进行实际的操作。,用于管理 MMC/SD 设备,eMMC的整体结构如下图所示。MMC 子系统的框架结构如下图所示,其中。
2025-08-06 10:25:12
200
原创 Linux MMC 子系统: 2.驱动处理过程代码走向
mmc/sdio/sd都属于Linux块设备在进行驱动添加的时候。就是负责将驱动注册到总线上,并且进行匹配。
2025-08-06 10:21:59
179
原创 安装了net-tools后仍然不能使用ifconfig等linux指令解决方案
摘要:当安装net-tools后仍无法使用ifconfig命令时,可检查/sbin/目录下是否存在该指令。若存在,可通过创建软链接将/sbin/ifconfig连接到/bin/ifconfig来解决,命令为ln -s /sbin/ifconfig /bin/ifconfig。这种方法能确保系统正确识别并执行ifconfig命令。
2025-08-06 10:14:12
115
原创 minicom:使用及打开
本文介绍了在Linux系统下使用Minicom连接USB转串口设备的步骤:1)通过ls /dev/ttyUSB*或dmesg命令确认设备节点;2)使用chmod设置访问权限;3)提供两种配置方式:直接启动指定设备节点和波特率,或通过配置菜单设置串口参数;4)说明基本操作方法,包括文件传输和退出命令。文章详细说明了从设备识别到建立连接的全过程,适合需要调试串口设备的用户参考。
2025-08-06 09:52:14
241
原创 Git :初始化与远程仓库连接指南
将输出的公钥内容(以ssh-rsa开头)添加到公司Git服务器的SSH密钥设置中(如GitLab、GitHub等)。
2025-08-06 09:46:58
295
原创 eMMC的CMD驱动模式:开漏与推挽详解
摘要: eMMC的CMD驱动包含开漏与推挽两种模式。开漏模式通过外部上拉电阻实现高电平,支持多设备仲裁(初始化阶段必需),具有电压兼容性和冲突检测优势。推挽模式直接驱动高低电平,用于数据传输阶段以实现高速率(如HS400),但仅限单设备通信。模式切换时机包括初始化(开漏)、设备识别后(切推挽)及电压切换时(临时切回开漏)。设计需平衡信号完整性(推挽噪声)与兼容性(开漏安全)。两种模式的动态切换是eMMC兼顾兼容性与性能的核心机制。
2025-08-06 09:44:51
381
原创 单元测试:腾讯云服务器ubuntu安装gtest and gmock
静态库拷贝 编译后生成的静态库再lib文件夹下:gtest(libgtest.a、libgtest_main.a) 、gmock(libgmock.a、libgmock_main.a);下载后会在下载命令的目录下生成一个 googletest 的文件夹,进入后,通过cmake来编译,先后输入下面的3个命令并执行:(无安装cmake先安装cmake)把下面代码粘贴进去 保存并退出。
2023-12-22 14:07:45
564
原创 ubuntu 设置 每次重启 自动打开 ssh服务
话不多说,从不啰嗦,仔细操作,完美一波。1. 安装更新ssh服务器输入密码2. 开启ssh服务 3.设置开机自启ssh服务切记:上面这行代码是设置自启动的,如果不需要自启动或者是每次想自己连接的话,可以执行下面这行代码关闭4.重启检查5.检查是否设置成功结果如下,Active:active(running)即设置成功啦。...
2022-07-10 17:55:36
13841
2
原创 远程工具:SSH服务器拒绝了密码。请再试一次。解决方法汇总。浪费我一下午的时间,只好承认自己好菜。
问题图解决方案1:在ubuntu终端中,输入 vim /etc/ssh/sshd_config找到这段代码修改为按insert 开始编辑,编辑结束后按esc,然后输入 :wq即可保存如果保存不成功,就输入 :wq!强制保存,还是保存不成功,会报错,我也解决不了了哦。解决方案2:直接在终端中输入sudo gedit /etc/ssh/sshd_config打开的是一个文件 直接 找到对应位置,修改就可以了这个是简单粗暴的方法了。。。修改完。。。就没.
2022-05-22 22:12:59
11979
10
原创 SPSS: 产生正交数据集
首先就是要搞明白你自己需要的设计的是几个参数几个水平的。就下来就是淦!!!!!!!!!!!!!!!!!!!!!第一步:打开该软件。第二步: 点击数据---->正交设计---->生成结果如下图所示:第三步:输入因子名称和标签,也就是你自己需要设计的参数以及对其的解释,输入结束之后点击添加。添加之后如下图所示,选中该参数,定义值,看你自己想要几水平的参数,就设计几个水平的参数。把你所有需要设计的参数输入好之后,勾选----创建新数据集.
2022-05-22 09:43:21
2250
原创 MathType:运行时错误‘53’:文件未找到:MathPage.WLL
每次装完MathType后,在word里面进行粘贴操作时,总是出现运行时错误‘53’:文件未找到:MathPage.WLL。解决方案1、首先确定自己电脑的位数(这里默认大家的电脑都是64位)2、右击MathType桌面图标,点击“打开文件所在位置”,然后找到MathPage.WLL ,复制一份进行后续操作。MathPage.WLL 路径为:...\MathType\MathPage\64\MathPage.wll3、最后一步,最最最关键放MathPage.wll到该目录下:C:
2022-05-04 20:28:54
13181
13
原创 C++ 数据结构 算法1 二分查找解析 前提是有序数组
核心代码模式class Solution{public:int search(vector<int>& nums, int target){ // 定义动态数组,起别名,要查找的目标值int low = 0, high = nums.size() -1; // 定义左边界和右边界while(low <= high){ // 左右边界比较,左小于等于右边界才能进入循环...
2022-05-02 18:17:31
1002
原创 无迹卡尔曼滤波
1.无迹变换 实现方法:在原状态分布中按某一规则选取一些采样点,使这些采样点的均值和协方差等于原状态分布的均值和协方差;将这些点带入非线性函数中 ,相应得到非线性函数值点集,通过这些点集求取变换后的均值和协方差。这样得到的非线性变换后的均值和协方差精度最少具有二阶精度(泰勒展开)。 对于高斯分布,可达3阶精度。其采样点的选择是基于先验均值 和先验协方差矩阵 的平方跟的相关实现的。 原理:设一个非线性变换y=f(x)。状态变量x为n维随机变量,并且已知其均...
2021-07-05 16:46:36
529
原创 卡尔曼滤波(kalman)
卡尔曼(kalman)滤波原理 kalman滤波器可以看做状态变量在由观测生成的线性空间上的射影。 如下状态空间模型描述的动态系统: (1) (2)式中,k为离散时间,系统在时刻k的状态为;为对应状态的观测信号;为输入的白噪声;...
2021-07-04 16:12:16
2168
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人