<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_43091070的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_43091070</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_43091070]]></copyright><item><title><![CDATA[嵌入式开发笔记：CMake、Make、Ninja、MinGW 到底谁是谁？附常见命令行选项详解]]></title><link>https://blog.csdn.net/qq_43091070/article/details/166842299</link><guid>https://blog.csdn.net/qq_43091070/article/details/166842299</guid><author>qq_43091070</author><pubDate>Tue, 29 Sep 2026 14:36:52 +0800</pubDate><description><![CDATA[CMake、Make、Ninja、MinGW 和 Makefile 各司其职：CMake 生成构建文件，Ninja/Make 执行构建，MinGW 提供编译工具链，Makefile 是规则配置。常见组合为 CMake + Ninja + MinGW，高效且跨平台。关键命令如 cmake -G Ninja -B build 和 ninja -C build 可实现快速构建。理解层级关系，避免混淆“生成”与“执行”，是解决构建问题的核心。]]></description><category></category></item><item><title><![CDATA[嵌入式开发笔记：理想型 PI 与并联式 PI、位置式与增量式，到底有什么区别？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/166485969</link><guid>https://blog.csdn.net/qq_43091070/article/details/166485969</guid><author>qq_43091070</author><pubDate>Wed, 23 Sep 2026 15:51:17 +0800</pubDate><description><![CDATA[本文厘清嵌入式PI控制中的两大维度：连续域的“理想型”与“并联式”（参数等价，可互换），以及数字域的“位置式”与“增量式”（实现方式不同）。二者独立组合，四种形式数学等价。工程中依参数习惯、抗饱和需求、内存约束等选择，理解其本质可避免概念混淆，提升代码阅读与调试效率。]]></description><category></category></item><item><title><![CDATA[嵌入式开发笔记：C++ 中的 namespace{} 与 static 深度解析——从文件作用域到类共享]]></title><link>https://blog.csdn.net/qq_43091070/article/details/166348315</link><guid>https://blog.csdn.net/qq_43091070/article/details/166348315</guid><author>qq_43091070</author><pubDate>Tue, 22 Sep 2026 10:51:36 +0800</pubDate><description><![CDATA[在C++嵌入式开发中，static与匿名命名空间namespace{}常被误用。前者在全局作用域仅限函数/变量内部链接，而后者可统一管理函数、变量、类型、模板等，避免符号冲突。现代C++推荐使用匿名命名空间，因其语义清晰、无需缩进、支持多类实体，更符合工程实践。类内static则用于共享成员，与文件级static含义迥异。总结：文件级“藏”用namespace{}，类内“共”用static。]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（十二）：FoE 固件升级 Demo——Bootstrap 模式与 SOEM 实现]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164300984</link><guid>https://blog.csdn.net/qq_43091070/article/details/164300984</guid><author>qq_43091070</author><pubDate>Sat, 05 Sep 2026 11:45:00 +0800</pubDate><description><![CDATA[<think>我们根据用户要求，需要生成一个不超过150字的文章摘要。内容是基于提供的文章，讲述从零开发EtherCAT主站，具体是FoE固件升级Demo，包括Bootstrap模式与SOEM实现。摘要要简洁概括核心内容，不超过150字。注意摘要是中文，要提取要点。我们看文章主要内容：讲解FoE协议，用于EtherCAT在线升级固件，需要先进入Bootstrap状态，通过SOEM的ec_FOEwrite函数上传固件，提供demo代码和注意事项。字数限制，我们提炼关键信息。</think>本文介绍EtherC]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（十一）：PDO 实时控制 Demo——从 IOMap 到周期通信，让电机模组转起来![]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164300835</link><guid>https://blog.csdn.net/qq_43091070/article/details/164300835</guid><author>qq_43091070</author><pubDate>Fri, 04 Sep 2026 11:45:00 +0800</pubDate><description><![CDATA[<think>我们根据要求生成摘要，字数不超过150字。内容是关于EtherCAT主站开发教程，重点PDO实时控制Demo，实现电机使能转动，涵盖IOMap、周期通信、CiA402状态机等。摘要需简洁概括核心。</think>本文介绍EtherCAT主站PDO实时控制Demo，实现电机模组在OP态使能并转动。通过IOMap映射、周期通信及CiA402状态机控制，主站微秒级循环下发目标速度并读回状态字，强调WKC校验确保通信健康。]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（十）：SDO 参数读写 Demo——SOEM 源码调用链与对象字典]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164300744</link><guid>https://blog.csdn.net/qq_43091070/article/details/164300744</guid><author>qq_43091070</author><pubDate>Thu, 03 Sep 2026 11:45:00 +0800</pubDate><description><![CDATA[<think>我们只需要根据用户要求，生成≤150字的文章摘要。用户提供的是一篇关于EtherCAT主站SDO参数读写Demo的技术文章。摘要应简明扼要，涵盖核心内容。</think>本文介绍从零开发EtherCAT主站中SDO参数读写的Demo，讲解SDO与PDO分工、对象字典寻址、SOEM源码调用链，并给出可运行的示例代码，实现连接主站、扫描从站、SDO读写额定电流和目标速度，同时提供Abort Code排查方法。]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（九）：SDO 通信详解，EtherCAT 参数读写到底是如何实现的？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164171673</link><guid>https://blog.csdn.net/qq_43091070/article/details/164171673</guid><author>qq_43091070</author><pubDate>Wed, 02 Sep 2026 16:37:18 +0800</pubDate><description><![CDATA[<think>我们只需要根据给定内容生成≤150字的摘要。需要忠实原内容，涵盖SDO通信详解、PDO与SDO分工、邮箱通道、CoE等。写作简洁。</think>EtherCAT主站中，PDO用于周期性过程数据，SDO用于非周期参数读写，基于CoE协议，通过邮箱（Mailbox）通道实现点对点问答。SDO报文经邮箱头封装，底层采用FPRD/FPWR命令，按索引寻址从站对象字典。主站配置时从SII获取邮箱地址和大小，完成SDO请求与响应交换。]]></description><category></category></item><item><title><![CDATA[深入解析 Windows 异步过程调用（APC）：原理、代码实战、避坑与跨平台视野]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164253340</link><guid>https://blog.csdn.net/qq_43091070/article/details/164253340</guid><author>qq_43091070</author><pubDate>Tue, 01 Sep 2026 09:58:43 +0800</pubDate><description><![CDATA[<think>我们需要根据用户提供的文章内容，生成一篇≤150字的摘要。用户提供了完整的文章，包括标题、前言、章节等。摘要需要简洁概括文章核心内容。注意字数限制，可能需高度浓缩。文章主要讲Windows APC机制，包括原理、用户模式APC、可警报状态、代码示例、陷阱以及跨平台对比。摘要需涵盖这些要点，但要在150字内，可能需用简短句子。考虑以“本文”开头，总结APC定义、关键条件、注意事项和跨平台差异。计算字数。中文摘要约150字。开始构思：先提出APC是Windows线程软件中断，核心是线程可警报状态，]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（八）：SOEM 周期通信源码解析，ecx_send_processdata() 到底发送了什么？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164167766</link><guid>https://blog.csdn.net/qq_43091070/article/details/164167766</guid><author>qq_43091070</author><pubDate>Mon, 31 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[上一篇文章中，我们分析了 SOEM 的 PDO 映射流程。通过 `ecx_config_map_group()`，SOEM 完成了从 PDO 定义到 `IOMap` 生成的全过程：

