欢迎来到我的博客,这里记录了我的技术探索与生活思考。
CRC(循环冗余校验)算法原理与参数模型详解
在嵌入式开发、工业通信(如 Modbus、CAN 总线)以及网络协议(如 Ethernet、USB、ZIP 文件)中,CRC(Cyclic Redundancy Check,循环冗余校验) 是最常用的检错算法之一。 然而,在实际对接协议时,很多人经常遇到“两边算的 CRC 值对不上”的问题。这主要是因为 CRC 并不是单一固定的算法,而是一组由多个参数共同定义的模型。本文将系统讲解 CRC 的数学原理、参数模型构成、计算流程以及常见预设模型速查。 ...
PowerShell 提示“在此系统上禁止运行脚本”的解决方法
在 Windows 终端中尝试执行 PowerShell 脚本(.ps1 文件)或者运行某些依赖脚本的工具(如 npm、yarn、nvm、venv/activate 等)时,经常会遇到脚本被阻止运行的错误。本文将详细分析该问题的原因、提供多种解决方案以及深入讲解 PowerShell 的执行策略机制。 问题现象 在 PowerShell 中直接运行脚本时,可能会收到如下报错信息: ...
Bootlin Elixir:阅读与检索 Linux 内核及开源项目源码的神器
引言 对于从事 Linux 系统开发、驱动编写、嵌入式底层研发以及内核架构学习的工程师来说,阅读庞大的 C 语言开源工程源码是日常必修课。 以 Linux Kernel 为例:代码量已超过 3000 万行,包含海量的宏定义、条件编译分支、结构体指针与跨架构实现。如果直接在本地用普通文本编辑器或 grep 搜索,不仅效率极其低下,而且往往会被巨量的同名变量和宏展开干扰。而在本地配置完整的 LSP(如 clangd)或大型索引工具(如 OpenGrok),不仅极其消耗磁盘与内存,而且在跨版本对比时极其繁琐。 ...
Nginx 深度解析:从原理到生产实战
引言 Nginx(发音为"Engine X")是由 Igor Sysoev 于 2004 年首次公开发布的高性能 HTTP 服务器和反向代理服务器,最初是为了解决 C10K 问题(即如何让单台服务器同时处理 10,000 个并发连接)而生。 如今,Nginx 已经成为互联网基础设施中最重要的组件之一:据 Netcraft 统计,全球超过 34% 的活跃网站使用 Nginx,包括 Netflix、Dropbox、GitHub 等顶尖互联网公司。 ...
Go 1.25 在 Windows 编译的程序无法在你的电脑上运行?原因竟然是这个!
原文来自知乎专栏:zhuyasen - Go有引力 升级到 Go 1.25 之后,在 Windows 上编译出来的 .exe 双击却提示 「此应用无法在你的电脑上运行」?明明 Go 1.24 还好好的,到底发生了什么?答案就藏在一个叫 DWARF v5 的调试信息格式里。 根本原因 从 Go 1.25 开始,官方默认启用了 dwarf5 实验性功能,编译生成可执行文件时会使用 DWARF v5 调试信息格式。 ...
NetAssist 网络调试助手:功能全面的 TCP/IP 调试利器
在网络应用开发和嵌入式/物联网设备调试中,一款好用的网络调试工具往往能事半功倍。NetAssist 网络调试助手(野人家园出品)就是这样一款历经多年打磨、口碑极佳的 Windows 平台免费调试工具。本文对其功能特性、典型使用场景及注意事项做一次系统梳理。 官方下载页:https://www.cmsoft.cn/resource/102.html 当前最新版本:V5.15(2025-07-30) 软件大小:648 KB,下载次数超 24 万 ...
MiniWeb: 仅百KB的超轻量嵌入式 C 语言 HTTP 服务器
引言 在嵌入式开发、IoT 设备管理、本地工具调试甚至局域网临时文件共享中,我们经常需要一个轻量的 HTTP 服务端。但现实开发中常常遇到两难选择: 标准 Web 服务器(如 Nginx、Apache):功能丰富,但体积过大、依赖繁杂,无法直接塞入 Flash 只有几兆的 MIPS/ARM 嵌入式设备中; 脚本语言方案(如 Python http.server):在本地开发机上很方便,但在没有 Python 运行时的工控机、单片机或最小化 Linux 系统中寸步难行。 这时候,一个纯 C 语言编写、编译后二进制仅 100KB 左右的超微型 HTTP 服务器——MiniWeb,便成了极具性价比的选择。 ...
plink.exe 命令行工具:telnet 连接设备调试与数据采集
引言 最近需要连接一台带网络接口的设备(带电池管理系统的工业设备),通过 telnet 协议读取它的实时测量数据。图形界面的 PuTTY 虽然能连上,但只能手动交互,没法自动采集、落盘、二次处理。于是找到了 PuTTY 套件里那个不起眼的命令行工具——plink.exe。 plink.exe 是什么 plink.exe(PuTTY Link)是 PuTTY 套件中的命令行连接工具,和图形界面 PuTTY 共用同一套协议实现,支持 SSH、telnet、rlogin、raw 等多种协议。它是脚本化、自动化运维的利器——凡是 PuTTY 能干的事,都能用一条命令搞定,而且输出可以直接重定向到文件。 ...
Mermaid 图表测试
这是一篇用于验证 Mermaid 图表功能是否正常工作的测试文章。 流程图 (Flowchart) graph TD A[开始] --> B{是否准备好?} B -->|是| C[执行任务] B -->|否| D[等待] D --> B C --> E[检查结果] E -->|通过| F[完成] E -->|失败| G[修复问题] G --> C 时序图 (Sequence Diagram) sequenceDiagram participant 客户端 participant 服务端 participant 数据库 客户端->>服务端: GET /api/posts 服务端->>数据库: SELECT * FROM posts 数据库-->>服务端: 返回数据 服务端-->>客户端: JSON 响应 类图 (Class Diagram) classDiagram class Blog { +String title +String description +getPosts() List +publish() void } class Post { +String title +Date date +String content +String[] tags +render() String } class Author { +String name +String email +String avatar } Blog "1" --> "*" Post : 包含 Post "*" --> "1" Author : 属于 甘特图 (Gantt Chart) gantt title 博客搭建计划 dateFormat YYYY-MM-DD section 基础设施 初始化 Hugo 项目 :done, infra1, 2025-07-01, 1d 配置 PaperMod 主题 :done, infra2, 2025-07-02, 1d 配置 GitHub Actions :done, infra3, 2025-07-03, 1d section 内容创作 写第一篇文章 :done, content1, 2025-07-15, 1d 添加搜索和归档 :done, content2, 2025-07-20, 2d Mermaid 测试 :active, content3, 2026-08-11, 1d section 未来计划 持续写作 : future1, 2026-08-12, 30d 状态图 (State Diagram) stateDiagram-v2 [*] --> 草稿 草稿 --> 审核中 : 提交审核 审核中 --> 已发布 : 审核通过 审核中 --> 草稿 : 退回修改 已发布 --> 已归档 : 归档 已归档 --> [*] 如果以上所有图表都能正常渲染,说明 Mermaid 功能配置正确。 ...
Git 代理配置完全指南
这篇文章梳理 Git 中所有代理配置方式,从简单的 git config 到 SSH 协议的 SOCKS5 隧道,一份指南全搞定。 为什么需要代理 访问 GitHub、GitLab 等平台时,有时会遇到 git clone 速度极慢甚至超时的情况。尤其是在国内网络环境下,给 Git 配置代理几乎是必备技能。 flowchart LR A[你的电脑] --> B{需要代理?} B -->|直连通畅| C[直接连接 Git 服务器] B -->|速度慢/超时| D[代理服务器] D --> E[Git 服务器github.comgitlab.com] C --> E 配置方式总览 Git 提供多种配置代理的途径,优先级从高到低: ...