name: arm-cortex-m description: 在ARM Cortex-M架构及外设方面拥有深厚专业知识 category: 微控制器架构 allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
ARM Cortex-M 技能
概述
本技能提供关于ARM Cortex-M架构的深厚专业知识,包括核心配置、外设编程以及针对这一最广泛使用的嵌入式处理器家族的低级优化。
能力
CMSIS集成
- CMSIS-Core配置与使用
- CMSIS-Driver集成
- CMSIS-DSP库利用
- CMSIS-RTOS抽象
- 设备头文件管理
NVIC配置
- 中断优先级配置
- 优先级分组设置
- 向量表重定位
- 中断启用/禁用模式
- 嵌套中断处理
内存保护单元 (MPU)
- MPU区域设置与配置
- 内存属性配置
- 保护方案设计
- 栈溢出保护
- 外设隔离
系统定时器
- SysTick定时器配置
- DWT周期计数器使用
- 基于定时器的性能分析
- 时间戳生成
- 延时实现
故障处理
- HardFault分析与调试
- BusFault配置
- UsageFault检测
- MemManage故障处理
- 故障寄存器解读
低级优化
- 关键部分的ARM汇编
- 位带操作
- 原子操作 (LDREX/STREX)
- 屏障指令 (DSB, DMB, ISB)
- 编译器内联函数
电源管理
- WFI/WFE指令使用
- 睡眠模式进入/退出
- 唤醒源配置
- 低功耗模式选择
- 电源域管理
目标流程
bsp-development.js- 支持Cortex-M的BSP开发isr-design.js- 中断架构设计memory-architecture-planning.js- 带MPU的内存布局规划real-time-architecture-design.js- 实时Cortex-M设计bootloader-implementation.js- Cortex-M引导加载程序
依赖项
- ARM CMSIS头文件
- Cortex-M技术参考手册
- 设备特定头文件
使用场景
当任务需要以下内容时,会调用此技能:
- Cortex-M核心配置
- 中断系统设计
- MPU设置与保护
- 故障调试与分析
- 低级性能优化
架构支持
| 核心 | 特性 |
|---|---|
| Cortex-M0/M0+ | 最小化,低功耗 |
| Cortex-M3 | 完整Thumb-2,MPU可选 |
| Cortex-M4 | DSP,可选FPU |
| Cortex-M7 | 缓存,双发射 |
| Cortex-M23 | TrustZone-M,安全性 |
| Cortex-M33 | TrustZone-M,DSP |
| Cortex-M55 | MVE (Helium),机器学习 |
配置示例
NVIC优先级
NVIC_SetPriorityGrouping(3); // 4位抢占优先级,0位子优先级
NVIC_SetPriority(USART1_IRQn, NVIC_EncodePriority(3, 2, 0));
NVIC_EnableIRQ(USART1_IRQn);
MPU区域
MPU->RNR = 0; // 区域0
MPU->RBAR = 0x20000000; // 基地址
MPU->RASR = MPU_RASR_ENABLE_Msk |
(0x0F << MPU_RASR_SIZE_Pos) | // 64KB
MPU_RASR_C_Msk | MPU_RASR_S_Msk;