<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dangpu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dangpu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dangpu]]></copyright><item><title><![CDATA[深入理解CRC32：参数详解与C语言实现（附完整源码及验证）]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/162685233</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/162685233</guid><author>dangpu</author><pubDate>Wed, 08 Jul 2026 09:32:30 +0800</pubDate><description><![CDATA[CRC（Cyclic Redundancy Check）是一种广泛应用于数据通信和存储的查错校验码。CRC32 生成长度为 32 位的校验值，常用于 ZIP、GZIP、以太网等协议中。本文实现的算法模型是常见的，其多项式为0xEDB88320，也是 Python和zlib.crc32的默认算法。本文详细解析了 CRC32 的六项关键参数，并通过代码展示了它们的具体作用。提供的 C 语言实现小巧、无第三方依赖，可直接嵌入单片机或嵌入式项目中。使用标准测试数据0xCBF43926。]]></description><category></category></item><item><title><![CDATA[嵌入式固件内存占用分析利器：Python实现S19/HEX地址空间可视化工具]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/160403404</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/160403404</guid><author>dangpu</author><pubDate>Wed, 22 Apr 2026 18:59:48 +0800</pubDate><description><![CDATA[本文介绍了一个基于Python的嵌入式固件内存分析工具，可解析S19/HEX文件并可视化内存占用情况。该工具支持自适应地址宽度、区间合并、占用统计等功能，无需第三方依赖，通过GUI界面展示分析结果。文章详细讲解了文件格式解析原理、核心算法实现及使用场景，为嵌入式开发人员提供了一种高效的内存布局分析方法。该工具能自动检测内存空洞、计算固件大小，帮助优化链接脚本和排查内存问题。]]></description><category></category></item><item><title><![CDATA[压扁的图像：嵌入式设备中的长方形像素之谜]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/160153909</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/160153909</guid><author>dangpu</author><pubDate>Mon, 20 Apr 2026 20:16:25 +0800</pubDate><description><![CDATA[本文针对非标准显示屏（如工业控制屏、车载异形屏等）的UI设计难题，提出了专业解决方案。当显示屏像素不是正方形时，传统设计方法会导致图形失真、布局错位等问题。文章以7英寸TFT模块为例，详细讲解了如何通过计算像素宽高比（PAR），在Photoshop中正确设置自定义像素比例（如1.076:1），从而确保设计效果与物理显示完全一致。文中包含从规格书参数解读、PAR计算公式到Photoshop实操步骤的完整指南，特别强调了验证方法和常见误区，帮助设计师彻底告别反复试错的困境，实现真正的&quot;所见即所得&qu]]></description><category></category></item><item><title><![CDATA[嵌入式 SHA-256 完全实现（附原码）（无 uint64_t，减少栈使用）]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/160257884</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/160257884</guid><author>dangpu</author><pubDate>Fri, 17 Apr 2026 19:29:45 +0800</pubDate><description><![CDATA[适用场景：本实现适合 RAM 小于 4 KB、无法使用uint64_t且数据量不超过512 MB的单片机（如 8051、PIC、AVR 等）。性能：每 64 字节块约进行 64 轮运算，在 16 MHz 的 8 位机上约需数十毫秒，足够大部分实时性要求不高的应用。可移植性：完全使用标准 C，仅依赖common.h中的内存函数（可轻松替换为string.h安全提醒：SHA-256 本身是安全的，但单片机应用中应注意防侧信道攻击（如功耗分析），必要时加入随机延时或掩码。扩展。]]></description><category></category></item><item><title><![CDATA[Visual Studio 2015 完整安装与问题解决指南（含证书配置、包丢失修复及工程加载失败处理）]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/159539841</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/159539841</guid><author>dangpu</author><pubDate>Fri, 27 Mar 2026 15:54:36 +0800</pubDate><description><![CDATA[Visual Studio 2015 的安装虽有一定复杂度，但只要按本文顺序处理好证书、依赖环境、包路径和修复流程，绝大多数问题都能顺利解决。本文提供的步骤均来自真实安装实践，适用于企业内网环境、离线安装等场景，希望能为遇到类似问题的开发者提供可靠参考。如有其他问题，欢迎在评论区留言交流。]]></description><category></category></item><item><title><![CDATA[Source Insight 4.0空格显示异常？简单设置一招恢复代码对齐]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/159161145</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/159161145</guid><author>dangpu</author><pubDate>Fri, 20 Mar 2026 16:47:33 +0800</pubDate><description><![CDATA[Source Insight 4.0 的空格显示异常问题，根源在于“Line up white space”功能的干扰。通过简单的配置修改，即可恢复代码的正常对齐。如果你在使用Source Insight时还遇到其他显示问题，欢迎在评论区留言交流。希望本文对你有所帮助，让你的编码体验更加愉悦！]]></description><category></category></item><item><title><![CDATA[Word频繁崩溃？一步解决 Office 加载项冲突]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/159285089</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/159285089</guid><author>dangpu</author><pubDate>Fri, 20 Mar 2026 16:44:45 +0800</pubDate><description><![CDATA[摘要： Word因SodaMSOAddin64.dll插件崩溃表现为启动闪退、文档卡死或加载项报错。该文件是SodaPDF的Office插件，卸载残留导致冲突。解决步骤：1）安全模式启动Word；2）禁用COM加载项中的SodaPDF条目；3）重启Word。Excel/PPT问题同理处理。预防建议卸载前检查加载项，慎装转换类工具，定期清理无效插件。问题本质为第三方插件残留，通过禁用或清理即可解决。]]></description><category></category></item><item><title><![CDATA[深入探讨C语言局部变量命名：简短之道与最佳实践]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158847106</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158847106</guid><author>dangpu</author><pubDate>Mon, 09 Mar 2026 16:42:53 +0800</pubDate><description><![CDATA[本文探讨了C语言中局部变量命名的长短权衡。通过分析一段因变量命名过长而导致阅读负担的代码，提出了“作用域越小，命名可越短”的核心原则。文章认为，在局部范围内使用i、j、temp等简短惯用名，能减少阅读时的“解码”成本，提升代码清爽度。同时强调，现代IDE应作为辅助工具，而非写出冗长命名的借口。最后指出在复杂算法、较长函数或涉及安全逻辑等场景下仍需使用描述性命名，并建议团队建立一致规范，以可读性为首要目标。]]></description><category></category></item><item><title><![CDATA[从一道隐蔽的Bug说起：C语言运算符优先级与结合性深度解析]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158803819</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158803819</guid><author>dangpu</author><pubDate>Sun, 08 Mar 2026 22:20:22 +0800</pubDate><description><![CDATA[本文从C语言中一个因运算符优先级误解引发的隐蔽Bug出发，深度解析了运算符优先级与结合性的核心规则。通过完整的代码示例和运行结果对比，直观展示了优先级错误如何导致程序行为与开发者意图背道而驰。文章附带了原创的C语言运算符优先级与结合性总表，并进一步剖析了结合性对表达式求值的影响，揭示了*p++、逻辑短路等多个常见陷阱。最终，文章给出了最核心的编码建议：当表达式涉及多种运算符时，务必使用圆括号明确计算顺序，以消除歧义、增强代码可读性，从根本上避免此类错误。]]></description><category></category></item><item><title><![CDATA[根据轮胎规格，计算轮胎直径]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158775171</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158775171</guid><author>dangpu</author><pubDate>Sun, 08 Mar 2026 00:05:24 +0800</pubDate><description><![CDATA[轮胎直径 = 轮毂直径＋胎宽×扁平比×2
        = D＋2h＝14×25.4mm＋185mm×0.60×2＝355.6mm＋222mm＝577.6mm
胎压高低，载重情况会影响轮胎直径，进而影响车速和里程的计算]]></description><category></category></item><item><title><![CDATA[车厂要求的CAN超时时间设定]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158772759</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158772759</guid><author>dangpu</author><pubDate>Sat, 07 Mar 2026 14:18:36 +0800</pubDate><description><![CDATA[一般主机厂的要求如下
帧周期(ms)=frameCyc，超时时间(ms)=timeout]]></description><category></category></item><item><title><![CDATA[C语言高效编程的五个“隐形利器”：从入门到精通的核心技巧]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158771965</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158771965</guid><author>dangpu</author><pubDate>Sat, 07 Mar 2026 13:10:19 +0800</pubDate><description><![CDATA[摘要：本文深入解析C语言中五个经典编程技巧，包括整数四舍五入((a+b/2)/b)、高效向上取整((a+b-1)/b)、位运算判断奇偶性(a&amp;1)、数组长度计算(sizeof(a)/sizeof(a[0]))和状态取反(a^=1)。通过完整代码示例和底层原理分析，揭示这些技巧背后的计算机运算本质。掌握这些方法不仅能编写更简洁高效的代码，更能深入理解计算机底层工作机制，从&quot;会用&quot;进阶到&quot;懂其所以然&quot;，提升代码质量和开发能力。]]></description><category></category></item><item><title><![CDATA[深度解剖 | C语言中那些隐藏的数据溢出陷阱：从整型提升到回绕，再到移植性灾难]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158740122</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158740122</guid><author>dangpu</author><pubDate>Fri, 06 Mar 2026 17:15:20 +0800</pubDate><description><![CDATA[本文深入剖析了C语言编程中极易被忽视却又频繁引发诡异Bug的三类数据溢出陷阱。
首先，通过一个看似简单的算术运算案例 (6554 * 10) / 10 != 6554，揭示了计算过程中的隐形截断问题，阐明了在16位系统上中间结果溢出导致计算错误的本质，并给出了“手动提升运算精度”的解决方案。
其次，以一个经典的轮询计数器为例，剖析了平台移植带来的逻辑崩塌——同一段利用无符号回绕特性的代码，在16位环境运行正常，移植到32位环境后却逻辑失效。本文深入解释了“整型提升”在此过程中的作用，并提供了通过强制截断]]></description><category></category></item><item><title><![CDATA[UDS CAN ID的作用]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/158571992</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/158571992</guid><author>dangpu</author><pubDate>Mon, 02 Mar 2026 11:27:24 +0800</pubDate><description><![CDATA[车载UDS的CAN ID的作用]]></description><category></category></item><item><title><![CDATA[Linux文件和目录的基本权限整理（方便记忆）]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/41597749</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/41597749</guid><author>dangpu</author><pubDate>Sat, 29 Nov 2014 18:11:17 +0800</pubDate><description><![CDATA[一、改变文件或目录的拥有者和群组：
命令格式：chown [-R] owner:group filename
参数解释：-R：对目录递归。owner改成该账号为拥有者，group改成该账号为群组，filename欲操作的文件或目录。
特例一：只改变owner不改变group时，group项留空。
       chown [-R] owner filename
特例二：只改变group不改变own]]></description><category></category></item><item><title><![CDATA[Linux建立目录或文件时inode和block分配情况]]></title><link>https://blog.youkuaiyun.com/dangpu/article/details/40020801</link><guid>https://blog.youkuaiyun.com/dangpu/article/details/40020801</guid><author>dangpu</author><pubDate>Sun, 12 Oct 2014 19:20:46 +0800</pubDate><description><![CDATA[实验主机：
VMware虚拟机里装的Ubuntu12.04系统。
 
Linux系统里，可以通过dumpe2fs命令查询一个文件系统里剩余的block和inode，这两个数据分别记录在Free blocks和Free inodes字段里。
通过dumpe2fs命令查询获得的数据量非常大，不容易在屏幕上找到这两个字段，所以就用grep命令把这两行找出来显示，其他的数据不需要显示。
还有，d]]></description><category></category></item></channel></rss>