自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (1)
  • 收藏
  • 关注

原创 进程状态 SDKR

这些状态可以通过ps命令查看,例如ps -ef命令可以显示所有进程的详细信息,包括进程状态。说明:进程已经执行完毕,但父进程还没有调用wait系统调用来获取其退出状态。说明:进程在等待磁盘操作时不能被信号唤醒,只能在磁盘操作完成后由内核唤醒。含义:表示进程处于不可中断的睡眠状态,通常是在等待磁盘I/O操作完成。说明:进程正在CPU上执行指令,或者在等待CPU资源以便执行。含义:表示进程处于睡眠状态,通常是在等待某个事件的发生。含义:表示进程已经结束,但父进程尚未回收其资源。R状态(Running)

2025-02-21 14:37:30 204

原创 iperf

iperf 是一个网络性能测试工具,用于测量TCP和UDP的网络带宽。-c 参数表示客户端模式,用于指定要连接的服务器地址。权限:在某些情况下,可能需要root权限来运行 iperf。防火墙:确保服务器和客户端之间的防火墙允许相应的端口通信。服务器端:确保服务器端已经启动 iperf 服务。-p 5001:指定服务器的端口号,默认是5001。<server_ip>:服务器的IP地址或主机名。-b 1M:指定带宽为1Mbps。-t 10:测试持续10秒。-P 4:使用4个并行线程。-u:使用UDP协议。

2025-02-13 19:07:31 461

原创 hs400

在eMMC的HS400模式中,CLK(时钟信号)是由主控制器提供的。CLK信号用于同步数据传输,其频率可以在52MHz至200MHz之间。在HS400模式下,数据传输通过DDR(双倍数据速率)技术实现,允许在时钟的上升沿和下降沿都进行数据传输,从而提高了数据传输的速度。HS400和HS400 ES是eMMC协议中的两种不同的高速模式,主要用于嵌入式系统中的数据存储和传输。HS400 ES是HS400的增强版本,提供了更高的性能和更多的功能。

2025-02-08 00:22:29 648

原创 Linux内核下开启mtdblock

在配置过程中,需要选择支持MTD设备的相关选项,例如MTD_BLOCK和MTD_CHAR,以支持块设备和字符设备模式的读写。例如,mount -t jffs2 /dev/mtdblock0 /mnt将JFFS2文件系统挂载到/dev/mtdblock0设备上。创建mtdblock设备节点:在内核启动后,系统会自动创建/dev/mtdblock*设备节点,这些节点对应于MTD分区的块设备接口。块设备读写:通过/dev/mtdblock*设备节点,可以使用标准的块设备读写操作来访问MTD分区。

2025-01-21 18:27:42 387

原创 Linux下擦除Flash

用于擦除指定范围内Flash的内容,如果不指定范围,默认擦除起始位置的第一块,使相应Flash变为全1。:是一种通用的Linux命令,可以用于复制文件和设备,也可用于擦除Flash存储器。:是一个开源的工具,主要用于读取、编程和擦除各种硬件设备上的闪存。:用于对MTD进行调试,可用于擦除Flash存储器的指定区域。:用于擦除整个分区的数据,同时也会进行坏块检测。中的数据写入设备,从而擦除设备中的原有数据。,这会擦除所有支持设备的Flash存储器。参数用于显示擦除的过程信息,参数指定要重复擦除的次数,

2025-01-21 18:24:06 521

原创 mke2fs

mke2fs -t ext4 -F 是一个用于创建 ext4 文件系统的命令。具体来说,mke2fs 是一个用于创建 ext2、ext3 和 ext4 文件系统的工具,-t ext4 参数指定了要创建的文件系统类型为 ext4,而 -F 参数则用于在创建文件系统之前强制检查设备上的坏块。这个命令会在 /dev/sdb1 设备上创建一个 ext4 文件系统,并在创建之前检查设备上的坏块。请注意,这个命令会格式化指定的设备,这意味着设备上的所有数据都将被删除。-F:在创建文件系统之前强制检查设备上的坏块。

2025-01-15 16:13:09 178

原创 mmcblk设备源码添加位置

根据搜索结果,MMCblk设备的驱动源码位于drivers/mmc/card(core)/block.c文件中,其中mmc_blk_probe()函数是块设备驱动初始化时的入口函数,主要负责分配与块设备紧密相关的struct gendisk结构,并将其添加到系统中。MMCblk设备的源码添加主要涉及到drivers/mmc/card(core)/block.c文件中的mmc_blk_probe()函数,该函数负责块设备的初始化和注册。块设备注册:mmc_blk_probe()函数负责注册块设备。

