<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiangaler的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiangaler</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiangaler]]></copyright><item><title><![CDATA[高阶嵌入式工程师必备：GDB+Core Dump 死机追踪核心方法论]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/156124854</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/156124854</guid><author>xiangaler</author><pubDate>Sun, 21 Dec 2025 09:49:18 +0800</pubDate><description><![CDATA[GDB+Core Dump是定位这类死机根因的“黄金组合”——前者是调试工具，后者是崩溃现场快照，二者结合可高效还原死机瞬间的程序状态，精准定位问题]]></description><category></category></item><item><title><![CDATA[如何优雅的应对屎山代码[特殊字符]]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/155916424</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/155916424</guid><author>xiangaler</author><pubDate>Sun, 14 Dec 2025 18:54:07 +0800</pubDate><description><![CDATA[职场不是 “写漂亮代码的乌托邦”，而是 “解决问题的修罗场”]]></description><category></category></item><item><title><![CDATA[嵌入式参数设计避坑指南：宏定义VS配置文件的最优解]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/155716979</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/155716979</guid><author>xiangaler</author><pubDate>Mon, 08 Dec 2025 22:35:33 +0800</pubDate><description><![CDATA[嵌入式设备参数配置的设计哲学与实践 摘要： 本文探讨了嵌入式设备参数配置的设计思路，对比了宏定义与配置文件两种方式的优缺点。宏定义适合硬件底层、系统核心和安全敏感参数，具有高效稳定但修改不便的特点；配置文件则适用于业务逻辑和个性化参数，灵活性高但存在性能开销。文章提出&quot;动静分离&quot;和&quot;分层设计&quot;的混合策略，将参数按硬件层、系统层和业务层划分，采用不同的存储策略。大厂实践中往往结合使用宏定义和配置文件，通过分层隔离、变更成本最小化和安全边界原则实现最优平衡。]]></description><category></category></item><item><title><![CDATA[对标大厂规范___嵌入式程序的 “身份标识” 嵌入实操]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/155399835</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/155399835</guid><author>xiangaler</author><pubDate>Sun, 30 Nov 2025 02:32:06 +0800</pubDate><description><![CDATA[资深嵌入式工程师都会在编译时，把编译时间、软件版本，Git 哈希值、硬件配置等信息悄悄嵌进程序里 —— 这些看似 “无关紧要” 的信息，却是**调试、溯源、运维**的关键抓手。]]></description><category></category></item><item><title><![CDATA[网络小白：Socket 是什么？你按的 “闪现”，怎么让游戏角色瞬间移动？]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/154506544</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/154506544</guid><author>xiangaler</author><pubDate>Fri, 07 Nov 2025 01:12:13 +0800</pubDate><description><![CDATA[Socket是程序间网络通信的核心接口，它屏蔽底层复杂细节，让程序只需指定收件人(IP+端口)和内容即可传输数据。]]></description><category></category></item><item><title><![CDATA[串口协议解析：别再死磕 buf [0] 了！这另一种思路，你可能闻所未闻]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/154459092</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/154459092</guid><author>xiangaler</author><pubDate>Thu, 06 Nov 2025 00:07:11 +0800</pubDate><description><![CDATA[本文对比了嵌入式开发中串口协议的两种处理方式：二进制解析和文本协议解析。二进制解析效率高但开发维护困难，存在字节索引硬伤、可读性差、调试复杂等问题。而基于sscanf+snprintf的文本协议解析通过&quot;字段名+值&quot;的显式表达，大幅提升可读性和维护性，但会牺牲部分效率。文章从效率、开发维护、调试等5个维度进行了客观对比，建议根据项目需求选择：强实时场景用二进制，注重开发效率的场合用文本。作者强调要跳出思维定式，灵活选用最适合的工具组合，以提升开发效率。]]></description><category></category></item><item><title><![CDATA[计算机网络的“普通话”：OSI七层模型]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/153895884</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/153895884</guid><author>xiangaler</author><pubDate>Sat, 25 Oct 2025 23:21:46 +0800</pubDate><description><![CDATA[它的智慧不是技术，而是 “把复杂问题拆解开，再协作完成”。]]></description><category></category></item><item><title><![CDATA[先本地~后硬件：ARM嵌入式开发的3种编译模式，效率翻N倍！]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/153491931</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/153491931</guid><author>xiangaler</author><pubDate>Sat, 18 Oct 2025 07:00:00 +0800</pubDate><description><![CDATA[如果你刚从Keil转Linux开发，不妨试试这套流程——下次遇到硬件调试的坑，可能会忍不住说“早知道先在电脑上多测测了”～]]></description><category></category></item><item><title><![CDATA[从Keil到VS Code：ARM开发者必看的“显性化”转型指南]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/153362774</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/153362774</guid><author>xiangaler</author><pubDate>Thu, 16 Oct 2025 07:00:00 +0800</pubDate><description><![CDATA[从Keil到VS Code的转型，表面是从"图形界面"到"命令行"的切换，实则是从"依赖工具"到"掌控流程"的思维转变。]]></description><category></category></item><item><title><![CDATA[无名英雄.gitattributes文件~解决跨平台协作难题]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/153217923</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/153217923</guid><author>xiangaler</author><pubDate>Tue, 14 Oct 2025 00:13:02 +0800</pubDate><description><![CDATA[摘要：Git的.gitattributes文件是团队协作中常被忽视但至关重要的配置工具，它定义了Git对文件的具体处理规则，解决跨平台换行符冲突、工程文件合并损坏、二进制文档对比等问题。]]></description><category></category></item><item><title><![CDATA[解锁.gitignore：让你的代码仓库整洁有序]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/153139183</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/153139183</guid><author>xiangaler</author><pubDate>Sun, 12 Oct 2025 22:17:00 +0800</pubDate><description><![CDATA[Git中的.gitignore文件用于指定无需版本跟踪的文件和目录，如开发工具配置文件、编译产物等。本文系统介绍了.gitignore的定义、作用、语法规则（包括注释、通配符、路径控制等），并提供了VSCode和Keil环境的配置模板。关键注意事项包括：文件需置于仓库根目录、已跟踪文件需手动取消跟踪、修改规则后需刷新缓存。合理使用.gitignore能减少仓库体积、避免协作冲突，提升开发效率。]]></description><category></category></item><item><title><![CDATA[嵌入式三大线程之 守护线程的设计框架]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/150379517</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/150379517</guid><author>xiangaler</author><pubDate>Thu, 14 Aug 2025 08:45:12 +0800</pubDate><description><![CDATA[本文系统阐述了守护线程在嵌入式系统中的关键作用与实现方法。作为三大线程之一，守护线程负责长期监测系统异常状态（程序卡死、线程死锁、CPU过载等），确保安全关键系统的可靠运行。文章详细分析了守护线程的特性（周期性、继承性、后台运行）和经典设计框架，重点讨论了优先级设置对系统稳定性的影响，建议采取与用户线程差异化周期运行的方式。同时强调在异常处理时需完成安全状态切换、关键参数记录等必要操作，推荐利用RAM保留区存储重启日志以辅助问题追踪。最后指出守护线程设计需结合具体硬件特性，并采取MPU保护等措施确保数据完整]]></description><category></category></item><item><title><![CDATA[手撕~大疆嵌入式软件 面试题 面经]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/150308466</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/150308466</guid><author>xiangaler</author><pubDate>Wed, 13 Aug 2025 00:46:01 +0800</pubDate><description><![CDATA[本文收集、梳理了大疆嵌入式软件面试的一系列问题，每个问题都值得我们深思、学习，我会逐个对问题进行分析、回答，当然答案肯定开放的，不会有一个标准的正确答案。但个人知识有限，题解可能有误、有缺陷，小弟抛砖引玉一下，希望各位大佬能各抒高见。]]></description><category></category></item><item><title><![CDATA[如何应对CAN总线冲突和数据丢包]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/150294488</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/150294488</guid><author>xiangaler</author><pubDate>Tue, 12 Aug 2025 22:42:49 +0800</pubDate><description><![CDATA[设计STM32的CAN总线功能时，如何使用软件策略、协议机制、硬件特性来处理总线冲突和数据丢包]]></description><category></category></item><item><title><![CDATA[C野指针的概念与应对（源头、阻隔、定位）]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/150151073</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/150151073</guid><author>xiangaler</author><pubDate>Sun, 10 Aug 2025 17:26:16 +0800</pubDate><description><![CDATA[本文用于讲述野指针的概念，并从源头产生、中间阻断、故障定位等3个角度输出应对策略。]]></description><category></category></item><item><title><![CDATA[蓝牙技术概览]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/150118578</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/150118578</guid><author>xiangaler</author><pubDate>Sat, 09 Aug 2025 23:10:54 +0800</pubDate><description><![CDATA[本文对蓝牙硬件架构、协议栈、应用协议类型等进行概要描述，内容总结于蓝牙联盟官网蓝牙规范文件，本文只用于蓝牙技术扫盲，具体细节请参考官网]]></description><category></category></item><item><title><![CDATA[GitFlow Workflow 工作流理论模型]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/149951221</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/149951221</guid><author>xiangaler</author><pubDate>Wed, 06 Aug 2025 01:07:38 +0800</pubDate><description><![CDATA[本文主要分享Gitflow Workflow的工作流模型，分析其基于master develop featrue release hotfix的分支管理策略，工作过程中如何使用该工作流模型，促使团队有效沟通合作，共同完成一个复杂项目的开发工作。]]></description><category></category></item><item><title><![CDATA[嵌入式系统 低功耗设计]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/149826230</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/149826230</guid><author>xiangaler</author><pubDate>Fri, 01 Aug 2025 09:55:02 +0800</pubDate><description><![CDATA[本文简述嵌入式系统中主要功耗的分类、来源，及如何从软件、硬件方面进行低功耗设计。文中提到的低功耗设计方法会比较简单，因为把最重要的指令缓存、数据缓存部分给简要跳过了，这部分实在是太复杂、太抽象，需要研究这部分的朋友可以直接去看指令存储、数据存储相关的论文。]]></description><category></category></item><item><title><![CDATA[RT-Thread精妙小设计：用结构体成员指针获取结构体指针]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/149723101</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/149723101</guid><author>xiangaler</author><pubDate>Mon, 28 Jul 2025 18:43:39 +0800</pubDate><description><![CDATA[本文分享RT-Thread系统中：“使结构体成员指针来获取所在结构体指针”的方式，分析其实现原理、适用场景，虽然这种设计较为简单，但它背后却蕴藏了重要的架构设计思想：解耦、抽象、复用、封装等，使程序更加清晰、易维护、易扩展。]]></description><category></category></item><item><title><![CDATA[一文搞懂设备驱动框架（设备树）（以RT-Thread 为例）]]></title><link>https://blog.youkuaiyun.com/xiangaler/article/details/149723034</link><guid>https://blog.youkuaiyun.com/xiangaler/article/details/149723034</guid><author>xiangaler</author><pubDate>Mon, 28 Jul 2025 18:39:25 +0800</pubDate><description><![CDATA[设备之间为各类派生继承的关系，向上追本溯源，可谓同根而生。本文讲述嵌入式系统中“设备框架”或“设备树”的概念，分析其设计初衷、核心设计思想、实现原理等，并以RT-Thread系统的设备框架为例进行讲解。]]></description><category></category></item></channel></rss>