<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[2403_83044722的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/2403_83044722</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; 2403_83044722]]></copyright><item><title><![CDATA[F28335 入门第一课：SysCtrl 系统控制模块完全拆解]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/170248876</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/170248876</guid><author>2403_83044722</author><pubDate>Sat, 07 Nov 2026 23:56:23 +0800</pubDate><description><![CDATA[学习F28335应先掌握SysCtrl模块，而非直接点灯。时钟树（PLL、HISPCP/LOSPCP）、外设门控（PCLKCR）、看门狗及EALLOW保护机制是核心，直接影响后续ePWM、SCI等外设正常工作。新手常因忽略时钟分频、未开外设时钟或缺EALLOW而遇“灯亮却无输出”“串口乱码”等问题。建议手写BoardInit()函数，系统化配置时钟与门控，并通过三步验证确保正确性。掌握SysCtrl，方能真正理解DSP运行逻辑。]]></description><category></category></item><item><title><![CDATA[F28335 实战：从 .map 文件看 RAM 占用，以及 RAMM / RAML 的区别]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/170054530</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/170054530</guid><author>2403_83044722</author><pubDate>Wed, 04 Nov 2026 23:41:26 +0800</pubDate><description><![CDATA[本文详解TI TMS320F28335 DSP开发中如何通过.map文件分析RAM占用情况。重点介绍：确认.map文件生成（需Clean+Rebuild并开启链接器输出选项）；在MEMORY CONFIGURATION表中查看各RAM块（如RAMM0、RAML0~L7）的使用量与剩余空间；区分PAGE0（代码/初始化数据）与PAGE1（堆栈/全局变量）的逻辑分配；识别真正占用的SRAM（忽略外设寄存器等非RAM区域）。强调RAMM块小（1KB）、常用于堆栈，RAML块大（4KB）、多用于代码和数组，且其归属]]></description><category></category></item><item><title><![CDATA[嵌入式开发避坑指南：一文读懂 DSP 中的 .cmd 链接器命令文件]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/170053820</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/170053820</guid><author>2403_83044722</author><pubDate>Wed, 04 Nov 2026 22:21:54 +0800</pubDate><description><![CDATA[本文详解TIDSP开发中关键的.cmd链接器命令文件，解析其在编译链接阶段的核心作用：通过MEMORY定义物理内存布局，SECTIONS分配代码与数据段位置。结合28335_RAM_lnk.cmd实例，揭示RAM与Flash模式差异，强调代码运行地址与加载地址分离机制，并提供内存溢出处理、外设寄存器映射等实用避坑技巧，助开发者掌握底层内存管理，实现程序稳定运行。]]></description><category></category></item><item><title><![CDATA[深入C语言底层：隐式类型转换、整数提升与截断的“致命”陷阱]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/162016658</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/162016658</guid><author>2403_83044722</author><pubDate>Mon, 15 Jun 2026 23:43:10 +0800</pubDate><description><![CDATA[本文深入剖析了C语言中隐式类型转换的底层机制及潜在风险。文章从硬件层面解释了整数提升的必要性，通过代码示例展示了char类型运算中的截断陷阱（100+100=-56），以及有符号/无符号混合比较时的意外结果（1&lt;-1）。重点分析了size_t下溢导致的经典错误，如空字符串校验失效问题，并提出防范建议：启用严格编译器警告、使用固定宽度类型、警惕标准库返回值和显式类型转换。作者强调，理解这些底层机制对编写健壮C代码至关重要，这是平衡硬件效率与代码安全性的关键所在。]]></description><category></category></item><item><title><![CDATA[深入底层：函数栈帧的建立、销毁与SP指针的本质]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/162016628</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/162016628</guid><author>2403_83044722</author><pubDate>Mon, 15 Jun 2026 23:39:26 +0800</pubDate><description><![CDATA[本文深入解析了函数栈帧的底层机制，指出栈帧分配并非操作系统行为，而是CPU硬件与编译器协作的&quot;指针魔术&quot;。通过剖析栈指针(SP)的硬件本质和核心作用，详细阐述了栈帧建立、运行和销毁的全生命周期过程。文章揭示了栈帧管理的三个关键点：1)SP寄存器作为内存分配的&quot;游标&quot;实现极速操作；2)局部变量通过基址+偏移量寻址；3)栈帧销毁仅移动指针不擦除数据。同时探讨了编译器优化、栈溢出风险等工程实践问题，强调理解栈机制对系统开发和安全编程的重要性。]]></description><category></category></item><item><title><![CDATA[从接口选型到体系结构认知——谈 CPU–FPGA–DSP 异构处理系统与同构冗余设计]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/156807807</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/156807807</guid><author>2403_83044722</author><pubDate>Sat, 10 Jan 2026 22:38:12 +0800</pubDate><description><![CDATA[本文探讨了异构处理系统架构的核心概念，通过分析CPU、FPGA和DSP组合的系统连接方式，揭示了接口选型背后的架构逻辑。文章指出，异构系统是指包含不同指令体系和处理范式的处理单元组合，而eLBC和XINTF接口的选择体现了不同处理器的架构优势。同时阐明了同构处理系统与同构型双余度产品的区别，强调一个系统可以同时具备异构处理架构和同构型双余度特性。这种理解有助于工程师从体系结构层面把握处理器组合、接口选型与系统可靠性设计的本质关系。]]></description><category></category></item><item><title><![CDATA[CPU–FPGA–DSP 异构系统中的总线接口选型——为什么 CPU 用 eLBC，而 DSP 用 XINTF？]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/156807097</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/156807097</guid><author>2403_83044722</author><pubDate>Sat, 10 Jan 2026 21:48:50 +0800</pubDate><description><![CDATA[摘要： 在CPU+FPGA+DSP异构系统中，CPU与FPGA通常采用eLBC（本地外设总线），而DSP与FPGA采用XINTF（外部存储接口）。这一差异源于两者架构定位不同：eLBC面向CPU的灵活外设扩展，支持配置与低带宽交互；XINTF则针对DSP的实时数据流处理，提供确定性访问。FPGA通过适配两种接口实现桥接功能，既满足CPU的控制需求，又保障DSP的高速数据处理。该设计是兼顾实时性、架构特性与工程实践的优化方案。]]></description><category></category></item><item><title><![CDATA[一文讲透 Windows 下的 DLL 与静态库（Static Library）]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/156619248</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/156619248</guid><author>2403_83044722</author><pubDate>Mon, 05 Jan 2026 23:26:17 +0800</pubDate><description><![CDATA[本文系统对比了Windows平台下动态链接库（DLL）与静态库的工作原理及区别。DLL在运行时加载，支持代码共享和独立更新，但容易出现缺失错误；静态库在编译时合并进可执行文件，部署简单但体积较大。文章指出Python程序依赖大量DLL是打包失败的主因，并给出工程建议：多程序共享模块用DLL，独立工具程序用静态库。理解二者本质差异是解决Windows程序运行和Python打包问题的关键。]]></description><category></category></item><item><title><![CDATA[深入理解 C 语言程序的内存布局：从 .text 到 Stack]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/155581407</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/155581407</guid><author>2403_83044722</author><pubDate>Thu, 04 Dec 2025 23:36:12 +0800</pubDate><description><![CDATA[C程序内存布局解析：从代码段到堆栈的六大核心区域 本文系统介绍了C程序运行时内存的组织结构，重点解析了六大关键区域： .text段 - 存放可执行代码，只读且可共享 .rodata段 - 存储只读数据如字符串常量 .data段 - 存放已初始化的全局/静态变量 .bss段 - 存储未初始化或零初始化的全局变量 堆(Heap) - 动态分配内存区域，需手动管理 栈(Stack) - 自动管理函数调用上下文 文章详细说明了各区域的特点、典型内容和生命周期，并提供了查看程序内存布局的实用命令。理解这些内存区域对预]]></description><category></category></item><item><title><![CDATA[【嵌入式C语言题库】C 语言指针进阶选择题（一级指针 · 工程实战篇）004]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/151045146</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/151045146</guid><author>2403_83044722</author><pubDate>Sun, 31 Aug 2025 13:18:16 +0800</pubDate><description><![CDATA[本文精选10道一级指针高级选择题，涉及内存对齐、大小端、sizeof陷阱、字符串常量等工程常见问题。题目涵盖指针运算与sizeof（题1）、结构体对齐（题2）、字符串常量修改（题3）、大小端存储（题4/9）、memset陷阱（题5）、数组退化为指针（题6）、野指针（题7）、动态内存（题8）和指针比较（题10）等核心知识点。每道题配有详细解析，如题1指针运算结果为8字节（C），题2结构体对齐后大小为12字节（D）。文章强调工程实践中需严格区分数组与指针、常量区与栈区，注意大小端差异，避免未初始化指针等致命错误]]></description><category></category></item><item><title><![CDATA[【嵌入式C语言题库】C 语言指针进阶选择题（一级指针 · 工程实战篇）003]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/151041872</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/151041872</guid><author>2403_83044722</author><pubDate>Sun, 31 Aug 2025 10:45:35 +0800</pubDate><description><![CDATA[本文精选10道指针进阶选择题，涵盖真实工程场景中的关键知识点。题目涉及指针运算、数组与指针关系、const/volatile修饰、结构体内存布局、大小端存储等核心概念。每道题配有详细解析，重点剖析常见陷阱，如指针类型转换、内存越界访问、只读存储区修改等问题。最后附上数组与指针的易错点对照表，帮助开发者深入理解指针本质。通过具体案例演示指针在内存操作、寄存器访问和函数参数传递中的实际应用，适合嵌入式开发者巩固指针底层知识。建议结合内存示意图加深理解，避免常见编程错误。]]></description><category></category></item><item><title><![CDATA[【嵌入式C语言题库】嵌入式工程应用中的 C 语言一级指针选择题002]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/151027802</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/151027802</guid><author>2403_83044722</author><pubDate>Sun, 31 Aug 2025 00:07:08 +0800</pubDate><description><![CDATA[嵌入式开发中的一级指针实战应用 本文通过10道C语言指针选择题，展示了指针在嵌入式开发中的核心应用场景。题目涵盖环形缓冲区、外设寄存器访问、内存操作、协议解析等典型工程问题，重点解析了指针运算、类型转换、大小端处理等关键技术点。实战案例包括：环形缓冲区写入(答案A.2)、寄存器地址操作(B)、指针偏移与协议解析(D.513)等，帮助开发者掌握指针在数组处理、内存管理和数据传输中的正确使用方法。这些题目覆盖了嵌入式开发中90%的指针应用场景，深入理解这些内容可有效避免常见的指针错误和大小端问题。]]></description><category></category></item><item><title><![CDATA[【嵌入式C语言题库】嵌入式工程应用中的 C 语言指针选择题001（附详细解析与工程实践要点）]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/151027379</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/151027379</guid><author>2403_83044722</author><pubDate>Sat, 30 Aug 2025 22:58:16 +0800</pubDate><description><![CDATA[本文通过10道嵌入式开发中的指针实战题，系统讲解了指针在寄存器访问、缓冲区操作、协议解析等场景的应用与常见陷阱。重点解析了结构体对齐（题2）、内存拷贝与端序（题6）、野指针生命周期（题8）和双重指针设计（题10）等核心问题。文章强调指针运算本质、内存对齐规则、端序处理技巧，并提供工程实践建议：用memcpy代替强制类型转换确保可移植性，避免返回栈地址防止野指针，API设计要明确内存所有权。最后指出对齐、端序、生命周期是嵌入式开发三大痛点，建议协议处理时显式控制对齐和序列化。]]></description><category></category></item><item><title><![CDATA[C语言工具函数合集：字符串、内存、字节序、校验与数值操作]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/150454161</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/150454161</guid><author>2403_83044722</author><pubDate>Sun, 17 Aug 2025 00:10:59 +0800</pubDate><description><![CDATA[本文介绍了一套C语言实现的底层开发常用工具函数，包括字符串处理、内存操作、字节序转换和数据校验等。通过手动实现str_len、str_reverse、mem_set、swap16、crc16等函数，可以深入理解指针、位运算等底层原理。这些函数在嵌入式开发中非常实用，能高效处理字符串、缓冲区、通信数据等场景。文章提供了完整的示例代码和运行结果，展示了如何在实际开发中应用这些基础函数来优化性能并解决特定问题。]]></description><category></category></item><item><title><![CDATA[为什么 C 语言函数里局部变量可以作为返回值？——从基础到嵌入式航空应用]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/150453980</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/150453980</guid><author>2403_83044722</author><pubDate>Sat, 16 Aug 2025 23:41:47 +0800</pubDate><description><![CDATA[C语言函数返回局部变量值安全性的关键点：1.基本类型返回值是安全的，因为返回的是值拷贝而非变量本身；2.返回局部变量指针/数组是危险的（野指针问题）；3.嵌入式开发中推荐使用调用者提供缓冲区、静态变量或堆分配来避免问题。特别在航空通信等关键领域，正确处理变量生命周期对系统稳定性至关重要。]]></description><category></category></item><item><title><![CDATA[深入解析1394总线：CC节点与RN节点的协作机制及航空航天应用]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/150166242</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/150166242</guid><author>2403_83044722</author><pubDate>Sun, 10 Aug 2025 23:24:52 +0800</pubDate><description><![CDATA[本文系统解析了MIL-STD-1394B总线的架构特点及其在关键任务系统中的应用。该总线通过双冗余通道（A/B）、树状/菊花链拓扑（最多63节点）实现高可靠通信，支持800Mbps带宽和实时同步/异步传输。核心包含两类节点：CC节点（主控设备，负责总线管理）和RN节点（从设备，执行数据采集与控制）。其协作机制通过令牌传递和优先级调度实现确定性传输，在航空电子、舰船系统和武器控制等场景中展现出优于ARINC664、CANFD等总线的实时性和容错能力，成为高可靠性嵌入式系统的理想通信解决方案。]]></description><category></category></item><item><title><![CDATA[深入理解 C 语言内存结构：const 变量与指针到底存在哪里？]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/150164117</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/150164117</guid><author>2403_83044722</author><pubDate>Sun, 10 Aug 2025 23:02:43 +0800</pubDate><description><![CDATA[本文分析了C语言中const变量的存储位置问题。通过内存布局示意图说明，const变量实际存储位置取决于作用域而非const本身：全局const变量位于只读数据区(RO-data)，局部const变量位于栈区，动态分配的变量位于堆区。字符串常量通常存储在只读数据区。文章强调const只是编译时的只读约束，真正决定存储位置的是变量的作用域和生命周期。通过示例验证了不同作用域下const变量的实际存储情况，并指出尝试修改const变量可能导致未定义行为或段错误。]]></description><category></category></item><item><title><![CDATA[# 入门 Git 只需这 10 个命令，够你应付 90% 开发场景]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/149261156</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/149261156</guid><author>2403_83044722</author><pubDate>Thu, 10 Jul 2025 23:52:57 +0800</pubDate><description><![CDATA[这篇文章介绍了Git版本控制的10个核心命令，覆盖了90%的开发场景。内容分为5个常见场景：项目初始化、日常提交、远程协作、分支管理和撤销修改。每个命令都配有简明解释和使用示例，最后还提供了一张极简命令速查表。作者建议初学者先熟练掌握这些基础命令，再逐步学习更高级功能。文章采用简洁明了的语言和结构化排版，适合Git新手快速入门。]]></description><category></category></item><item><title><![CDATA[012-TMS320F28335 DSP外设详解：XINTF的配置与应用]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/148976272</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/148976272</guid><author>2403_83044722</author><pubDate>Wed, 02 Jul 2025 07:30:00 +0800</pubDate><description><![CDATA[本文详细介绍了TMS320F28335 DSP的XINTF外部存储器接口模块。XINTF支持多种存储器类型映射、可编程等待周期和多种寻址模式，适用于大容量存储应用。通过配置XINTFCTL、XINTFADDR等寄存器可实现外部存储器操作，并以扩展SRAM为例，给出了硬件连接和代码实现方案。XINTF模块为需要大量数据存储的嵌入式应用提供了高效解决方案，掌握其使用方法对开发者具有重要意义。]]></description><category></category></item><item><title><![CDATA[011-TMS320F28335 DSP外设详解：eCAP和eQEP的配置与应用]]></title><link>https://blog.youkuaiyun.com/2403_83044722/article/details/148976242</link><guid>https://blog.youkuaiyun.com/2403_83044722/article/details/148976242</guid><author>2403_83044722</author><pubDate>Wed, 02 Jul 2025 06:30:00 +0800</pubDate><description><![CDATA[本文详细介绍了TMS320F28335 DSP的eCAP（增强型捕获模块）和eQEP（增强型正交编码器接口）两大外设。eCAP模块支持高精度信号捕获、多种触发模式和中断功能，适用于脉冲宽度测量；eQEP模块提供正交编码器接口、方向检测和位置计数功能，常用于电机转速和位置测量。文章通过寄存器配置说明和具体应用实例（包括硬件连接和代码实现），指导开发者快速掌握这两个模块的使用方法。这些功能使其成为电机控制和运动控制应用的重要工具，为嵌入式开发提供了有力支持。]]></description><category></category></item></channel></rss>