自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

“Struggle”的博客

随心所欲,不逾矩

  • 博客(83)
  • 收藏
  • 关注

原创 ALSA音频用户态APP

本文介绍了Linux ALSA音频应用编程的基础知识和实践方法。首先讲解了音频基本概念如采样精度、通道数、帧、周期和缓存大小等。然后介绍了ALSA的编译方式,通常需要芯片厂商提供的交叉编译环境。文章详细分析了ALSA用户空间API与内核交互的机制,包括各种接口设备文件的用途。还展示了如何使用标准ALSA命令行工具进行音频操作。最后提供了一个使用ALSA库编程的示例代码,演示了如何打开设备、配置参数和进行音频数据传输。文章为初学者理解ALSA编程提供了实用的入门指导。

2025-06-10 09:37:42 776

原创 emmc/SD mode “signal voltage“ 值

eMMC信号电压(signal voltage)由主机控制器(如SDHC)与eMMC芯片协商确定,通常为3.3V或1.8V。调试发现当工作在High Speed模式时,内核显示3.3V但实际硬件为1.8V。解决方法包括:检查硬件接线(上拉电压是否可调)、验证芯片与控制器支持的模式、在mmc_select_hs函数中添加电压切换功能(调用mmc_set_signal_voltage)。关键调试点包括mmc_send_op_cond命令的电压协商过程和模式选择函数的电压切换实现。

2025-06-05 08:47:10 522

原创 Linux上给SD卡创建分区并格式化

本文介绍了对SD卡进行分区操作的步骤:1)先卸载已挂载分区(如/dev/sdb1、/dev/sdb2);2)使用fdisk工具删除旧分区并创建新分区,注意设置起始扇区地址;3)用mkfs命令将新分区格式化为ext4或FAT32文件系统;4)最后创建挂载目录并挂载新分区。操作涉及umount、fdisk、mkfs和mount等关键命令,需谨慎执行以确保数据安全。

2025-05-28 17:27:46 508

原创 编译器ar命令参数

ar(Archive)是 Unix/Linux 系统中用于创建、修改和提取静态库(.a 文件)的工具。静态库是多个目标文件(.o)的集合,常用于打包和分发代码库。以下是ar.alibmylib.afile1.ofile2.orcs.aqtxd。

2025-05-23 10:35:01 860

原创 为啥农民能造飞机,我却觉的找工作好难?

低学历者的 “个体化成功”自制飞机的农民,追求的往往是个人理想的实现(如 “我就想飞上天”),这种目标不需要与他人比较,只要自己认可就有意义。他们的 “成功” 是内向型的,更关注过程而非结果。高学历者的 “系统性竞争”社会对高学历者的期待是在既定赛道(如职场、学术)中超越他人。当学历从 “稀缺资源” 变为 “入场券”(如研究生遍地走),竞争维度从 “有没有” 变成 “好不好”,压力指数级上升。许多人在 “内卷” 中迷失了自我价值,只能用 “找工作难”“不如别人” 等外部评价。

2025-05-22 21:45:59 668

原创 Linux shell 正则表达式高效使用

正则表达式是Linux命令行中强大的文本处理工具,能够极大提高搜索和匹配效率。下面为新手提供一个简单教程,介绍如何在`grep`和`find`命令中使用正则表达式。使用建议:**使用`grep`时要加`-E`选项**使其支持扩展正则表达式,配合`find`和`xargs`得到更精确的匹配结果。

2025-05-22 16:33:53 1048

原创 shell 中$?表示最后命令退出状态,最后命令是啥?

在 Shell 中,$? 表示 上一条命令 的退出状态(Exit Status)。这里的 “最后命令” 指的是 Shell 执行的上一个前台命令(包括脚本、函数、管道中的最后一个命令等)。以下是详细解释和示例:

2025-05-20 09:49:17 902

原创 shell命令 - basename 获取基本文件名

