Update nexus wiki content

This commit is contained in:
2026-05-03 05:42:06 +08:00
parent 90f3811b83
commit 111bc65b7b
707 changed files with 32306 additions and 7289 deletions

View File

@@ -0,0 +1,55 @@
---
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]]:开源 RTOSESP-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 基金会托管的开源 RTOSNordic/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/移动)可适度使用快速原型