- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 EXT4文件系统特性说明
记录自文件系统创建以来(对应镜像烧录以来)总写入数据量的持久化计数器(单位 KB),主要用于评估闪存设备的磨损程度。在嵌入式设备中,针对EMMC使用的文件系统,很多都使用了EXT4格式,下面介绍几个实用的功能。可以看到分区检测到错误后,就被重新挂载为read-only了,避免进一步被破坏。文件系统支持的特性,比如has_journal large_file等。remount-ro:将文件系统重新挂载为只读。panic:触发内核 panic(系统崩溃)一般推荐使用remount-ro的方式。
2025-12-09 14:00:35
101
原创 全志SPI-NG框架使用说明
SPI-NG框架,NG为next generation的缩写,是全志新的SPI框架,在新的BSP包中已全部启用。支持SPI 主从模式的配置和使用。
2025-11-01 15:19:52
301
原创 RTNETLINK answers: File exists问题分析
最近在调试以太网时一直出现“RTNETLINK answers: File exists”错误,刚开始一直以为是以太网驱动的问题,以太网采用的是MII接口,phy采用的YT8522,很奇怪的是出现上述错误时,以太网其实工作是正常的。手动单个以太网去配置时,发现每次都是第一个配置的成功,第二个配置的就报上述的错误,如下,先配置eth1,再配置eth0,则eth0配置时报错。那问题就在gateway这句话了,两个配置文件中都有这个配置,将eth1中的gateway注释掉就OK了。
2025-10-30 19:55:05
378
原创 Linux oops时进行panic
oops是内核遇到错误时发出的提示“声音”,oops有时候会触发panic,有时候不会而是直接杀死当前进程,系统可以继续运行。比如说内核态下的段错误,当内核设置了panic_on_oops=1的时候,oops会触发panic。此时oops出发panic,系统进行重启。配置oops时,内核panic。
2025-10-19 16:51:37
365
原创 在git仓库的空文件夹中添加.gitkeep文件
在我们使用git进行代码管理的时候,有一个问题是,针对空文件夹,git并不会提交到仓库中,所以往往本地代码编译没问题,上传到仓库中,其他人下载下来之后,会出现文件夹找不到,从而出现编译错误。因此针对空的文件夹,有必要进行相应的处理。在git仓库的根目录运行该脚本,会自动搜索空文件夹,并在空文件夹中加入.gitkeep文件。即可将本次的修改提交到远程仓库中。
2025-09-09 14:11:53
288
原创 编写C程序进行进制转换
通常我们需要将获得的10进制数据转换为16进制数据,其实方法有很多,但是通过编写程序我们可以快速的得到结果。功能:将input.txt文件中的数字(10进制)转换成16进制并按照8位的样式输出。
2025-09-09 13:11:10
170
原创 全志T3C MDIO查找phy的流程
ifconfig eth0 up的时候会自动遍历一遍phy地址,并将响应到的第一个phy地址作为phy地址,针对有的phy芯片,比如裕太phy的,既会响应配置的phy地址,又会默认响应0地址的情况,T3C这里的流程会默认该phy地址为0地址,所以这里需要注意一下,要根据实际需求做相应的修改。它有两个流程,第一个流程是mdio驱动加载的时候根据设备树查找一次,第二个流程是上层通过ifconfig 拉起一次,并做遍历查找。其中第一个流程其实未能找到phy设备。在这个流程中并没有真正的去查找phy设备。
2025-08-24 19:08:19
321
原创 SPI测试程序spidev_test使用
在我们进行SPI驱动开发的过程中,首先第一条是确保SPI线路是通的,Linux代码中提供了spidev_test测试程序供我们使用。如何编译出spidev_test程序可以参考我之前的一篇文章在硬件上我们可以将SPI接口的四根线引出,其中MOSI与MISO短接,用来测试收发是否正常。配合进行查看。步骤如下。
2025-08-14 18:47:45
515
原创 ubuntu下U盘格式化介绍
有时候我们需要ubuntu下进行U盘的修复以及格式化,虽然我们也可以在windows下进行,但是有时候对格式化有要求,比如格式化为ext4格式时,使用windows却很不方便。下面介绍如何在ubuntu下进行U盘的格式化。
2025-08-13 20:48:06
341
原创 在uboot中加入硬件看门狗喂狗的操作
摘要:本文介绍了在uboot阶段实现硬件看门狗喂狗的必要性及方法。由于某些看门狗芯片复位周期短(1-2秒),可能在Linux启动前就触发复位,且uboot调试时也需要维持系统运行。实现方法包括:1)开启CONFIG_HW_WATCHDOG配置开关;2)实现hw_watchdog_reset函数,通过GPIO操作外部看门狗芯片的PL7引脚进行电平翻转。该方法通过在耗时操作中自动调用喂狗函数,确保uboot阶段的系统稳定性,比中断方式更简便高效。
2025-08-12 19:23:48
315
原创 进入uboot并超时复位流程
在平常调试过程中,默认进入uboot的方式为启动时倒计时按任意键或特殊键,停在uboot阶段。然后如果持续一段时间没有命令输入时,uboot自动复位重启。
2025-08-10 11:23:48
194
原创 Linux下沁恒以太网芯片操作
我司使用了沁恒的几种USB转以太网芯片,比如CH397A,CH339F等,沁恒的以太网芯片有一个特点是免驱动,因为它是支持 CDC-ECM 协议和 CDC-NCM 协议及 RNDIS 协议的,只要内核配置文件中选中相应的配置即可。
2025-08-09 22:08:38
546
原创 Linux下以标准时间阅读审计日志
在我们的Linux系统中,除了一些应用的日志系统的日志供分析外,我们还需要添加一些特殊的日志,比如审计日志,用于记录一些设定好要监控的事件。
2025-08-07 09:46:31
281
原创 Linux下采用sys接口进行GPIO调试
在进行设备调试过程中,经常需要验证相应GPIO是否存在焊接问题,不同的芯片平台,直接采用寄存器操作的方式存在很大的差别,那如何用一种统一的方式进行调试呢,答案是采用sys的接口。
2025-08-05 18:59:07
304
原创 红外PWM驱动配置
在我们的设备中,有时需要使用红外进行通信,红外由于具备不接触,远程的特点,特别适合现场操作。支持红外功能其中有一个重要的特性是需要输出38KHz的方波,数据在这个方波上进行调制,成为载波,发送出去。
2025-08-04 11:33:13
232
原创 Linux下查看设备树
平时我们要查看终端中的设备树,一般是在uboot下,使用fdt命令来查看,那有没有在Linux下查看设备树的方法呢,因为有时设备树存在叠加(overlay)的情况,直接在uboot下看到的设备树,并不是最终的设备树。即max-frequency值为:0x5f5e100, 10进制为100MHz.
2025-07-31 15:50:56
288
原创 设备异常重启分析
在设备调试过程中,有时会出现莫名的重启,看重启日志发现是系统主动在重启,类似像reboot的命令,但是此时我们并没有安装应用。而我们硬件上对这个GPIO未做处理,是悬空的,导致终端一启动就触发了这个gpio中断,导致系统产生了这个KEY_POWER按键。systemd接收到了之后,就响应这个KEY_POWER,进行系统的重启。D9平台是设计了一个gpio按键并将这个按键值设为了KEY_POWER,并设置为低电平触发,当这个gpio脚为低时,会触发系统响应KEY_POWER按键,并重启。
2025-07-29 13:44:58
336
原创 我的创作纪念日
摘要:一位技术博主分享在CSDN平台上的创作心得,通过日常学习记录、项目经验分享和技术交流,收获了26位粉丝、53次点赞及超1万次访问量。创作不仅加深了技术理解,更在工作之余带来了成就感。博主坚持将问题解决方案整理成文,既帮助他人也记录成长历程。文章入选里程碑专区,优质内容有机会获得奖励,同时期待与更多社区朋友共同进步。(150字)
2025-07-27 15:03:15
3872
原创 解决systemd udev长时间运行超时的问题
【摘要】针对systemd处理udev事件时超时的问题,可通过修改配置文件增加超时时间。修改方案包括:1)创建/etc/udevd-conf文件设置6000秒超时参数;2)修改systemd-udevd.service文件,添加环境变量引用并调整WatchdogSec为6分钟。这些调整可确保U盘等需要长时间处理的事件能够完整执行,避免因默认超时导致的中断问题。配置修改后需重启服务生效。
2025-07-26 11:30:56
796
原创 yocto简单介绍与使用
Poky是yocto工程的一个参考发行版,仓库中配套了对应的bitbake程序。BitBake最初是OpenEmbedded项目的一部分。2004年,OpenEmbedded项目被拆分为BitBake与OpenEmbedded(元数据集)。Poky在结合bitbake与OpenEmbedded部分的基础上,创建了自己的发行版。假如用烹饪一桌酒席来形容构建发行版Yocto : 就是饭店名Poky : 就是厨房(以及提供作为参考的菜的搭配套餐)
2025-07-22 16:55:58
501
原创 systemd查看服务的相关命令
1、systemctl命令列出所有服务。5、列出所有enabled状态的服务。2、列出所有active状态的服务。4、列出所有failed状态的服务。3、列出所有正在运行的服务。7、列出服务启动所花的时间。
2025-07-22 10:31:33
181
原创 logrotate&timer使用与介绍
本文介绍了Linux日志管理工具logrotate的使用方法。主要内容包括:1) logrotate通过/etc/logrotate.conf主配置文件和/etc/logrotate.d/目录管理日志轮转;2) 配置示例展示了日志转储频率、保留周期、压缩等参数设置;3) 可通过cron定时任务或systemd timer触发执行。
2025-07-16 09:31:33
411
原创 裕泰PHY的扩展寄存器操作
摘要:裕泰PHY通过MII寄存器实现扩展寄存器访问,解决了标准32个寄存器数量不足的问题。具体方法是通过操作0x1E和0x1F两个寄存器:将目标地址写入0x1E后,从0x1F读取或写入数据即可实现对扩展寄存器的访问。文档还提供了详细的寄存器位操作规范,包括单比特和多比特的读写方法,并举例说明了使用mdiotool工具的具体操作步骤。这种扩展机制既保持了兼容性,又提供了更大的寄存器访问灵活性。
2025-07-14 13:53:28
409
原创 Linux下网络端口检测工具使用
本文介绍了三种网络端口检测工具的使用方法:1) Telnet命令用于测试远程服务器端口连通性,提供基本连接语法和示例;2) Nmap工具用于扫描主机端口状态和服务版本,展示端口扫描和版本检测命令;3) Linux系统下的lsof和netstat命令,用于查看本地端口使用情况,分别演示了通过端口号查询进程信息和列出所有监听端口及其对应程序的用法。这些工具可帮助管理员进行网络连接测试、端口扫描和服务监控等运维工作。
2025-07-12 14:52:58
362
原创 Git使用
在 Git 中,reflog 是一个记录着本地仓库的引用变化历史的日志。它记录了每一次引用的改变,比如分支、标签的创建、删除或者移动等操作。当我们在本地仓库做了一些操作后,可能会出现一些旧的reflog 条目,这些条目占据了空间并且没有实际的用处,所以我们需要移除它们以优化仓库的性能。创建一个空白分支,该分支不包含当前其他分支的任何提交。在ubuntu上搭建git服务器。删除全部旧的reflog条目。将分支与仓库分支建立连接。在客户端进行仓库的拉取。查看reflog条目。
2025-07-09 10:46:23
251
原创 ubuntu下USBIP使用
2) 将usb.ids文件,拷贝到/usr/share/hwdata/usb.ids。2) 将usb.ids文件,拷贝到/usr/share/hwdata/usb.ids。6)通知底层驱动,绑定设备,远端可看到我们绑定过的设备,我们的设备ID为1-1.3。5)查看电脑主机上的USB设备。4)挂载服务器上的USB设备。3)列出服务器端的设备列表。1) 安装USBIP。1) 安装USBIP。
2025-07-04 16:43:25
547
原创 Linux 代码提交时自动进行检查
sed是一个流编辑器,其强大的功能可以帮助我们处理很多重复性的工作。比如,Linux内核的coding style要求,行尾不能有空格(包括Tab),去除这些空格就可以借助sed。通过该方式能够确保我们的代码风格符合Linux内核的编码规范。对错误进行修改后,再次git commit,检查通过后,将会进入填写提交信息界面。1>在本地仓库的.git/hooks 目录下添加pre-commit脚本。2> 提交代码时自动进行代码检查,通不过时,自动停止提交,并打印错误日志。
2025-07-03 14:55:23
151
原创 trace_printk使用
trace_printk是Linux内核中用于调试的一个工具函数,主要用于在内核中输出调试信息。它的使用方式与printk类似,但trace_printk输出的信息会被记录到。中,而不是直接输出到控制台或日志文件中。这使得trace_printk特别适用于需要追踪函数调用和执行流程的场景。
2025-07-01 11:32:26
321
原创 Ubifs文件系统制作
当制作根文件系统时,需要注意,最后发现给根文件系统分配的分区大小最小为25MB,低于25MB,根文件系统将无法挂载。-e逻辑可擦除块大小为1032192B=(每块的页数-2)*页大小=(128-2)*8192=1032192 B。-m最小输入输出大小为8KiB(8192bytes),也即0x00002000,一般为页大小。最近终端使用了4GB的nandflash,该flash的页大小为8KB,块大小为1MB。-p物理可擦出块大小为1MB=每块的页数*页大小=128*8KiB=1MB。
2025-06-27 17:13:03
255
原创 i2c-tools工具使用
本文介绍了常用的I2C调试命令及用法:1)i2cdetect检测从设备地址,2)i2cdump读取从设备的所有数据,3)i2cget读取指定寄存器数据,4)i2cset写入数据到指定寄存器。所有命令都支持-y跳过提示和-f强制操作选项。文中以0x32从设备地址为例,展示了从i2c-0总线读取数据的完整输出格式,包括各寄存器的16进制数据值及其ASCII字符表示。这些命令是嵌入式系统开发中调试I2C设备的实用工具。
2025-06-09 10:46:29
396
arm linux下简单对时程序
2023-09-01
解决OnNcLButtonUp不能响应的问题
2010-11-30
windows 程序设计 chm版
2010-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