自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2025届 深圳 嵌入式岗 秋招上岸记录

这篇文章是笔者作为2025届本科生,对个人参与2024年9月份秋招经历的总结。

2024-09-27 22:45:42 1218 1

原创 钢管切割问题

本篇文章将介绍如何使用 C++ 解决钢管切割问题,利用二分查找算法来确定可以构建的最大高度。

2024-09-12 18:43:54 838

原创 `.o`、`.a`、`.so`、`.dll` 文件后缀

o:编译后的目标文件,需要进一步链接。.a:静态库,多个目标文件的集合,编译时嵌入到可执行文件中。.so:动态库,Linux 系统下使用,运行时加载。.dll:动态库,Windows 系统下使用,运行时加载。这些文件类型在不同操作系统和编译模型中具有不同的用途,但它们的核心作用都是为程序提供可复用的代码模块。

2024-09-06 15:15:40 400

原创 【踩坑日记】移植 alsa-utils 到开发板出现 /bin/amixer: line 5: syntax error: unexpected “)“ 的解决方案

出现如下错误信息:/ # amixer --help/bin/amixer: line 5: syntax error: unexpected ")"

2024-08-23 17:56:17 935

原创 【踩坑日记】编译安装alsa-lib时出现 [/usr/bin/ld: unknown architecture of input file `control/.libs/libcontrol.a(]

编译安装alsa-lib时出现:collect2: error: ld returned 1 exit statusmake[2]: *** [Makefile:493:libasound.la] 错误 1make[2]: 离开目录“/home/witheart/linux/tool/alsa-lib-1.2.2/src”make[1]: *** [Makefile:553:all-recursive] 错误 1make[1]: 离开目录“/home/witheart/linux/tool/als

2024-08-22 21:04:17 456

原创 Linux 中断处理与内核线程化——以触摸屏中断为例

本文探讨了 Linux 中断处理的传统模型与中断线程化的理念,以及在触摸屏驱动中为何使用线程化的中断处理。

2024-08-21 23:59:55 736

原创 【学习日记】【第五十二章 Linux非阻塞IO实验】【流程图】——正点原子I.MX6U嵌入式Linux驱动开发

本文主要是笔者根据《正点原子I.MX6U嵌入式Linux驱动开发》中 “第五十二章 Linux阻塞和非阻塞IO实验” 的程序绘制的流程图,该程序使用非阻塞IO实现了和五十一章实验同样的功能,并对函数流程进行了分析。

2024-08-17 19:12:42 623

原创 【踩坑日记】CSDN 中的 Mermaid流程图 的渲染问题

虽然支持中文字符渲染,但是一旦使用中文标点符号就会渲染失败!

2024-08-17 19:09:27 121

原创 Linux I/O 多路复用机制详解

本文将详细解释文件描述符、文件描述符集合,以及 `select()` 和 `poll()` 的底层工作原理,以帮助理解 Linux 系统的 I/O 多路复用机制。

2024-08-17 17:36:07 965

原创 【学习日记】【第五十二章 Linux阻塞IO实验】【流程图】——正点原子I.MX6U嵌入式Linux驱动开发

本文主要是笔者根据《正点原子I.MX6U嵌入式Linux驱动开发》中 “第五十二章 Linux阻塞和非阻塞IO实验” 的程序绘制的流程图,该程序使用非阻塞IO实现了和五十一章实验同样的功能,并对函数流程进行了分析。

2024-08-17 14:23:53 969

原创 【学习日记】【第五十一章 Linux中断实验】【流程图】——正点原子I.MX6U嵌入式Linux驱动开发

本文主要是笔者根据《正点原子I.MX6U嵌入式Linux驱动开发》中 “第五十一章 Linux中断实验” 的程序绘制的流程图,方便理解中断和定时器的使用。

2024-08-16 16:13:42 657

原创 软中断、Tasklet 与工作队列的机制分析

本文主要分析软中断、Tasklet 和工作队列的机制及其特点。

2024-08-16 11:40:30 732

原创 互斥锁与自旋锁在中断上下文中的应用

本文主要分析互斥锁和自旋锁的设计目的、工作机制以及在中断上下文中的适用性。

2024-08-15 13:14:46 454

原创 U-Boot 环境变量设置指南

本指南提供在 U-Boot 中设置网络和启动环境变量的步骤,以解决常见错误。

2024-08-12 16:30:07 1125

原创 Linux 驱动开发究竟在开发什么?

通过本文的各个部分,可以清晰地看到 Linux 驱动开发在系统架构中的重要性。应用程序、C 库、系统调用和驱动程序之间的协作,使得用户能够方便地控制硬件设备,实现各种功能。Linux 驱动开发着眼于硬件和操作系统内核之间的驱动程序层,当然,内核配置与编译、引导加载程序开发、根文件系统构建等内容也是必不可少的。

2024-08-06 17:27:41 1217

原创 Linux系统中的两个核心进程:`init`和`kthreadd`

本文详细对比了Linux系统中的两个核心进程:`init`和`kthreadd`,并解释了用户空间进程与内核线程之间的区别。

2024-08-04 10:31:40 821

原创 cgroup:Linux的资源控制机制

cgroup 是什么:cgroup 是Linux内核提供的机制,用于限制、记录和隔离进程组的资源使用。主要功能:资源限制、优先级控制、资源隔离和资源监控。层次结构:cgroup 采用树状层次结构,便于分层管理进程。子系统:cgroup 支持多个子系统,每个子系统负责管理一种资源。示例:通过命令行创建和管理 cgroup,或者使用systemd集成管理。

2024-08-04 10:13:19 817

原创 什么是 IDR —— Linux 内核中的一种整数管理机制

IDR(ID Radix Tree)是 Linux 内核中的一种整数管理机制,用于将整数 ID 与指针关联起来。IDR 提供了一种高效的方式来分配和管理唯一的整数 ID,并将这些 ID 映射到相应的指针。在 Linux 内核中,整数 ID 是用于唯一标识各种系统资源或对象的数字。通过将整数 ID 与指针关联,可以快速、高效地管理和访问内存中的资源或对象。这种机制简化了内核的资源管理过程,提高了系统的性能和可靠性。

2024-08-03 17:59:15 1274

原创 VFS(虚拟文件系统)是什么,有真实的文件系统吗?

虚拟文件系统(VFS)是操作系统中的一个抽象层,用于统一不同文件系统的接口,提供一致的文件操作方式。真实的文件系统,如 ext4、NTFS 和 FAT32,则是具体的文件系统实现,负责实际的数据存储和管理。通过 VFS,操作系统能够以透明和统一的方式访问各种不同的文件系统。

2024-08-03 17:11:43 1350

原创 如何减少内存碎片的产生——页

内存碎片在计算机内存管理中是一个重要问题,影响系统性能。页机制的设计旨在减少这种碎片化。

2024-08-03 16:50:48 1139

原创 【学习日记】静态库与动态库的区别及使用指南

静态库是一组预编译的对象文件的集合,这些对象文件在编译期间被链接到程序中。静态库通常具有.a扩展名(在 Unix 系统上)或.lib扩展名(在 Windows 系统上)。动态库是在程序运行时加载的库。动态库通常具有.so扩展名(在 Unix 系统上)或.dll扩展名(在 Windows 系统上)。静态库:在编译期间被链接到程序中,生成的可执行文件包含库代码。动态库:在程序运行时加载,生成的可执行文件依赖外部库文件。

2024-08-03 11:40:51 1031

原创 【踩坑日记】Kconfig 文件解析错误及解决方法

在使用该错误提示表明Kconfig文件中的menu和endmenu语法不匹配,导致解析失败。

2024-08-02 15:52:26 274

原创 理解 Unix/Linux 中的 Terminal、Shell、TTY 和 Console

在 Unix 和 Linux 系统中,有一些术语常常让人困惑,比如 "terminal"、"shell"、"tty" 和 "console"。本文试图通过通俗易懂的语言来解释这些概念,并结合一些历史背景,帮助大家更好地理解它们。

2024-07-31 22:26:50 1497 1

原创 【学习日记】U-Boot 环境变量与 U-Boot 命令概述

在 U-Boot 中,使用#define和反斜杠来定义多行字符串。反斜杠反斜杠用于指示宏定义在下一行继续。这意味着所有的行将被视为一个连续的字符串。字符串字面量每一行都是一个字符串字面量,\0表示字符串的结束符。这样可以确保每个键值对都是独立的。最终效果这个宏定义最终会被展开为一个长字符串,其中包含多个键值对,每个键值对之间用\0分隔。这种方式通常用于定义配置或环境设置,便于在程序中管理和使用。

2024-07-31 21:08:59 484

原创 【学习日记】函数调用 和 全局变量 如何实现 位置无关码

位置无关码(Position Independent Code,简称 PIC)是一种特殊类型的编码方式,用于生成在内存中可以任意位置运行的代码。这种代码在编译时不会固定任何特定的内存地址,使得程序或库在运行时可以被加载到内存的任意位置而无需修改。这对于操作系统中的动态链接库(DLLs)和共享库(如 Linux 中的 .so 文件)尤为重要。

2024-07-27 19:58:57 886

原创 【教程】ARM 汇编指令 LDMIA 和 STMIA 详解

【代码】【教程】ARM 汇编指令 LDMIA 和 STMIA 详解。

2024-07-27 15:48:29 997

原创 【教程】Node.js+Apache 部署网页全过程(非常详细!)

- 要解决的问题有: - vps 上的常规端口,80/443 端口已经被其他网页占用,必须通过非常规窗口访问我们的网站 - 网站部署中 Apache 的配置,Node 服务器的管理 - 笔者的二级域名已经设置指向该服务器的常规端口 80/443,如何使用三级域名直接访问新部署的网页而不需要输入端口号

2024-07-25 03:30:51 1153

原创 【教程】在 VS Code 集成终端中解决 Node.js 环境变量识别问题

【代码】【教程】在 VS Code 集成终端中解决 Node.js 环境变量识别问题。

2024-07-23 13:54:34 552

原创 【教程】vscode添加powershell7终端

在这里设置为 “never”,意味着当你重新打开 VS Code 时,不会恢复先前的终端会话。说明: 指定在 Windows 上的默认集成终端配置文件为 “PowerShell 7”。这意味着当你打开新的终端时,VS Code 将默认使用 PowerShell 7。在这里,设置为 PowerShell 7 的路径,以便在自动化场景中使用。说明: 指定在 Windows 上打开外部终端时使用的可执行文件路径。在这里,创建了一个名为 “PowerShell 7” 的终端配置,指定其可执行文件路径为。

2024-07-23 13:44:43 879

原创 【踩坑日记】【教程】嵌入式 Linux 通过 nfs 下载出现 T T T T [Retry count exceeded: starting again]

开启 nfs2 后,可以在开发板 u-boot 上重新尝试用 nfs 下载虚拟机上的文件,如果成功了,那么就结束了。这个文件,其他教程需要修改这个文件但是在 ubuntu-20.04 下安装 nfs 后并不能找到这个文件。+2 就代表已经开启 nfs2 服务,则第 4 节可跳过,如果是 -2 就往下看,开启 nfs2。注意,此处开启 nfs2 的步骤不同于其他教程,主要是针对 ubuntu-20.04 没有。说明已经支持 nfs2 了。此命令没有其他输出。

2024-07-16 01:08:04 816

原创 【解释】i.MX6ULL_IO_电气属性说明

i.MX6ULL_IO_电气属性说明

2024-06-30 15:32:26 925 1

原创 【理解】关于正点原子i.MX6ULL LCD计算式的理解

- ①式的理解没什么问题,但是对于②式,理解出现了一些问题:对于垂直同步参数来说,LINE的说明为——显示一帧有效数据所需的时间,假如屏幕分辨率为 1024*600,那么 LINE 就是 600 行的时间。那么按照笔者的理解,**显示一帧**所需要的时间应该是$LINE×①+VSPW + VBP + VFP$,而不是②式。

2024-06-29 23:17:46 627

原创 【嵌入式Linux】i.MX6ULL GPIO 中断服务函数注册与编写

- 本文章结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解。- 前面我们进行了编写**GPIO 中断管理与配置函数**,下面将具体使用这些GPIO 中断管理与配置函数来进行一个具体的中断初始化,以及中断服务函数的编写

2024-06-26 18:15:49 681 1

原创 【嵌入式Linux】i.MX6ULL GPIO 中断管理与配置函数

- 本文章结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解。- 前面我们进行了总的外部中断处理函数(system_irqhandler)的初始化,在这个函数中同个中断号,选择跳转到了不同的中断服务函数- 下面我们就来写一个具体的中断服务函数,本文将具体编写**GPIO 中断管理与配置函数**

2024-06-26 13:02:15 996

原创 【嵌入式Linux】i.MX6ULL 外部中断服务函数的初始化

本文章分析了Cortex-A7中断系统,并结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解对外部中断函数的选择和初始化代码作了详细讲解。

2024-06-26 00:58:52 624

原创 【嵌入式Linux】i.MX6ULL IRQ中断服务函数的编写

IRQ中断服务函数流程解释,以及手册查询

2024-06-25 14:13:47 941 2

原创 【嵌入式Linux】i.MX6ULL 复位中断服务函数的编写

分析了i.MX6ULL 复位中断服务函数,提供了完整代码。

2024-06-24 19:43:53 883

原创 【嵌入式Linux】i.MX6ULL 时钟树——代码梳理(基础时钟初始化)

本文章结合了正点原子的**i.mx6u嵌入式Linux开发指南**和笔者的理解。本文章应配合《【嵌入式Linux】i.MX6ULL 时钟树——理论分析》使用。

2024-06-22 23:31:41 753

原创 【嵌入式Linux】i.MX6ULL 时钟树——理论分析

本文章结合了正点原子的**i.mx6u嵌入式Linux开发指南**和笔者的理解。本文章应配合《【嵌入式Linux】i.MX6ULL 时钟树——代码梳理(基础时钟初始化)》使用。

2024-06-22 23:30:06 983

原创 【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行

发现在在链接的开始地址处(0x87800000),定义了一个名为"clk_enable"的函数或代码段的起始位置,而不是_start程序(_start 是一个特殊的符号或标识符,它在编译和链接过程中用于表示程序的起始点。在我们的start代码中,我们初始化了堆栈指针,这个程序必须放在链接的起始地址处(0x87800000)查看生成的反汇编文件。

2024-06-15 22:42:01 291

暴力风扇改造桌上风扇__外壳模型

请配合笔者的文章【项目记录】服务器暴力风扇改造桌上风扇食用

2022-09-11

可适用于ESP32的Adafruit_PN532库

修改了针对ESP32的PN532SPI通信速度配置,使用宏定义选择速度,所以其原来适用于其他板子的能力不受影响 具体修改方法查看本人主页文章《【ESP32】Adafruit_PN532库用于ESP32上时出现的问题及解决方法》

2022-08-31

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

TA关注的人

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