自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android WiFi BT 模组移植 分层详解

Android WiFi BT 模组移植 分层详解

2025-02-21 12:01:04 1145

原创 RK WiFi BT 模组移植调试方法

概要:本文介绍了 RK WiFi BT 模组的移植调试方法,包括硬件检查、设备树配置、驱动加载以及日志分析等关键步骤,以帮助开发者快速定位和解决问题。

2025-02-21 11:59:37 340

原创 RK Android11 WiFi模组 AIC8800 驱动移植调试记录

概要:本文记录了 RK3568 平台上移植并调试 WiFi6 模组 AIC8800 的过程,涵盖 WiFi 和蓝牙驱动的适配与问题排查。

2025-02-21 11:00:55 1658 3

原创 RK Android11 WiFi模组 AIC8800 驱动移植流程

概要:本文介绍了基于 AIC8800D40 芯片的 WiFi6 模组 BL-M8800DS2-40 在 RK3568 平台上的驱动移植流程。主要涉及环境搭建、驱动代码分析、设备树修改、驱动编译配置、蓝牙库集成、wpa_supplicant 配置及 WiFi HAL 适配等内容,并提供详细的移植步骤和注意事项。

2025-02-20 20:59:21 1680 1

原创 STC8 系统时钟频率

如果未进行任何配置,单片机默认使用 **内部高速高精度 IRC** 作为系统时钟源,此时 **无需外接晶振**。

2025-02-14 09:48:50 374

原创 STC8 简单延时指南

在 STC8 单片机中,要实现阻塞 CPU 进程的简单延时,可以直接使用官方的烧录工具生成延时代码。

2025-02-14 09:37:15 384

原创 STC8 简单 PWM 输出使用指南

本指南以 **STC8H1K16** 为例,介绍 **PWM**(脉宽调制)功能的基本使用方法,适合新手快速上手 **PWM** 配置。

2025-02-13 18:05:30 1065

原创 Clip Studio Paint 报错:Running on unsupported Os. Clip Studio Paint will close.

启动 Clip Studio Paint 报错:Running on unsupported Os. Clip Studio Paint will close.

2025-01-08 22:05:10 500

原创 屏幕时序参数详解

本文详细介绍了屏幕显示时序的基本参数,包括水平和垂直方向的有效像素、同步信号、前肩、后肩及其总周期的定义与计算公式。同时,通过公式和图示,阐明了各参数之间的关系,并提供了完整的参数缩写说明,帮助读者快速理解屏幕时序的核心概念和计算方法,是学习显示时序原理的实用参考。文中部分图片找不到出处,如有侵权,请联系删除。

2024-12-31 14:34:32 1741

原创 Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程

本教程将详细介绍如何将 U 盘格式化为和文件系统,同时包括如何安装必要工具。

2024-12-28 14:33:33 4003 1

原创 为markdown导出的pdf添加页眉页脚

为Markdown导出的PDF添加页眉页脚,虽然这个插件支持HTML和CSS,但有些功能可能需要自行调整。

2024-12-17 14:40:40 1475

原创 【教程】如何在 VS Code 中排查问题插件

Visual Studio Code 提供了**扩展二等分排查工具**(Extension Bisect),可以高效地定位问题扩展。

2024-12-04 10:42:27 609 1

原创 【踩坑日记】【教程】如何在ubuntu服务器上配置公钥登录以及bug解决

本文将从零开始,手把手教你如何在 Ubuntu 服务器上配置 SSH 公钥登录,并分享实际操作中遇到的问题及其解决方法。

2024-11-24 20:32:12 2166

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

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

2024-09-27 22:45:42 2009 2

原创 钢管切割问题

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

2024-09-12 18:43:54 998

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

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

2024-09-06 15:15:40 832

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

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

2024-08-23 17:56:17 1123 1

原创 【踩坑日记】编译安装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 554 1

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

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

2024-08-21 23:59:55 959

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

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

2024-08-17 19:12:42 703

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

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

2024-08-17 19:09:27 510

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

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

2024-08-17 17:36:07 1058

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

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

2024-08-17 14:23:53 1041

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

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

2024-08-16 16:13:42 733

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

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

2024-08-16 11:40:30 915

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

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

2024-08-15 13:14:46 842

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

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

2024-08-12 16:30:07 2002

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

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

2024-08-06 17:27:41 1335

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

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

2024-08-04 10:31:40 942

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

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

2024-08-04 10:13:19 955 1

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

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

2024-08-03 17:59:15 1916

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

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

2024-08-03 17:11:43 1618

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

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

2024-08-03 16:50:48 1274

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

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

2024-08-03 11:40:51 1141

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

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

2024-08-02 15:52:26 454

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

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

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

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

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

2024-07-31 21:08:59 548

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

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

2024-07-27 19:58:57 1071

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

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

2024-07-27 15:48:29 1750

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

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

2024-07-25 03:30:51 1656

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

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

2022-09-11

可适用于ESP32的Adafruit_PN532库

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

2022-08-31

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

TA关注的人

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