zoukankan      html  css  js  c++  java
  • stm32 F40x CCM数据区的使用

    1. CCM需要打开总线时钟

    2. CCM可以作为堆和栈使用

    使用分散加载文件直接操作即可

    1     RW_CCMRAM1 0x10000000    {
    2         .ANY (HEAP)
    3         .ANY (STACK)
    4     }

    3. CCM无法作为中断向量映射区

    为进一步提高对数据的处理性能,在STM32F4 中设有CCM 存贮器。

    与常规的存贮器不同,CCM 存贮器是CPU 独享的存贮器。CCM 存贮器与CPU 之间的数据传输不经过总线矩阵,以提高CPU 对CCM存贮的访问效率。

    这样的组织结构也决定了,只有CPU 才能够访问CCM 存贮器,而DMA 以及其它的外设与CCM 存贮器之间没有数据通道,也就无法对其访问。

    在通常的应用中,适合将程序的栈放在CCM 存贮器中,以提高中断的响应速度,以及对子程序的调用速度。

    同时,如果使用C语言编程,函数的局部变量是定义在栈上的,所以把栈放在CCM 存贮器中,也可以提高CPU 对函数的局部变量的访问速度。

    对于一些算法的实现,比如DSP 计算或浮点数计算,适合于把参与计算数据及计算出的结果存放在CCM 存贮存器中,这样可以提高计算的效率。

    如果希望动态的管理CCM 存贮器,则最好将其与常规存贮器加以区分。因为两种存贮器的属性不同,用途也不同。CCM 存贮器不能由DMA 访问,

    而常规存贮器会降低CPU 对数据的处理效率。

    博客园:http://www.cnblogs.com/linux-farmer/
  • 相关阅读:
    推荐一款超好用的工具cmder
    golang初探与命令源码分析
    LAMP环境部署物联网项目
    linux上安装LAMP笔记
    scrapy实战--爬取最新美剧
    scrapy实战--爬取报刊名称及地址
    scrapy简单入门及选择器(xpathcss)
    phantomJs页面截图
    eclipse工具的安装配置
    BeautifulSoup爬虫基础知识
  • 原文地址:https://www.cnblogs.com/linux-farmer/p/7387512.html
Copyright © 2011-2022 走看看