- 博客(177)
- 收藏
- 关注
原创 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 简单 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
原创 `.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
原创 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
原创 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
原创 【学习日记】静态库与动态库的区别及使用指南
静态库是一组预编译的对象文件的集合,这些对象文件在编译期间被链接到程序中。静态库通常具有.a扩展名(在 Unix 系统上)或.lib扩展名(在 Windows 系统上)。动态库是在程序运行时加载的库。动态库通常具有.so扩展名(在 Unix 系统上)或.dll扩展名(在 Windows 系统上)。静态库:在编译期间被链接到程序中,生成的可执行文件包含库代码。动态库:在程序运行时加载,生成的可执行文件依赖外部库文件。
2024-08-03 11:40:51
1141
原创 理解 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
原创 【教程】Node.js+Apache 部署网页全过程(非常详细!)
- 要解决的问题有: - vps 上的常规端口,80/443 端口已经被其他网页占用,必须通过非常规窗口访问我们的网站 - 网站部署中 Apache 的配置,Node 服务器的管理 - 笔者的二级域名已经设置指向该服务器的常规端口 80/443,如何使用三级域名直接访问新部署的网页而不需要输入端口号
2024-07-25 03:30:51
1656
可适用于ESP32的Adafruit_PN532库
2022-08-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人