自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 高阶嵌入式工程师必备:GDB+Core Dump 死机追踪核心方法论

GDB+Core Dump是定位这类死机根因的“黄金组合”——前者是调试工具,后者是崩溃现场快照,二者结合可高效还原死机瞬间的程序状态,精准定位问题

2025-12-21 09:49:18 693

原创 如何优雅的应对屎山代码[特殊字符]

职场不是 “写漂亮代码的乌托邦”,而是 “解决问题的修罗场”

2025-12-14 18:54:07 559

原创 嵌入式参数设计避坑指南:宏定义VS配置文件的最优解

嵌入式设备参数配置的设计哲学与实践 摘要: 本文探讨了嵌入式设备参数配置的设计思路,对比了宏定义与配置文件两种方式的优缺点。宏定义适合硬件底层、系统核心和安全敏感参数,具有高效稳定但修改不便的特点;配置文件则适用于业务逻辑和个性化参数,灵活性高但存在性能开销。文章提出"动静分离"和"分层设计"的混合策略,将参数按硬件层、系统层和业务层划分,采用不同的存储策略。大厂实践中往往结合使用宏定义和配置文件,通过分层隔离、变更成本最小化和安全边界原则实现最优平衡。

2025-12-08 22:35:33 935

原创 对标大厂规范___嵌入式程序的 “身份标识” 嵌入实操

资深嵌入式工程师都会在编译时,把编译时间、软件版本,Git 哈希值、硬件配置等信息悄悄嵌进程序里 —— 这些看似 “无关紧要” 的信息,却是**调试、溯源、运维**的关键抓手。

2025-11-30 02:32:06 600

原创 网络小白:Socket 是什么?你按的 “闪现”,怎么让游戏角色瞬间移动?

Socket是程序间网络通信的核心接口,它屏蔽底层复杂细节,让程序只需指定收件人(IP+端口)和内容即可传输数据。

2025-11-07 01:12:13 505

原创 串口协议解析:别再死磕 buf [0] 了!这另一种思路,你可能闻所未闻

本文对比了嵌入式开发中串口协议的两种处理方式:二进制解析和文本协议解析。二进制解析效率高但开发维护困难,存在字节索引硬伤、可读性差、调试复杂等问题。而基于sscanf+snprintf的文本协议解析通过"字段名+值"的显式表达,大幅提升可读性和维护性,但会牺牲部分效率。文章从效率、开发维护、调试等5个维度进行了客观对比,建议根据项目需求选择:强实时场景用二进制,注重开发效率的场合用文本。作者强调要跳出思维定式,灵活选用最适合的工具组合,以提升开发效率。

2025-11-06 00:07:11 520

原创 计算机网络的“普通话”:OSI七层模型

它的智慧不是技术,而是 “把复杂问题拆解开,再协作完成”。

2025-10-25 23:21:46 548

原创 先本地~后硬件:ARM嵌入式开发的3种编译模式,效率翻N倍!

如果你刚从Keil转Linux开发,不妨试试这套流程——下次遇到硬件调试的坑,可能会忍不住说“早知道先在电脑上多测测了”~

2025-10-18 07:00:00 802

原创 从Keil到VS Code:ARM开发者必看的“显性化”转型指南

从Keil到VS Code的转型,表面是从"图形界面"到"命令行"的切换,实则是从"依赖工具"到"掌控流程"的思维转变。

2025-10-16 07:00:00 1061

原创 无名英雄.gitattributes文件~解决跨平台协作难题

摘要:Git的.gitattributes文件是团队协作中常被忽视但至关重要的配置工具,它定义了Git对文件的具体处理规则,解决跨平台换行符冲突、工程文件合并损坏、二进制文档对比等问题。

2025-10-14 00:13:02 1242

原创 解锁.gitignore:让你的代码仓库整洁有序

