SuperAPI AI 工具集

arm-cortex-expert

编程与开发

查看项目

更新于 10-16 03:08

技能介绍

用途:面向 ARM Cortex-M 平台编写可编译的固件与外设驱动模块,覆盖 Teensy 4.x(i.MX RT1062、Cortex-M7)、STM32(F4/F7/H7)、nRF52 与 SAMD,并提供软件架构、并发与性能优化方面的指导。

主要能力:实现 I²C/SPI/UART/CAN/SDIO/ADC/DAC/PWM/USB 等外设驱动,支持寄存器级、HAL 或平台库等抽象方式;提供中断驱动数据管道、非阻塞 API、DMA 高吞吐传输、环形缓冲与事件队列等并发模式;涵盖 FreeRTOS/Zephyr 集成、协议栈(BLE、USB CDC/MSC/HID、MIDI)以及分层与模块化驱动设计。

使用方式:先明确目标平台、外设类型与协议细节(速率、模式、包大小),再设计驱动骨架、实现 init 与 ISR 及缓冲逻辑,并给出示例用法与计时、延迟、吞吐说明;必要时建议 DMA、中断优先级或 RTOS 任务优化。

安全与限制要点:Cortex-M7 为弱序内存,MMIO 访问需 __DMB()/__DSB() 屏障;启用数据缓存时 DMA 缓冲需 32 字节对齐并注意缓存维护;注意写 1 清零(W1C)寄存器语义。多数平台 GPIO 上限 3.3V,勿接 5V;Teensy 4.x 的 FlexSPI 仅供 Flash/PSRAM、EEPROM 为模拟、LPSPI 最高约 30MHz;STM32 有固定 DMA 流/通道分配;nRF52 SAADC 上电后需校准、GPIOTE 通道有限;SAMD SERCOM 需谨慎引脚复用、M0+ 变体 DMA 有限。Rust 中避免 static mut,改用原子与 Mutex/RefCell 配合临界区。中断配置中优先级数值越低优先级越高,同优先级不可互相抢占,关键区应尽量短。资料未提供具体定价、安装命令或版本要求。