2024-12-27 13:20:34 170

原创 CMD2错误与eMMC

这种情况下,用户采取了一系列的排查步骤,包括检查硬件引脚定义、命令时序、重新格式化eMMC以及测量供电电压。最终,通过在数据引脚和时钟引脚上接上拉电阻,解决了初始化失败的问题。如果在执行CMD2命令时出现错误,可能是由于硬件连接问题、命令时序错误、文件系统损坏或eMMC模块本身的问题。检查硬件连接:确保eMMC模块的所有引脚都正确连接,特别是数据引脚和时钟引脚。测量供电电压:使用万用表等工具测量eMMC模块的供电电压,确保其在正常范围内。接上拉电阻:在数据引脚和时钟引脚上接上拉电阻,以确保信号的稳定性。

2024-12-14 00:37:45 240

原创 内存占用VSZ RSS

(Resident Set Size)列表示实际使用的物理内存,包括用户态和内核态的内存。命令,可以查看系统的内存使用情况,包括内核代码段、数据段、内核栈等的内存使用量。(Virtual Memory Size)和。(Resident Set Size),其中。键可以按照内存使用量排序进程,显示的。表示实际使用的物理内存大小。命令,可以查看每个进程的。命令,可以查看内核通过。

2024-12-11 19:38:39 471

原创 内核initcall调用顺序

core_initcallpostcore_initcallarch_initcallsubsys_initcallfs_initcallrootfs_initcalldevice_initcall (module_init)late_initcall

2024-11-25 21:59:33 251

原创 VD 帧同步

在数字视频领域,"frame start"指的是视频帧开始的标志。在视频信号的传输和处理中,帧同步信号(VSYNC)通常用作指示新帧开始的信号。这个信号确保接收设备能够正确地识别和解码每一帧的数据。例如,在LCD显示屏的接口时序中,VSYNC信号用于通知显示屏准备接收新的一帧数据。在您提到的“vd信号 frame start”中,“vd”可能是指视频信号(Video Signal)

2024-11-13 23:50:23 201

原创 HardLockUp

如果系统中的任何 CPU 在预定的时间窗口内没有收到任何 hrtimer 中断,则硬锁定探测器 (NMI 中断处理程序) 将生成内核警告或调用 panic,具体取决于配置。当检测到时,系统通常会保持锁定状态,除非更改了默认行为,例如通过 sysctl 命令设置 hardlockup_panic 参数来强制系统在硬锁定发生时立即崩溃。根据搜索结果,最新的讨论和分析集中在 Linux 内核的硬锁定检测和预防措施上。例如,有关于 CFS 带宽时钟中断处理过程中出现硬锁定的案例分析,以及针对该问题的修复方案。

2024-10-28 21:00:11 351

原创 sysstat-master安装

包括pidstat sysstat iostat tapestat等工具。

2024-10-22 22:12:04 123

原创 user_debug

要在Linux内核中打开user debug,您可以通过设置内核命令行参数user_debug来实现。例如,您可以设置user_debug=31来启用所有类型的用户空间故障信息,这是通过将各个标志位(1, 2, 4, 8, 16)相加得到的最大值。在某些内核配置中,还有一个名为CONFIG_DEBUG_USER的配置项,它与user_debug参数一起工作,用于启用详细的用户故障消息。在进行这些更改后,当用户空间程序发生崩溃时,内核将提供更多的上下文信息,有助于开发者定位和解决问题。

2024-10-22 20:49:55 341

原创 free命令

free命令在Linux系统中用于显示系统内存的使用情况,包括物理内存、交换空间(swap)以及内核缓冲区的使用情况。如果您想要周期性地监控内存使用情况,可以使用free -s 10命令,这将每10秒更新一次内存信息。buff/cache中的内存实际上是可以被回收并重新分配给应用程序的,因此available内存通常比free内存要大。交换空间(swap)是磁盘上的一块区域,用于在物理内存不足时提供额外的虚拟内存空间。used:已经被使用的内存和交换空间大小。-t:显示内存和交换空间的总和。

2024-09-02 16:25:26 312

原创 schedule_hrtimeout_range_clock

用于安排一个高分辨率定时器事件。这个函数的目的是将一个定时器事件排入内核的调度队列,以便在指定的超时时间后执行。: 这是一个表示延迟时间的参数,单位通常是纳秒(ns)或者微秒(us)。: 这是一个表示延迟类型的参数,0通常表示绝对延迟,即从现在开始计时。: 这是一个时钟选择标志,表示使用系统的实时时钟作为定时器的参考时钟。: 这是一个内核函数,用于安排一个基于范围的高分辨率定时器事件。: 这是一个枚举值,指示定时器应该以绝对时间模式运行。结构体的指针,其中包含了安排的定时器事件的截止时间。

