SuperAPI AI 工具集

embedded-firmware-from-hardware

编程与开发

查看项目

更新于 10-22 16:17

技能介绍

用途

该技能面向嵌入式 MCU 固件开发与评审,重点解决“从硬件资料落到可维护固件”的过程:把原理图、PCB、网表、引脚映射、BOM、Keil/C51/MDK 工程、厂商示例代码或硬件调试信息转化为固件实现与验证步骤。

主要能力

  • 硬件证据提取:建立引脚映射(MCU 引脚、复用功能、原理图网络、串联器件、目标器件、PCB 焊盘、不确定性),并把每个用户可见功能端到端追踪(输入电极/开关→电阻/滤波→MCU 引脚→固件符号→行为)。标注极性、上下拉状态、电源域、电平转换、复位/默认状态及“需实测”项。
  • 固件分层归属:产品逻辑放 App/,板级引脚与 MCU 寄存器放 BSP/,外部芯片/协议放 Drivers/,厂商库放在目标工程内清晰目录(如 Firmware/TKDriver/)并用 BSP 适配层封装;Config/board_config.h 作为板级契约,记录时钟、引脚/通道映射、时序、显示映射和诊断开关。
  • 分层上电验证:先验证时钟、安全 GPIO 默认值、未用引脚处理;再打通一个可见输出路径(显示或蜂鸣器);然后打通一个输入路径并在集成产品行为前用板载诊断显示;每层可观测后 App/ 才可依赖。
  • 板级诊断:优先使用无需调试器的方式(状态码显示、蜂鸣模式、LED 模式、UART 日志),区分“中断未触发”“扫描未完成”“存在原始事件”“存在映射后的应用事件”,在 BSP 边界加计数器/状态。
  • 与已知良好固件对比:对比 BSP 引脚设置、厂商库调用顺序、重启/服务调用、阈值、工程选项、启动文件和链接输出,优先找最小可迁移差异。
  • 按需创建可构建工程:用户要求且存在 Keil/C51 工具链时,创建或更新真实 .uvproj/.uvprojx 工程,把厂商组(如 TKDriver)显式放入工程树,包含头文件/配置与所需 .C/.LIB,并用 UV4 构建验证 HEX 输出路径。

使用方式

技能提供若干参考文档:设计/重构固件结构用 references/architecture.md;把原理图/PCB 报告转成代码任务用 references/hardware-to-firmware-checklist.md;PDF 数据手册/应用笔记需文本提取与渲染页证据时用 references/pdf-datasheet-workflow.md;电容触摸、弹簧触摸键、TK 库及扫描/重启/阈值问题用 references/vendor-touch-libraries.md;SinOne/SOC SC95F861xB 8051 MCU 用 references/sinone-sc95f861xb.md;Keil C51/8051 工程能构建但硬件行为异常或与已知良好工程对比时用 references/keil-c51-project-review.md。处理 PDF 可优先用 scripts/pdf_evidence.py 做可重复提取/渲染;Windows 中文文件名可用 Python Path.glob() 或保留 Unicode 路径的环境枚举 PDF。

适用场景

适用于从硬件资料起步的 MCU 固件开发、电容触摸/弹簧触摸按键调试、Keil C51/8051 工程审查、厂商库集成与封装、硬件行为异常排查等。

限制与注意

不要用“应该是高阻”这类直觉替代厂商外设流程,除非有可用参考、数据手册或实测行为支持;若诊断构建仍表现为旧产品行为,应怀疑烧录了错误 HEX 或烧录未生效;若寄存器注释写“输入”但已知良好代码设置输出/上拉位,在确认寄存器语义前应以实测/已知良好行为为准。资料未提供官方文本、收费或价格信息,相关内容暂未提供。