--- title: "Embedded Firmware Engineer Agent Personality" type: source tags: [] date: 2026-05-01 --- ## Source File - [[Agent/agency-agents/engineering/engineering-embedded-firmware-engineer.md]] ## Summary(用中文描述) - 核心主题:The Agency 旗下的嵌入式固件工程师 Agent 人格定义,专注于资源受限嵌入式系统的生产级固件开发 - 问题域:MCU 选型(ESP32/STM32/Nordic nRF)、裸机与 RTOS 固件架构、外设驱动可靠性、通信协议实现、OTA 升级 - 方法/机制:FreeRTOS 任务架构设计(队列/信号量/事件组)、静态内存分配优先、ISR 最小化原则、平台差异化实践(ESP-IDF / STM32 LL/HAL / Nordic Zephyr) - 结论/价值:交付零栈溢出、ISR 延迟可测量、Flash/RAM 使用可文档化、生产级可靠固件 ## Key Claims(用中文描述) - RTOS 任务中禁止动态分配(malloc/new),必须使用静态分配或内存池 - ISR 必须最小化——通过队列或信号量将工作延迟到任务处理 - 栈大小必须计算而非猜测,使用 `uxTaskGetStackHighWaterMark()` 验证 - STM32 时序关键代码优先使用 LL 驱动而非 HAL - Nordic 平台使用 Zephyr devicetree 和 Kconfig,禁止硬编码外设地址 - PlatformIO 生产环境 `platformio.ini` 必须锁定库版本,禁止使用 `@latest` ## Key Quotes > "ISRs must be minimal — defer work to tasks via queues or semaphores" — ISR 设计核心原则,强制最小化中断处理路径 > "Stack sizes must be calculated, not guessed — use `uxTaskGetStackHighWaterMark()`" — 栈大小验证规范,防止生产环境栈溢出 > "Never use dynamic allocation (`malloc`/`new`) in RTOS tasks after init" — RTOS 内存安全铁律,消除堆碎片风险 ## Key Concepts - [[FreeRTOS]]:开源 RTOS,ESP-IDF/Nordic Zephyr 均基于此实现多任务调度,提供队列/信号量/事件组等 IPC 机制 - [[ARM-Cortex-M]]:嵌入式 MCU 主流架构,ESP32/STM32/Nordic nRF 均基于此系列 - [[ESP-IDF]]:乐鑫官方 ESP32 开发框架,包含 Wi-Fi/BLE 驱动、OTA、文件系统等组件 - [[STM32-HAL-LL]]:STM32 的两套驱动层——HAL 通用但时序差,LL 轻量且时序精确 - [[Nordic-nRF]]:Nordic 半导体低功耗蓝牙 SoC 系列,使用 Zephyr RTOS 和 nRF Connect SDK - [[Zephyr-RTOS]]:Linux 基金会托管的开源 RTOS,Nordic/Zephyr 生态核心,支持 devicetree 和 Kconfig - [[OTA-Upgrade]]:空中固件升级,ESP-IDF/STM32 自定义 bootloader/MCUboot 各有实现路径 ## Key Entities - [[ESP32]]:乐鑫 Wi-Fi+BLE SoC,[[ESP-IDF]] 目标平台,固件 OTA 升级主力芯片 - [[STM32]]:STMicroelectronics MCU 系列,[[STM32-HAL-LL]] 驱动层,面向工业传感/控制场景 - [[Nordic-nRF]]:Nordic 蓝牙 SoC,面向可穿戴/IoT 低功耗应用 - [[PlatformIO]]:跨平台嵌入式开发环境,支持 ESP32/STM32/Nordic,统一 `platformio.ini` 配置 - [[FreeRTOS]]:嵌入式 RTOS,内核被 ESP-IDF 和 Zephyr 引用,提供任务调度和 IPC ## Connections - [[engineering-backend-architect]] ← uses → [[FreeRTOS]] — 后端架构师使用消息队列,嵌入式固件工程师设计 FreeRTOS 队列作为 IPC - [[engineering-software-architect]] ← informs → [[ARM-Cortex-M]] — 软件架构师了解硬件抽象,固件工程师精通 MCU 底层 ## Contradictions - 与 [[engineering-rapid-prototyper]] 的速度哲学对比: - 冲突点:快速原型是否允许技术债 - 当前观点:固件工程师禁止使用 malloc/动态分配、不允许 `platformio.ini` 使用 `@latest`,强制稳定优先 - 对方观点:Rapid Prototyper 允许先跑通再优化,接受短期技术债换取速度 - 协调方案:固件层严格执行规范,上层应用层(Web/移动)可适度使用快速原型