2024-08-07 14:30:22 335

原创 cd-detect-level

"sdmmc cd-detect-level"通常指的是SDMMC(Secure Digital Multimedia Card)接口中用于检测卡插入或移除的信号水平。在嵌入式系统的设备树(Device Tree)配置中,cd-detect-level属性用于指定卡检测信号的电平逻辑,以及是否需要反转该信号。在设备树中,cd-detect-level属性可以设置为active_low或active_high,分别表示卡检测信号在低电平或高电平时表示卡的存在。

2024-08-05 12:32:11 224

原创 CONFIG_MTD_SPI_NOR_USE_4K_SECTORS

标准的NOR Flash擦除单元大小通常是64KB,而启用CONFIG_MTD_SPI_NOR_USE_4K_SECTORS选项会使得擦除单元减小到4KB,这与JFFS2的预期不匹配。在使用JFFS2文件系统时关闭CONFIG_MTD_SPI_NOR_USE_4K_SECTORS配置的原因是,JFFS2文件系统通常期望较大的擦除单元大小,以便有效地管理闪存空间并减少擦写次数。综上所述,CONFIG_MTD_SPI_NOR_USE_4K_SECTORS的启用与否取决于具体的硬件支持和软件需求。

2024-07-19 15:14:45 637

原创 objcopy

objcopy -I binary -O binary --pad-to=0x10000 --gap-fill=0xff 是一个用于处理二进制文件的命令,它属于GNU binutils工具集中的objcopy命令。如果您的目的是增加二进制文件的大小,可以使用dd命令的bs(块大小)和count(计数)选项来指定要添加的额外字节数,并使用seek(寻址)选项来移动写入位置。如果目的是减少文件大小,可以使用dd命令的if(输入文件)和of(输出文件)选项来创建一个新的较小的文件副本。

2024-07-18 21:37:51 561

原创 dd一个全ff命令

这条命令的作用是将/dev/zero设备中的数据(全为0)通过管道传递给tr命令,tr命令再将所有的0替换为FF。bs=1指定了块大小为1字节,count=1024000则指定了总共要处理的字节数为1024000字节,这相当于1MB。参数详解 if=/dev/zero:从/dev/zero设备读取数据,该设备提供无限的空字符流。bs=1:指定块大小为1字节。tr '\000' '\377':tr命令用于转换字符,这里将所有输入的\000(空字符,即0x00)替换为\377(八进制表示的0xFF)。

2024-07-11 00:45:36 463

原创 Iperf基本用法

Iperf支持TCP和UDP协议,可以用于点对点或客户端-服务器等模式的网络测试。在Windows系统中,您可以下载Iperf的预编译版本,并将其解压到任意文件夹中。以上是Iperf的一些基本用法,您可以根据实际需要调整各种参数来满足不同的测试需求。更多详细的使用方法和参数,您可以通过运行iperf3 -h命令来查看帮助文档。在Linux系统中,您可以使用包管理器安装Iperf。Iperf的使用非常灵活,可以通过命令行参数来调整测试的各种参数。iperf3 -c <服务器IP地址> -u -b 10M。

2024-07-04 22:10:49 636

原创 objdump

objdump的详细使用方法和选项可以通过运行man objdump或objdump --help来获取。-d 或 --disassemble:反汇编指定的文件或文件的特定部分。-h 或 --section-headers:显示文件的节头信息。-x 或 --full-contents:显示文件的全部内容。-C 或 --demangle:将符号名解码成用户级别的名字。-g 或 --debugging:显示调试信息。-t 或 --syms:列出文件的符号表。

2024-07-04 22:05:42 651

原创 eth0设备繁忙

当您遇到 ifconfig eth0 hw ether 20:24:07:04:18:00 命令执行后显示 ifconfig: SIOCSIFHWADDR: Device or resource busy 错误时,这意味着您尝试更改的网络设备(在这个例子中是 eth0)目前正被占用,无法进行硬件地址的更改。请确保在执行这些命令时具有足够的权限,通常需要使用 sudo 来获取超级用户权限。首先,您需要停止网络服务或者禁用网络接口,以便释放对网络设备的占用。一旦网络服务或接口被禁用,您应该能够更改硬件地址。

2024-07-04 20:30:50 927

原创 CONFIG_FEATURE_MOUNT_NFS

