- 博客(11)
- 收藏
- 关注
原创 【CAN总线】从入门到精通
CAN协议通过差分传输抗干扰,硬件逐位仲裁实现高优先级数据零等待,结合CRC与错误计数机制保障通信可靠性。支持高速(1Mbit/s)与低速容错(125kbit/s)两种物理层,采用广播式多主架构,报文ID兼具内容标识、优先级与过滤功能。帧结构包含数据帧、远程帧、错误帧等五类,通过位填充、同步段、重同步等机制确保位定时准确。错误检测与主动/被动状态管理实现故障隔离,单节点故障不会导致总线瘫痪。后续发展出CANFD和上层协议
2026-10-11 09:30:00
316
原创 【USB协议】深度解析
本文系统讲解 USB 协议的核心机制,从通信模型、物理层与接入检测,到包、事务、传输的层次关系,再到设备枚举、描述符体系、四种传输类型、控制传输与标准请求,最后介绍设备类与驱动匹配。文章以嵌入式工程师视角,结合大量表格和图示,帮助读者理解 USB 从设备插入到正常通信的完整流程,并掌握常见问题的排查思路。
2026-09-19 07:45:00
651
原创 CoAP协议深入解析
本文详细介绍了CoAP(受限应用协议),这是一种专为物联网设备设计的轻量级应用层协议。文章从协议基础、消息格式、消息类型、请求/响应模型、选项机制和扩展功能六个方面进行系统阐述
2026-08-12 15:59:11
313
原创 深入解析 Cortex-M3 启动过程与Bootloader
本文深入解析了STM32嵌入式系统的启动过程与Bootloader实现原理。首先介绍了硬件复位时Cortex-M3内核自动执行的向量表取址流程,包括地址重映射机制和BOOT引脚的作用。随后详细剖析了启动文件的核心功能:定义栈/堆空间、初始化向量表、配置系统时钟等。文章重点讲解了Bootloader的设计实现,包括Flash分区规划、向量表重定位(VTOR)、跳转函数编写以及完整的Bootloader工作流程。通过系统Bootloader和自定义Bootloader的对比,阐述了如何利用中断向量表和硬件复位机
2026-08-03 20:07:12
427
原创 深入解析 Cortex-M3 内核寄存器系统
本文详细解析了ARM Cortex-M3内核的寄存器系统,主要包含三类寄存器:通用寄存器(R0-R15)、程序状态寄存器组的三个子寄存器(APSR、EPSR、IPSR)的功能,以及中断屏蔽寄存器组(PRIMASK、FAULTMASK、BASEPRI)和控制寄存器(CONTROL)
2026-07-14 19:21:16
228
原创 Makefile 入门核心语法与进阶技巧
本文系统介绍了Makefile的核心概念与实用技巧。主要内容包括:1. Makefile的必要性:解决大型项目增量编译、依赖管理和构建标准化问题,避免重复编译未修改文件。2. 核心语法详解:- 变量赋值方式(=、:=、?=、+=)的区别与适用场景- 自动变量(@、<、^等)简化规则编写- 模式规则(%)实现批量文件处理- 常用函数(wildcard、patsubst等)进行文件操作3. 进阶技巧:- 多目标/多规则管理- 伪目标.PHONY的作用- 文件搜索机制(VPATH/vpath)- 递归mak
2026-07-08 20:23:45
321
原创 FTP协议详解
本文介绍了FTP协议的基本原理与工作方式。FTP作为应用层协议,采用双连接模型:控制连接(21端口)维持会话,数据连接按需建立。数据连接分为主动模式(PORT)和被动模式(PASV),后者更常用以避免防火墙问题。文章详细列举了FTP命令分类(访问控制、传输参数、文件操作等)和响应码体系(1-5开头的三位数字),并通过交互示例展示了协议工作流程。
2026-05-23 11:18:14
487
原创 深入解析STM32存储器架构与总线系统
本文系统介绍了MCU存储器的核心知识。主要内容包括:1.存储器分类:RAM(易失性,用于运行时数据)和ROM(非易失性,用于存储程序代码);2.STM32存储器架构:详细解析4GB寻址空间的分块管理,包括Flash、SRAM和外设的地址映射;3.总线系统:重点说明ICode、DCode、系统总线及DMA总线的分工协作;4.存储特性:深入讲解Flash的页式管理和擦写机制;5.内存分区:阐述C/C++程序在MCU中的存储分布。文章通过STM32实例,结合图表清晰展现了MCU存储系统的完整架构和工作原理。
2026-04-27 20:52:16
456
原创 LWIP TCP 连接断开状态机
本文基于LWIP 2.2.1源码详细解析了TCP连接断开的状态机实现。文章首先介绍了TCP四次挥手的基本流程,然后深入分析了LWIP中TCP断开连接的各个状态转换:主动关闭状态机:ESTABLISHED→FIN_WAIT_1→FIN_WAIT_2→TIME_WAIT→CLOSED被动关闭状态机:ESTABLISHED→CLOSE_WAIT→LAST_ACK→CLOSED同时关闭的特殊情况:CLOSING状态的处理
2026-04-07 21:06:14
502
1
原创 LWIP TCP 连接状态机
本文基于LWIP 2.2.1源码分析TCP状态机工作原理,重点解析三次握手过程中客户端和服务器的状态转换。客户端状态流程为CLOSED→SYN_SENT→ESTABLISHED,服务器为CLOSED→LISTEN→SYN_RCVD→ESTABLISHED。文章详细剖析了关键函数tcp_process()如何根据当前状态处理数据包,包括SYN_SENT状态下处理第二次握手、SYN_RCVD状态下处理第三次握手等核心逻辑。同时结合socket API调用流程,说明状态转换与系统调用的对应关系,如connect(
2026-03-22 15:04:53
474
原创 FreeRTOS 内存管理分配算法
本文介绍了FreeRTOS中的动态内存管理机制。主要内容包括:1)FreeRTOS提供5种内存管理算法(heap1-5),分别适用于不同场景,如heap1仅支持分配不支持释放,heap4支持内存合并减少碎片;2)详细分析了heap2的最适应算法实现,包括内存块结构、空闲链表管理和碎片问题;3)heap3是对标准C库malloc/free的线程安全封装;4)heap4在heap2基础上增加相邻块合并功能;5)heap5扩展支持非连续内存区域管理。这些机制针对嵌入式系统资源受限的特点,通过不同策略平衡内存利用率
2026-02-28 09:13:08
811
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