Git中的.gitignore文件用于指定无需版本跟踪的文件和目录,如开发工具配置文件、编译产物等。本文系统介绍了.gitignore的定义、作用、语法规则(包括注释、通配符、路径控制等),并提供了VSCode和Keil环境的配置模板。关键注意事项包括:文件需置于仓库根目录、已跟踪文件需手动取消跟踪、修改规则后需刷新缓存。合理使用.gitignore能减少仓库体积、避免协作冲突,提升开发效率。

2025-10-12 22:17:00 1018

原创 嵌入式三大线程之 守护线程的设计框架

本文系统阐述了守护线程在嵌入式系统中的关键作用与实现方法。作为三大线程之一,守护线程负责长期监测系统异常状态(程序卡死、线程死锁、CPU过载等),确保安全关键系统的可靠运行。文章详细分析了守护线程的特性(周期性、继承性、后台运行)和经典设计框架,重点讨论了优先级设置对系统稳定性的影响,建议采取与用户线程差异化周期运行的方式。同时强调在异常处理时需完成安全状态切换、关键参数记录等必要操作,推荐利用RAM保留区存储重启日志以辅助问题追踪。最后指出守护线程设计需结合具体硬件特性,并采取MPU保护等措施确保数据完整

2025-08-14 08:45:12 968

原创 手撕~大疆嵌入式软件 面试题 面经

本文收集、梳理了大疆嵌入式软件面试的一系列问题,每个问题都值得我们深思、学习,我会逐个对问题进行分析、回答,当然答案肯定开放的,不会有一个标准的正确答案。但个人知识有限,题解可能有误、有缺陷,小弟抛砖引玉一下,希望各位大佬能各抒高见。

2025-08-13 00:46:01 1041

原创 如何应对CAN总线冲突和数据丢包

设计STM32的CAN总线功能时,如何使用软件策略、协议机制、硬件特性来处理总线冲突和数据丢包

2025-08-12 22:42:49 1472

原创 C野指针的概念与应对(源头、阻隔、定位)

本文用于讲述野指针的概念,并从源头产生、中间阻断、故障定位等3个角度输出应对策略。

2025-08-10 17:26:16 887 1

原创 蓝牙技术概览

本文对蓝牙硬件架构、协议栈、应用协议类型等进行概要描述,内容总结于蓝牙联盟官网蓝牙规范文件,本文只用于蓝牙技术扫盲,具体细节请参考官网

2025-08-09 23:10:54 943

原创 GitFlow Workflow 工作流理论模型

本文主要分享Gitflow Workflow的工作流模型,分析其基于master develop featrue release hotfix的分支管理策略,工作过程中如何使用该工作流模型,促使团队有效沟通合作,共同完成一个复杂项目的开发工作。

2025-08-06 01:07:38 1036

原创 嵌入式系统 低功耗设计

本文简述嵌入式系统中主要功耗的分类、来源,及如何从软件、硬件方面进行低功耗设计。文中提到的低功耗设计方法会比较简单,因为把最重要的指令缓存、数据缓存部分给简要跳过了,这部分实在是太复杂、太抽象,需要研究这部分的朋友可以直接去看指令存储、数据存储相关的论文。

2025-08-01 09:55:02 1133

原创 RT-Thread精妙小设计:用结构体成员指针获取结构体指针

本文分享RT-Thread系统中:“使结构体成员指针来获取所在结构体指针”的方式,分析其实现原理、适用场景,虽然这种设计较为简单,但它背后却蕴藏了重要的架构设计思想:解耦、抽象、复用、封装等,使程序更加清晰、易维护、易扩展。

2025-07-28 18:43:39 923

原创 一文搞懂设备驱动框架(设备树)(以RT-Thread 为例)

设备之间为各类派生继承的关系,向上追本溯源,可谓同根而生。本文讲述嵌入式系统中“设备框架”或“设备树”的概念,分析其设计初衷、核心设计思想、实现原理等,并以RT-Thread系统的设备框架为例进行讲解。

2025-07-28 18:39:25 1312

原创 嵌入式系统中线程优先级的设计框架