basename命令用于从文件路径中提取文件名,并支持对文件名进行进一步操作。通过-s选项可以删除指定后缀,-a选项可以同时处理多个文件路径,-z选项则用于拼接后缀。示例中展示了如何使用`

2025-05-19 17:23:44 122

原创 Shell 脚本

本文介绍了Shell脚本的基础知识,包括Shell环境、变量定义与使用、变量类型、环境变量、字符串操作、数组操作以及注释和参数传递。

2025-05-18 22:26:01 819

原创 gcc工具使用(编译静态库,动态库)

本文介绍了在Linux系统中使用GCC编译器进行预处理、编译、汇编和链接的基本操作,并详细讲解了如何 生成 调查 和 使用 静态库与动态库。

2025-05-15 09:37:15 766

原创 shell中各种括号的作用`‘()‘‘{}‘‘[]‘`等

本文详细介绍了Shell脚本中各种括号的使用方法及其功能。小括号()用于命令组、命令替换和数组初始化;双小括号(())用于整数扩展、C语言运算规则的表达式转换和算术运算比较。中括号[]是bash内部命令,用于条件判断和数组元素引用。大括号{}用于常规用法、特殊替换结构、模式匹配替换以及字符串提取和替换。符号$后的括号用于变量引用、命令替换和数学表达式计算。这些括号在Shell脚本中具有不同的功能和用途,掌握它们的使用可以提升脚本编写的效率和灵活性。

2025-05-15 08:19:21 332

原创 TF卡写保护原理解决

TF卡写保护的实现或者是否支持写保护不在于SD卡,而在于安装TF卡的装置(比如读卡器、PCB上的TF卡槽)。拆开TF卡,你会发现TF卡上的写保护装置与其他部分是分隔开的。并没有与任何电路有连接。而且查看TF卡的数据手册,也找不到任何与写保护有关的信息。参考博客:https://blog.csdn.net/hamsky/article/details/3853488所以:从SD卡引脚上去研究写保护是错误的。而应该研究安装TF卡的装置(比如读卡器、PCB上的TF卡槽)。

2025-05-07 11:26:31 238

原创 Vim 命令从头学习记录

用了两年的vim,为了配置花里胡哨的界面没少折腾,从vim到nvim, 再到 lvim, 但是连最基础的跳转都没整明白,后来真心想花点时间搞一个只要能多tag切换,实现单一vim打开多文件就行了的编辑器,其实人家vim都包含了,又回到了最初的起点。

2025-05-05 10:54:14 1382 1

原创 Linux Device Drivers-第五章 并发和竞争情况

linux/spinlock.h> //需要包含的头文件/* 初始化 *///定义时初始化//或者在运行时初始化/* 进入临界区前 *///在进入一个临界区前, 你的代码必须获得需要的 lock????这段乱七八糟的。/* 退出临界区前,释放锁 */还有很多自旋锁相关函数,无外乎加锁和解锁。

2025-04-21 08:27:02 846

原创 数字音频接口(I2S,PCM/TDM)概念总结

DAI: Digital Audio Interface. 数字音频接口。古时候都是一堆芯片组成的音频电路,电路板上还得走模拟信号,对硬件工程师的要求是相当高。但随着半导体的发展,一堆音频芯片被集成到了一颗音频芯片上。MPU直连codec芯片传输数字音频数据,codec输出模拟信号连接到硬件音频插孔就完啦。硬件工程师的九阳神功慢慢失传了。

2025-04-01 10:11:35 1814

原创 【VirtualBox 安装 Ubuntu 22.04】

网上教程良莠不齐,有一个CSDN的教程虽然很全面,但是截图冗余,看蒙了给我,这里记录一个整洁的教程链接。UP还在记录生活,看的我好羡慕,呜呜。

2025-03-28 14:16:40 354

原创 Linux Device Drivers-第四章 调试技术

Linux 程序调试方法,学会通过监视调试如控制printk,学会使用各种调试工具如gdb。

2025-03-25 09:32:35 633

原创 Vim 编辑器-实现基础跳转

vim + ctags + cscope 实现跳转到定义,跳转到调用。

2025-03-17 22:10:20 647

原创 【strace命令】

让Linux管理员在没有源码的情况下跟踪系统调用(系统调用为用户空间程序向内核请求更高运行权限的服务)。常显示有关进程的系统调用,用于快速定位系统调用过程中失败的原因。

2025-03-05 08:27:07 349

原创 Linux DMA Engine 基础

讲解Linux DMA 子系统中如何查看DMA的使用情况,查看DMA哪些channel在使用。如何使用DMA engine接口编写M2M测试代码。

2025-02-23 16:48:21 845

原创 【GIC LPI 及 ITS 介绍】

参考arm官网。这个文档为需要理解MSI是如何被GIC转换的、LPI是如何被管理的人以及需要在裸核条件下配置GIC的人设计的。

2025-02-23 15:31:39 1083

原创 Linux I2C 命令

Linux I2C设备的读取方法与相关命令总结。

2025-02-19 09:39:55 474

原创 【kernel内核时间函数】

该文件还包含一些对struct timespec64类型结构体变量的处理API:如下。用于将转换成ns值,返回值为u64类型。计算时间差,返回同样类型的结构体变量。二、 测量某段代码执行时间。

2025-01-03 18:57:43 620

原创 eDMA驱动调试总结

zephyr中调试eDMA总结

2025-01-02 09:35:34 802

原创 CACHE 操作

常用的两条刷cache操作,主要用于高速通信,DMA传输等场景,写数据后需要调用FLUSH_CACHE,读数据前需要INVAL_CACHE。

2024-12-17 14:41:02 412

原创 linux 内核传参 module_param_cb

module_param_cb 是 Linux 内核模块中用于定义可通过命令行将 用户态参数传递给内核模块的参数 的宏。

2024-12-13 11:46:19 333

原创 Zephyr 入门

讲解zephyr设备树的作用,如何访问设备树,驱动程序如何通过API和宏得到设备树,application如何得到驱动程序。

2024-12-01 11:04:44 970

原创 nvim编辑器,tmux配置

记录自己配置vim到放弃的全过程

2024-11-18 22:29:42 1005

原创 C Primer Plus-第四章-字符串和格式化输入输出

书中解释原因:因为printf会先将n1, n2, n3, n4的值入栈,这些值占用对应类型的字节数。然后printf开始读取字节,但是pirntf会按照引号内的解释说明指定的字节数从栈中依次提取提取字节数,当然第一次错了后面也会出错。limits.h头文件提供了一系列宏定义,如INT_MAX,INT_MIN为int类型的最大最小值。, 用错误的转换说明来打印浮点数,书中作者打印出来发现四个值都错误,来警示读者。可见,可以手动指定想要输出数值的宽度,神奇吧。4.3.2 明示常量。

2024-11-18 21:57:43 464

原创 Linux Device Drivers-第三章 字符设备驱动程序

看了半个月了,但感觉自己这样毫无目标的看效率太低,网上看到大佬十年前就看英文原版书籍了,同时在做读书笔记,,,实在是惭愧

2024-11-08 09:06:51 909

原创 awk工具使用

比grep好用的搜索工具(默认情况下会忽略一些版本控制系统目录(如 .git、.svn)和不需要搜索的文件类型(如图片和二进制文件)。),但是可惜我的板子上没有这个工具,只能在虚拟机(Ubuntu)上玩玩。

2024-11-06 08:54:20 255

原创 更新 meson 与 ninja

在编译dpdk的过程中,我发现我修改dpdk后死活不能编译,重新克隆后的设备还是不行,最后我定位到问题可能是这俩工具版本太老了。于是搜索更新的方法。

2024-09-05 14:20:40 333

原创 Linux配置交叉编译工具链

配置交叉编译工具链,需要三个东西,记住:ARCH, CROSS_COMPILE,和PATH。

2024-09-01 16:20:09 772

原创 Linux kernel 宏展开竟然如此方便,惊了

太多了,尼玛有完没完了到底 😊. 遂立即使用新方法。(Five years later…在我看Per CPU 变量的过程中偶遇一个方法,记录一下。

2024-08-03 16:44:03 271

原创 Linux PSCI框架

PSCI(Power State Coordinate Interface)是ARM定义的电源管理接口规范,由firm来实现。Linux系统通过smc/hvc指令(设备树可查看是那种)调用对应的实现。代码路径:arch/arm64/kernel/psci.c drivers/firmware/psci.c

2024-08-03 16:01:54 453 1

原创 Uboot下的命令与环境变量

help + 命令 你可以得到大部分命令的用法介绍。

2024-07-20 18:18:55 1068

原创 fdisk刷启动盘

fdisk:用法简单,先让你选择主分区还是拓展分区,选择分区号,选择分区起始位置(要选在上一个扇区后面否则不重叠了嘛),扇区大小。mkfs:该格式化工具有很多,我常用mkfs.ext4。指定哪个盘哪个分区。df -T : 查看文件系统类型,占用。file -s /dev/vdb :也可也查看文件系统类型。mount: 挂载,在解除挂载时可能会遇到问题,fsck.ext4 /dev/vdb :在超级块受损时,尝试修复问题。

2024-07-20 16:46:59 271

原创 Uboot启动流程梳理

Uboot初识

2024-07-20 16:20:20 365

原创 【Linux dd 命令】

最初为磁盘设备涉及的工具,也可在其他类型文件操作。

2024-07-15 19:32:06 738 1

原创 【TFTP工具(Trivial File Transfer Protocol)】

TFTP分为服务端和客户端,想要通信,一个配成服务端另一个配成客户端。TFTP 用于 UDP 端口号 69 其文件传输活动要想使用TFTP需要的步骤:① 本地安装客户端工具② 服务器安装TFTP服务端工具③ 服务端开启 TFTP服务并配置TFTP上传和下载的目录。

2024-07-15 18:26:37 1750

空空如也

空空如也

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

TA关注的人

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