在某些情况下,例如使用BusyBox作为工具集时,您可能需要在BusyBox的配置中启用对NFS的支持,这通常涉及到选择Busybox Settings -> General configuration -> RPC support,并确保Select nfs被勾选。此外,如果您正在使用Buildroot来构建根文件系统,您可能需要在Buildroot的配置中启用NFS支持,包括nfs-utils和rpcbind服务组件。

2024-07-04 17:39:34 490

原创 ​svn propset修改可执行权限

​。

2024-06-22 16:19:30 231

原创 ifconfig eth0 hw ether

请注意,更改 MAC 地址可能会影响网络连接,因为 MAC 地址是网络上识别设备的唯一标识符。此外,某些网络环境可能限制 MAC 地址的更改,或者要求使用特定的 MAC 地址。ifconfig hw ether 是一个用于在 Linux 系统中设置或更改网络接口的硬件地址(即 MAC 地址)的命令。首先,您需要确定要更改 MAC 地址的网络接口名称,通常是 eth0, eth1 等,取决于您的系统配置。其中 XX:XX:XX:XX:XX:XX 是您希望设置的新 MAC 地址。

2024-06-18 10:05:04 914

原创 sdhc节点

在设备树中,SDHC节点的命名通常遵循一定的约定,例如mmc@<base-address>,其中<base-address>是SDHC控制器的基址。节点的命名和属性应当符合设备制造商提供的设备树绑定文档(Device Tree Bindings),以确保设备树的正确性和兼容性。通过这些属性,内核可以正确地配置SDHC控制器,包括设置寄存器、配置中断和时钟信号,以及控制GPIO信号,从而使SDHC控制器能够正常工作,支持SD卡的读写操作。reg:这个属性定义了设备的寄存器地址空间,包括起始地址和长度。

2024-06-18 08:52:47 252

原创 gd->fdt_blob

如果 U-Boot 配置为使用设备树(通过 CONFIG_OF_CONTROL 标志启用),那么在启动时会调用 fdtdec_setup 函数来设置 gd->fdt_blob 的值,该值指向设备树 blob 的存储位置。gd->fdt_blob 是在 U-Boot 中用于指向设备树 blob(binary blob)的指针。在 U-Boot 的源代码中,fdt_blob 通常在 board_f.c 文件中被初始化,并且在 fdtdec_setup 函数中被设置为设备树 blob 的地址。

2024-06-05 10:33:01 529

原创 tar.lzma

lzma 是 LZMA 压缩文件的扩展名,而 .tar.lzma 则表示先使用 tar 命令打包文件,然后再使用 LZMA 算法进行压缩。如果您想要创建一个 .tar.lzma 文件,首先需要使用 tar 命令创建一个普通的 tar 归档文件,然后使用 lzma 命令对其进行压缩。这将首先创建一个名为 directory.tar 的 tar 归档文件,然后使用 lzma 命令对其进行压缩,生成 directory.tar.lzma 文件。您可以使用 lzma 命令来解压 .lzma 文件。

2024-05-27 19:31:35 485 1

原创 udev是什么?

udev规则:位于/etc/udev/rules.d/目录下,用于定义设备的处理逻辑。事件处理:udev守护进程udevd监听这些uevent,并根据/etc/udev/rules.d/目录下的规则文件来决定如何响应这些事件。udev配置文件:位于/etc/udev/udev.conf,包含udev的基本配置信息,如设备文件的根目录、日志级别等。设备节点管理:根据规则,udev可以创建、删除或更改/dev目录下的设备节点,或者创建符号链接,以便更方便地访问设备。

2024-05-20 20:22:00 390

原创 ifconfig -a出现sit0设备

ifconfig -a出现sit0设备。把这三个选项关掉即可。

2024-05-19 00:26:46 298

原创 ifconfig 无输出

ifconfig 命令只能显示已经激活的网卡,ifconfig -a 命令能显示所有网卡,如果ifconfig -a 能显示网卡而ifconfig 未显示,说明网卡硬件没问题,只是网卡没有激活。注:输入ifconfig eth0 ip后会先出现“eth0: link is not ready”,过一会后才会ready。1、参考这个连接解决:https://www.linuxprobe.com/ifconfig-no-output.html。ifconfig 无输出。

2024-05-15 23:20:44 418

原创 __initramfs_start

https://blog.csdn.net/u012332571/article/details/121906322start_kernel-> vfs_caches_init -> mnt_init -> init_rootfs -> init_mount_treekernel_init -> kernel_init_freeable() ->do_basic_setup()rootfs_initcall(populate_rootfs)

2024-05-13 20:07:12 149

原创 gfp.h