优先级是一种衡量线程在“响应延迟的确定性”的指标,如何合理进行设置?

2025-07-20 03:54:04 663

原创 OTA 技术框架-AES加密-无感升级-固件备份 bootloader软件升级

本文介绍当前主流OTA固件升级的技术框架,功能:无感升级、固件备份、看门狗钩子APP检验,描述了硬件架构、软件架构、APP软件流程、BOOT软件流程等内容。

2025-07-20 00:05:51 1567

原创 头文件_架构师必经之路

解释.H头文件的重要性及如何设计,好的.H文件如何针对零信任接口安全、数据流方式、南北桥接口、阻塞特性、资源占用等高级因素进行设计。

2025-07-13 23:28:27 608

原创 ARM 非侵入式调试

启动仿真模式后,BUG莫名其妙就无法复现的原因,ARM中侵入式调试和非侵入式调试的概念、关键区别,两种调试技术对原有程序流的影响,适用场景等

2025-07-13 23:24:35 390

原创 工具分享Doxygen_源代码文档自动生成(注释规范)

推荐一款能够根据源代码和注释,自动生成源代码文档的神器。本部分讲注释规范,在没有使用该软件时,也建议使用此种注释方式。

2025-06-25 00:29:01 749

原创 工具分享Doxygen_源代码文档自动生成(移植)

推荐一款能够根据源代码和注释,自动生成源代码文档的神器,本部分讲如何配置。Doxygen 是一个流行的源代码文档生成工具,能够从注释的源代码中提取文档并生成多种格式的输出(如HTML、LaTeX、RTF等)。

2025-06-25 00:24:24 975

原创 好工具分享_keil build viewer(附赠ARM编译过程文件简要说明)

分享一个用于增强keil 的编译信息显示的轻量化工具,附属ARM编译过程中各种文件类型的简要说明。

2025-06-24 00:38:25 1417

原创 Cortex-M_中断与异常

Cortex-M_中断与异常之间的区别

2025-06-22 12:52:03 484

原创 代码规范——预编译指令顶格写

很多预编译指令(include#ifdef )都是顶格编写的,那预编译指令为什么要顶格写呢?为什么他们在多个#ifdef之间嵌套时也有没有进行缩进呢?

2025-06-21 01:33:20 461

原创 系统级调试利器SystemView移植及使用教程

本文主要用于介绍SystemView软件,指导在工程中如何植入并对系统作出分析

2025-06-09 16:53:55 3446 19

原创 快速添加头文件路径的方式说明,keil、CubeIDE、RT-Thread Studio等

keil、CubeIDE、RT-Thread Studio等每次新建工程后,都要手动的去点击添加完一行行的头文件路径,为了提升效率,调研了已有的3种解决方法,并选择了最适合自己状况的方式。

2025-03-27 00:42:48 971

原创 RT-Rthread Studio STM32 工程核心文件说明

本文以stm32g474为例,介绍了RT-Rthread Studio生成的工程文件的构成,及各文件作用

2025-03-23 10:53:10 455

原创 CubeMX STM32 工程核心文件结构及作用的说明

本文以stm32g474为例,介绍了CubeMX生成的工程文件的构成,及各文件作用

2025-03-23 10:51:43 1175

原创 DMA与外设数据宽度不一致的问题现象及本质

当DMA与外设数据宽度不一致的问题现象,及其背后的本质原因

2025-03-23 10:19:10 577

原创 单片机嵌入式软件 底层设备驱动 自动注册 自动初始化

嵌入式软件底层软件的自动化注册、自动初始化,无需在程序启动时,手动添加程序的初始化函数

2025-03-23 09:00:16 1124 3

原创 CubeMX & RT-Thread Studio 联合开发说明

CubeMX具有最新的HAL库和强大的图形化外设配置功能,RT-Thread Studio自动配置RT-Thread系统工程和丰富相关组件,如何将两者的优势结合起来呢?

2025-03-22 23:33:09 879 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除