```
PDO → SyncManager → FMMU → IOMap
```

此时，主站已经知道哪些数据需要周期交换、数据在从站中的位置、以及数据在主站内存中的位置。但数据准备好了，**如何通过 EtherCAT 网络真正发送出去**？

这就是本章要解决的问题。]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（七）：SOEM PDO 映射源码解析，深入理解 SyncManager、FMMU 与 IOMap]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164166869</link><guid>https://blog.csdn.net/qq_43091070/article/details/164166869</guid><author>qq_43091070</author><pubDate>Sun, 30 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[上一篇文章中，我们分析了 SOEM 主站初始化流程，了解了 EtherCAT 主站如何完成网卡初始化、从站扫描、设备信息读取等步骤，并最终进入 PRE-OP 状态。

但是，主站虽然知道了网络中有哪些从站，却还不知道如何与它们交换实时数据。

以伺服驱动器为例，我们希望周期性地发送控制字、目标位置、目标速度，同时读取状态字、实际位置等信息。这些数据如何进入 EtherCAT 通信帧？从站又如何知道应该读取哪些数据？

这就是 PDO（Process Data Object）映射 需要解决的问题。

本章将结]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（六）：SOEM 初始化流程详解，主站是如何发现所有从站的？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164083981</link><guid>https://blog.csdn.net/qq_43091070/article/details/164083981</guid><author>qq_43091070</author><pubDate>Sat, 29 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[本文分析了 SOEM 初始化流程中最核心的步骤——从 ecx_init() 网卡初始化，到 ecx_config_init() 完成从站发现和 slavelist 建立，再到状态切换进入 OP 的完整过程。]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（五）：SOEM 框架源码解析，一个例程带你读懂整个主站]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164081159</link><guid>https://blog.csdn.net/qq_43091070/article/details/164081159</guid><author>qq_43091070</author><pubDate>Fri, 28 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[本文介绍了开源 EtherCAT 主站协议栈 SOEM 的基本原理和使用方法。SOEM 作为一款轻量级 EtherCAT Master 实现，其核心流程包括：网络接口初始化（ec_init）、从站扫描（ec_config_init）、过程数据映射（ec_config_map）、状态机切换（SAFE-OP→OP）以及周期性的 PDO 数据交换（ec_send_processdata/ec_receive_processdata）。文章通过一个精简示例展示了 SOEM 主站的基本工作流程，并建议采用"从Demo]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（四）：PDO、Mailbox、CoE、FoE 到底是什么？一文搞懂 EtherCAT 通信体系]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164063575</link><guid>https://blog.csdn.net/qq_43091070/article/details/164063575</guid><author>qq_43091070</author><pubDate>Thu, 27 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[在前面的文章中，我们已经了解了 EtherCAT 为什么能成为工业实时通信的重要技术，也知道了 EtherCAT 主站、从站、EtherCAT Frame 以及数据报文之间的基本关系。

