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