在这个文件中,定义了一些重要的宏,如GFP_KERNEL、GFP_ATOMIC、GFP_NOFS等,它们分别代表了不同的内存分配策略。需要注意的是,由于include/linux/gfp.h是Linux内核的一部分,因此它并不是标准C库的一部分,所以在编写用户空间的程序时,你可能无法直接包含这个头文件。通常,这需要你有root权限,并且你的系统上安装了Linux内核开发包。此外,include/linux/gfp.h还定义了一些用于内存管理的类型,如gfp_t,这是一个用于表示内存分配策略的枚举类型。

2024-05-11 16:05:01 280

原创 解压.cpio.gz文件的步骤

cpio是一种用于创建和恢复文件系统映像的工具,而gz则是gzip压缩工具的扩展名。当你遇到一个名为.cpio.gz的文件时,这意味着这个文件已经被cpio和gzip联合压缩过。解压这样的文件需要两个步骤:首先解压缩,然后解cpio。以上就是解压.cpio.gz文件的基本步骤。需要注意的是,这些命令需要在具有相应权限的用户下执行,否则可能会因为权限不足而导致错误。d:删除模式,如果存在同名的文件或目录,则将其删除;m:标记模式,更新已存在的文件的最后修改时间;v:冗余模式,显示正在处理的文件名。

2024-05-11 10:33:07 1367

原创 make initramfs

如果你的内核支持rdinit和initrd参数,你可以在启动内核时传入这两个参数,以加载你的initramfs。在Arch Linux和其他一些基于Pacman的发行版中,可以使用mkinitcpio工具来创建initramfs。以上就是关于如何制作initramfs的一些基本步骤,具体过程可能会因你的操作系统和硬件的不同而有所差异。这样就会生成一个名为initramfs.cpio.gz的压缩包文件,这就是你的initramfs。在你的根目录下创建一个名为rootfs的文件夹,并将你需要的文件放入其中。

2024-05-10 19:17:17 437

原创 initramfs bootargs

在修改bootargs之前,建议您备份现有的启动加载器配置文件(如GRUB的/etc/default/grub),并确保了解每项参数的作用。initramfs bootargs 是指在启动Linux系统时传递给内核的参数,这些参数告诉内核如何加载和初始化initramfs(初始内存文件系统)。ramroot 或 root=/dev/ram0: 有些发行版使用这个选项而不是root=/dev/ram0来指示initramfs作为临时根文件系统。/dev/ram0 是initramfs所在的虚拟设备。

2024-05-10 09:31:22 487

原创 CONFIG_INITRAMFS_SOURCE

CONFIG_INITRAMFS_SOURCE 是一个内核配置选项,它指定了初始 RAM 磁盘(initrd)或初始 RAM 文件系统(initramfs)文件的位置,该文件将被 Linux 内核在启动过程中使用。引导加载器和内核交接: 如果系统使用的是存储在内核主要搜索路径之外的引导加载器(如独立分区或 GUID 分区表(GPT)上的 GRUB),initramfs 可能需要包括定位并加载适当引导加载器的代码,并将控制权传递给它。这是一个临时根文件系统,内核启动后立即使用它,但在挂载实际根文件系统之前。

2024-05-09 18:13:22 926

原创 arch_must_set_this

总的来说,"arch_must_set_this"是一个重要的宏,它在Linux内核的构建和执行过程中起着关键的作用。在某些情况下,你可能需要根据你的硬件平台或者特定的需求来调整这个值。例如,如果你的硬件平台的引导程序需要一个特定的加载地址,你可能需要将"arch_must_set_this"设置为这个特定的地址。需要注意的是,如果你更改了"arch_must_set_this"的值,可能需要相应地调整其他相关的宏,比如"UIMAGE_ENTRYADDR",以确保内核的加载和执行不会出现问题。

2024-05-07 00:34:51 243

原创 环境变量ENV_IS_NOWHERE配置选项

在一些嵌入式系统中,U-Boot环境变量通常被存储在内存或者闪存等地方,以便于启动和运行程序时能够快速获取这些环境变量的信息。然而,当定义了"ENV_IS_NOWHERE"这个宏后,就意味着这些环境变量没有被存储在任何地方,这可能会导致一些问题,比如无法正确启动程序等。在实际应用中,如果遇到因为"ENV_IS_NOWHERE"导致的错误,可能需要检查相关的配置文件,确保U-Boot环境变量被正确地存储在了合适的地方。在一些情况下,可能需要修改相关的代码或配置,以确保程序能够在没有环境变量的情况下正常运行。

2024-05-03 12:19:38 277

LM2596____datasheet

LM2596__pdfxfeszdhbrdxth

2011-05-20

空空如也

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

TA关注的人

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