但真正开始开发 EtherCAT 主站之后，很快就会遇到一堆看起来非常相似的名词：

- PDO
- Mailbox
- CoE
- FoE
- SDO
- ESI
- Object Dictionary

刚接触 EtherCAT 时，很容易把这些概念混在一起。实际上，这些概念**并不处于同一个层级**。理解 Ether]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（三）：EtherCAT 状态机（ESM）完整解析，Init、Pre-OP、Safe-OP、OP 到底有什么区别？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164062338</link><guid>https://blog.csdn.net/qq_43091070/article/details/164062338</guid><author>qq_43091070</author><pubDate>Wed, 26 Aug 2026 11:45:00 +0800</pubDate><description><![CDATA[在上一篇文章中，我们从 EtherCAT Frame、Datagram、ESC、FMMU、On-The-Fly 和 WKC 等概念入手，分析了 EtherCAT 为什么能够实现高效的实时通信。

但实际开发主站时，你会很快遇到一个问题：

为什么从站明明已经连接上了，却不能直接进行 PDO 通信？

SOEM 扫描设备后，你可能会看到：

text
Slave 1 State: PRE-OP
Slave 2 State: PRE-OP
Slave 3 State: PRE-OP
而我们最终希望看到的是所有从]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（二）：EtherCAT 通信原理详解，数据为什么能“边经过边处理”？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164048592</link><guid>https://blog.csdn.net/qq_43091070/article/details/164048592</guid><author>qq_43091070</author><pubDate>Tue, 25 Aug 2026 10:55:03 +0800</pubDate><description><![CDATA[上一篇文章我们介绍了 EtherCAT 的发展背景，以及它为什么能够在工业自动化、机器人、运动控制等领域得到广泛应用。

其中最核心的一个原因就是：

> **EtherCAT 从站可以在数据帧经过自己的同时完成数据读取和写入，而不需要等待整个数据帧接收完成。**

这个机制被称为 **On-The-Fly Processing（边经过边处理）**。

但如果只停留在这个概念层面，我们还是很难真正理解 EtherCAT。

例如：

* EtherCAT Frame 到底是什么？
* 一个 Ethernet]]></description><category></category></item><item><title><![CDATA[从零开发 EtherCAT 主站（一）：EtherCAT 为什么能成为工业实时通信的主流？]]></title><link>https://blog.csdn.net/qq_43091070/article/details/164017273</link><guid>https://blog.csdn.net/qq_43091070/article/details/164017273</guid><author>qq_43091070</author><pubDate>Mon, 24 Aug 2026 11:19:01 +0800</pubDate><description><![CDATA[随着工业自动化不断向智能制造、高精度运动控制和多轴协同方向发展，传统现场总线已经逐渐难以满足越来越高的实时性要求。尤其是在机器人、数控机床、半导体设备、新能源装备等领域，一个控制器往往需要同时管理几十甚至上百个从站设备，并且要求数据能够在毫秒甚至微秒级完成同步。

