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/