当前位置: 首页 > news >正文

CCM/TCM在STM32中的含义和用途

CCM/TCM在STM32中的含义和用途

CCM(Core Coupled Memory)和TCM(Tightly Coupled Memory)是ARM架构中的特殊内存类型,它们都表示与CPU核心紧密耦合的内存区域。这些内存具有一些特殊特性,使其在某些应用场景下非常有用。

CCM (Core Coupled Memory)

CCM是STM32F4系列特有的内存类型:

  1. 特点:

    • 高速访问(零等待状态)
    • 直接连接到CPU核心
    • 不能被DMA访问
    • 不能用于存储需要DMA操作的数据缓冲区
  2. 地址范围:

    • STM32F407:64KB CCM,地址范围 0x10000000-0x1000FFFF
  3. 典型用途:

    • 存储频繁访问的数据变量
    • 存储不需要DMA访问的数据结构
    • 存储栈(可以提高函数调用性能)
    • 用于执行性能关键代码(如在链接脚本中放置特定函数)

TCM (Tightly Coupled Memory)

TCM是ARM Cortex-M架构提供的概念:

  1. 类型:

    • ITCM (Instruction TCM):用于存储指令
    • DTCM (Data TCM):用于存储数据
  2. 特点:

    • 低延迟(通常零等待状态)
    • 确定性访问时间(无缓存未命中)
    • 可以在CPU运行关键代码时不受系统总线干扰
  3. 在STM32中:

    • STM32F4:CCM实际上是DTCM的一种实现
    • STM32F7/H7:提供了独立的ITCM和DTCM

在您的项目中应用CCM

您可以通过以下方式利用CCM:

  1. 在链接脚本中定义CCM段:

    MEMORY
    {RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 128KCCMRAM (xrw)   : ORIGIN = 0x10000000, LENGTH = 64KFLASH (rx)     : ORIGIN = 0x08008000, LENGTH = 480K
    }
    
  2. 指定变量放置在CCM中:

    // 在GCC中
    uint8_t ccm_buffer[1024] __attribute__((section(".ccmram")));// 在Keil MDK中
    __attribute__((section(".ccmram"))) uint8_t ccm_buffer[1024];
    
  3. 优化性能关键代码:

    • 将计算密集型函数放在CCM中执行
    • 将频繁访问的数据结构放在CCM中

使用CCM的注意事项

  1. DMA限制:

    • CCM不能被DMA访问,所以不要将用于DMA传输的缓冲区放在CCM
    • 例如,UART/SPI/ADC缓冲区应放在普通RAM
  2. 中断处理:

    • 如果将中断处理程序放在CCM,可能提高响应速度
    • 但要确保中断向量表已正确设置
  3. 启动代码:

    • 启动代码不应放在CCM,因为上电后CCM内容不确定
  4. 省电模式兼容性:

    • 在某些低功耗模式下,CCM可能会断电
    • 在进入低功耗模式前,需要保存CCM中的重要数据

CCM/TCM是嵌入式系统性能优化的重要工具,合理利用这些特殊内存可以显著提高关键代码的执行效率和实时响应能力。

相关文章:

  • Nginx功能全解析:你的高性能Web服务器解决方案
  • # 基于 Python 和 jieba 的中文文本自动摘要工具
  • 无刷马达驱动芯片算法逐步革新着风扇灯行业--其利天下
  • Vue 3 单文件组件中 VCA 语法糖及核心特性详解
  • DAPO:对GRPO的几点改进
  • C#学习笔记 项目引用添加异常
  • SPSS PCA+判别分析
  • 【uom】 2 quantity! 宏解析(quantity.rs)
  • 冠军之选,智启未来——解码威码逊的品牌传奇与冠军代言故事
  • Flowith:解放思维的AI画布让创意与效率如泉涌
  • 《解锁LibTorch:开启C++深度学习新征程》
  • 数学:拉马努金如何想出计算圆周率的公式?
  • 北极星 新美团核销接口对接
  • getattr 的作用
  • PCB设计实战技巧宝典:从库管理到布线优化的全流程解析
  • 多数元素题解(LC:169)
  • “BYD SHENZHEN”启运,搭载超7000台比亚迪新能源车前往巴西
  • QT6 源(62)篇五:阅读与注释 QString 这个类,先给出官方综述,带一些翻译。总篇目太大,代码就有 2000 行
  • 机器学习,深度学习
  • 全面接入!Qwen3现已上线千帆
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 师爷、文士、畸人:会稽范啸风及其著述
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 国税总局上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理