如果你之前开发过 CAN/CAN FD、CANopen、Modbus 等通信协议，那么学习 EtherCAT 会更加容易，因为它们都是工业通信的重要组成部分。但当你真正接触 EtherCAT 后，会发现它的设计理念与传统总线有着本质区别。]]></description><category></category></item><item><title><![CDATA[相机公司研发岗位全图谱：从ISP算法到硬件光学的工程师职业发展指南]]></title><link>https://blog.csdn.net/qq_43091070/article/details/163972253</link><guid>https://blog.csdn.net/qq_43091070/article/details/163972253</guid><author>qq_43091070</author><pubDate>Sat, 22 Aug 2026 12:40:19 +0800</pubDate><description><![CDATA[你每天使用的摄像头——无论是手机上的、路口的安防监控，还是视频会议镜头——背后都是一个极其复杂的**光学-电子-算法-软件**融合系统。

以典型的安防与视讯相机公司为例，其产品线覆盖视频会议、视频监控的前端（摄像机）、平台、存储等数百款产品。围绕一台摄像机的诞生，形成了**从前端成像到后端应用、从硬件底层到AI算法**的完整研发岗位体系。

本文将系统梳理相机公司的研发岗位图谱，涵盖**算法类、软件开发类、嵌入式/驱动类、硬件/光学类、测试类、产品类**六大方向，并结合行业真实招聘数据提供薪资参考与发展路]]></description><category></category></item><item><title><![CDATA[电机模组研发岗位全图谱：从架构到失效分析的工程师职业发展指南]]></title><link>https://blog.csdn.net/qq_43091070/article/details/163944319</link><guid>https://blog.csdn.net/qq_43091070/article/details/163944319</guid><author>qq_43091070</author><pubDate>Fri, 21 Aug 2026 12:49:28 +0800</pubDate><description><![CDATA[因此，围绕电机模组设计的岗位，呈现出极其**高度专业化的分工**。本文将根据一个成熟研发中心的岗位布局，系统梳理**算法、软件、硬件、结构、系统、测试、失效分析、管理**八大方向的职责、薪资水平与发展前景，为正在考虑进入这个领域的工程师提供一份职业发展地图。]]></description><category></category></item><item><title><![CDATA[嵌入式开发笔记：MSYS2完全指南——Windows下的Linux-like开发利器]]></title><link>https://blog.csdn.net/qq_43091070/article/details/163915242</link><guid>https://blog.csdn.net/qq_43091070/article/details/163915242</guid><author>qq_43091070</author><pubDate>Thu, 20 Aug 2026 12:51:36 +0800</pubDate><description><![CDATA[MSYS2完全指南：Windows下的Linux-like开发利器 MSYS2是Windows平台上轻量级的类Unix开发环境，集成了Arch Linux的Pacman包管理器和MinGW-w64工具链，为开发者提供高效的原生Windows程序开发体验。 核心特点： Pacman包管理器 - 支持一键安装/更新开发工具链 MinGW-w64工具链 - 编译纯原生Windows可执行文件 类Unix命令行环境 - 提供bash、grep等Unix工具 使用建议： 日常开发推荐使用UCRT64环境（现代C运行时]]></description><category></category></item><item><title><![CDATA[嵌入式开发笔记：单片机中的Delay江湖——HAL_Delay、osDelay与vTaskDelay深度解析]]></title><link>https://blog.csdn.net/qq_43091070/article/details/163892515</link><guid>https://blog.csdn.net/qq_43091070/article/details/163892515</guid><author>qq_43091070</author><pubDate>Wed, 19 Aug 2026 17:24:17 +0800</pubDate><description><![CDATA[本文深入解析了单片机开发中常见的三种延时函数：HAL_Delay、osDelay和vTaskDelay。HAL_Delay采用忙等待机制，适用于裸机系统但会完全占用CPU；osDelay和vTaskDelay基于RTOS的任务调度机制，能够主动让出CPU资源。文章详细对比了三者的实现原理、适用场景和潜在陷阱，指出HAL_Delay在RTOS环境和中断中使用的危险性，并提供了具体选型建议。最后强调在RTOS中应优先使用非阻塞式延时，以确保系统调度效率。]]></description><category></category></item></channel></rss>