- 博客(160)
- 收藏
- 关注
原创 查看开发板wifi支持的频段
你的网卡硬件能力很强,不仅支持双频,还支持 5G 下的较宽频段范围(包括 DFS 信道)。你可以放心地连接 2.4G 或 5G 的任何网络。对应,Channel 44 中心频率为 5220 MHz,但你的连接在 5180,可能是 80MHz 带宽下的主频道,这属于正常情况)。此外,输出末尾的 Current Frequency=5.22 GHz (Channel 44),涵盖了常见的 5G 频段(包括需要 DFS 动态频率选择的信道 52~140)。,涵盖了完整的 2.4G 频段。
2026-07-17 14:03:37
144
原创 wpa_supplicant 命令
是 Linux 系统中标准的 Wi-Fi 认证守护进程,负责处理 WPA、WPA2 和 WPA3 等安全协议的密钥协商与认证过程。它是一个在后台运行的程序,充当控制无线连接的后端组件。通常与前端工具wpa_cli配合使用。
2026-07-17 08:00:00
178
原创 lsblk分区相关命令
你的lsblk设备烧录内容说明U-Boot (主)eMMC 硬件启动分区 0,存放 SPL 和 U-Boot。U-Boot (备份)eMMC 硬件启动分区 1,作为 Boot0 的冗余备份。mmcblk2p1内核 (Kernel) + 设备树用户数据区第 1 分区(FAT),U-Boot 从这里加载内核。mmcblk2p2根文件系统 (Rootfs)用户数据区第 2 分区(ext4),系统运行时根目录。mmcblk2(整体)用户数据区的容器包含p1和p2,你即将创建的新分区p3p7。
2026-07-16 11:47:59
179
原创 bitbake编译流程
整个流程是:配置定范围 -> 解析定依赖 -> 分层编译(BSP驱动 + Connectivity协议栈 + 自定义应用) -> 组装根文件系统 -> 打包最终镜像。其中,你之前关注的层通过.bbappend和专属 recipes,在第二步和第三步中精准介入了驱动补丁和应用集成。
2026-07-09 10:31:55
193
原创 docker 为何每次 docker tag才能 docker push
常见误区:不是因为“必须 tag 才能 push”,而是因为“本地构建的简单名称不符合远程仓库的路径要求”,所以需要 tag 来重命名/别名化以匹配远程路径。严格来说,并不是每次都必须执行 docker tag 命令才能进行 docker push,但推送的镜像必须拥有一个符合目标仓库命名规范的标签(Tag)。此时,本地镜像名为 myapp:v1。必须条件:推送前,镜像名称必须包含正确的注册表地址和命名空间(对于 Docker Hub 是用户名,对于私有仓库是项目名/路径)。
2026-07-08 18:30:24
268
原创 docker环境搭建
添加 Docker 的官方 GPG 密钥和软件源,这是保证软件安全与可更新的关键步骤。# 设置 Docker 的 apt 仓库 (会自动识别你 Ubuntu 的版本代号)" 的信息,说明安装成功了。启动 Docker 服务,设置开机自启,并运行一个测试容器来验证是否成功。再次更新包索引,并正式安装 Docker 引擎、命令行工具和容器运行时。# 创建存放密钥的目录并添加 Docker 的官方 GPG 密钥。# 启动 Docker 服务并设置开机自启。# 验证安装 (会下载并运行一个测试容器)
2026-07-06 14:24:31
162
原创 ubuntu使用Reprepro管理apt仓库
mkdir -p pool # reprepro 会自动生成,用于存放实际的 .deb 文件。├── dists/ # (初始为空,执行 includedeb 后生成)└── pool/ # (初始为空,执行 includedeb 后生成)mkdir -p incoming # 存放待处理的 deb 包(临时目录)├── incoming/ # 用于暂存待导入的 deb 包。完成上述步骤后,您的。
2026-07-01 13:59:45
191
原创 STM32CubeIDE安装教程
下载标准库HAL+DSP(这个是旧版本标准库的,目前IDE不用这个,这里做个记录)工具与软件->嵌入式软件->STM32嵌入式软件->STM32标准外设软件库。->选择芯片型号->获取最新版本。
2026-06-14 21:49:16
201
原创 MDK5.36版本下载
使用以上链接,修改版本号即可下载对应的历史版本。进入官网下载最新版本:mdk-arm c166 c51 c251区别Keil MDK-Arm、C166、C51、C251 是 Keil 公司针对不同处理器架构推出的四款主要嵌入式开发工具套件。它们的核心区别在于。
2026-06-13 20:56:40
338
原创 运行时报错:libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found (required by ./Server)
你的报错根源是动态链接下,运行机器的 GLIBC/GLIBCXX 版本低于编译机器,无法找到高版本库符号。静态链接通过「将依赖的库代码打包进可执行文件」,不再依赖运行机器的共享库,从根本上解决版本不匹配问题。Makefile 中的-static是实现该效果的核心参数,分别对应系统库、GCC 运行时库、C++ 标准库的静态链接。= yes# 静态链接:解决目标机器 GLIBC/GLIBCXX 版本过低的问题else# 动态链接:需要目标机器有对应的共享库endif。
2026-02-05 09:15:05
548
原创 Linux程序接收到sigpipe信号崩溃处理
在代码中添加了对 SIGPIPE 信号的忽略处理。这样当连接断开时, send 函数会返回错误(errno 为 EPIPE),而不是直接让进程崩溃,从而允许程序正常处理错误并继续运行。该信号的默认行为是终止进程。当您刷新 Web 界面时,旧的 WebSocket 连接可能被意外关闭,如果此时服务器刚好尝试向其发送数据,就会触发此信号导致崩溃。原因分析: 在 Linux 网络编程中,当向一个已关闭的 socket 发送数据时,内核会向进程发送 SIGPIPE 信号。
2026-02-04 14:06:46
111
原创 sem_timedwait函数
2. 等待时间超过了 ts 指定的时间(超时),此时函数返回 -1(errno 为 ETIMEDOUT ),线程被唤醒继续执行(通常是进行周期性的轮询检查)。1. update_sem 的值大于 0(即有人调用了 sem_post ),此时函数返回 0,表示收到了数据更新通知。这种机制允许订阅管理器在没有数据更新时挂起以节省 CPU,但又能及时响应数据变化或定时唤醒以处理周期性采样任务。- update_sem 是一个信号量(Semaphore),用于通知订阅管理器“有新数据写入了共享内存”。
2026-01-27 09:54:28
231
原创 解决本地访问远程桌面端口被拦截
远程桌面(默认 3389 端口)能通,但 8080 端口大概率被防火墙拦截了。添加上server.address=0.0.0.0,重启服务后,依然不能访问。这是最基础的前提 —— 如果服务没启动 / 监听端口错误,后续排查都无意义。(仅本地访问),不会监听服务器的外网 IP(192.168.1.10)。可能被第三方应用拦截,也可能是springboot没有绑定所有网卡。(表示监听服务器所有网卡的 IP),重启 Java 服务后再测试。—— 关闭公用网络的防火墙后能访问,本质是。重启防火墙,使策略生效。
2026-01-16 13:45:58
453
原创 springboot+vue+mysql手搓一个管理系统
系统实现了从需求提出、审批、流转、处理到完成归档的闭环管理,并集成了基于角色的权限控制(RBAC)、工作流节点记录及数据统计分析功能。• 全生命周期管理: 支持草稿、发布、审批、指派、执行、完成、终止、回退等完整状态流转。• 流程可视化: 自动记录每个流程节点的操作人、操作时间、耗时,并以时间轴形式展示。• 权限控制: 细粒度的角色权限(普通用户、审批人、管理员),支持动态数据权限。• 数据统计: 包含需求状态分布、处理耗时统计等。• 构建工具: Vite 5.0。
2026-01-13 11:48:21
486
原创 MD在线转word工具
很好用的一个工具:Markdown在线编辑器,Markdown免费转Word/Html/Pdf,Word转Markdown - 在线工具
2026-01-07 10:06:54
429
原创 vscode安装clang-format
ctl+shift+p 找到selection format with,选择c/c++ default,然后就好了。
2025-11-14 09:13:36
191
原创 _POSIX_C_SOURCE的作用
在C语言编程中,使用宏定义可以帮助开发者指定希望使用的POSIX(Portable Operating System Interface,可移植操作系统接口)标准版本。这个宏定义通常在编译时通过编译器选项传递给编译器,以确保程序能够正确地调用POSIX标准中的函数和特性。
2025-11-06 11:31:57
403
原创 top命令
text210 total: 系统当前总共有 210 个进程。2 running: 其中有 2 个进程正在 CPU 上运行或处于可运行状态(在运行队列中等待CPU)。: 有 208 个进程处于睡眠状态。睡眠通常是进程在等待某个事件(如 I/O 操作完成、用户输入、定时器等)时的状态,不消耗 CPU。0 stopped: 没有进程被停止(例如,通过Ctrl+Z发送了 SIGSTOP 信号)。0 zombie: 没有僵尸进程。僵尸进程是已经终止但其退出状态尚未被父进程回收的进程。数量为 0 是健康的。
2025-10-30 10:34:27
816
原创 常用内核排查命令dmesg -T
参数用于将内核日志的时间戳转换为人类可读格式,结合其他选项可实现日志过滤、实时监控等功能。dmesg -T参数核心用法。dmesg命令基础用法。
2025-10-11 15:13:03
288
原创 windows环境vs+mingw+交叉编译链
1、配置mingw的bin路径。2、配置交叉编译的bin路径。4、写makefile编译。5、上传到服务器运行。
2025-09-18 11:59:47
219
原创 epoll系列函数
用于创建epoll实例,返回一个文件描述符作为后续操作的句柄。管理epoll实例监控的文件描述符(FD)。阻塞等待就绪事件,返回就绪FD数量。
2025-06-06 08:30:00
248
原创 centos查看开启关闭防火墙状态
执行:systemctl status firewalld ,即可查看防火墙状态防火墙的开启、关闭、禁用命令(1)设置开机启用防火墙:systemctl enable firewalld.service(2)设置开机禁用防火墙:systemctl disable firewalld.service(3)启动防火墙:systemctl start firewalld(4)关闭防火墙:systemctl stop firewalld(5)检查防火墙状态:systemctl status firewalld
2025-06-05 15:14:53
989
原创 io复用的水平触发和边缘触发
选择水平触发如果你需要频繁地检查同一文件描述符的状态,或者你的处理逻辑可以容忍多次轮询。选择边缘触发如果你希望最小化CPU使用率并希望系统在高负载下表现更优,或者你的处理逻辑需要精确控制每次状态变化的处理。在使用边缘触发时,务必确保你的应用程序能够正确处理所有待处理的数据,避免丢失事件。
2025-06-05 14:14:09
539
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1