SuperAPI AI 工具集

arm-cortex-expert

通用与其它

查看项目

更新于 10-15 20:05

技能介绍

用途:该技能面向 ARM Cortex-M 平台的嵌入式固件与驱动开发,覆盖 Teensy 4.x(i.MX RT1062,Cortex-M7)、STM32(F4/F7/H7)、nRF52(Cortex-M4)与 SAMD(Cortex-M0+/M4)。适用于编写外设驱动、搭建软件架构、排查底层问题等任务;与 Cortex-M 无关的任务不适用。

主要能力:提供 I²C/SPI/UART/CAN/SDIO/ADC/DAC/PWM/USB 等外设的寄存器级或 HAL 驱动实现;中断驱动数据管道与非阻塞 API;DMA 高吞吐传输;BLE、USB CDC/MSC/HID、MIDI 等协议栈;外设抽象层与模块化代码库;FreeRTOS/Zephyr 与裸机协作式调度;性能与确定性优化(DMA、缓存、时序、内存屏障);可维护性设计(注释、可单测模块)。

关键实践:Cortex-M7 内存弱序,需用 __DMB()/__DSB() 或 Rust 的 dmb()/dsb() 包裹寄存器访问;DMA 缓冲区需 32 字节对齐且大小为 32 的倍数,优先放 DTCM/SRAM 或 MPU 非缓存区,必要时做缓存维护;注意写 1 清零(W1C)寄存器;Rust 中避免 static mut,改用 AtomicBool、Mutex<RefCell<Option<T>>> 与 critical_section。中断优先级方面,M0/M0+ 仅 2-4 级,M3/M4/M7 为 8-256 级,数字越小优先级越高;临界区应尽量短,优先用 BASEPRI 而非 PRIMASK。还涵盖 HardFault 调试(HFSR/CFSR/MMFAR/BFAR)、FPU 惰性堆栈、栈溢出保护(MPU 保护页、金丝雀、看门狗)以及各平台电压与时钟注意事项。

使用方式:先明确目标平台、外设类型与协议细节,再设计驱动骨架、实现初始化与 ISR、给出示例用法并验证时序与吞吐,最后按需引入 DMA、中断优先级或 RTOS 任务。

限制:输出不能替代具体环境的验证、测试与专家评审;缺少必要输入、权限、安全边界或成功标准时应先澄清。具体安装命令与收费信息暂未提供。