菜鸟提问,CCM内存和SRAM内存使用起来有什么区别吗??

2019-07-21 02:42发布

RT
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 06:25
 精彩回答 2  元偷偷看……
hhlh2l
2楼-- · 2019-07-21 08:05
CCM存储器DMA不能访问,理论是访问速度比SRAM更快
以IAR环境下为例,可以这样定义内存link文件,IAR下对应的是*.icf文件
在Memory Regions下添加
/*-Memory Regions-*/
………………………………
………………………………
//定义CCM的起止范围
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000;
define symbol __ICFEDIT_region_CCMRAM_end__   = 0x1000FFFF;

//然后定义regiom
define region CCMRAM_region   = mem:[from __ICFEDIT_region_CCMRAM_start__   to __ICFEDIT_region_CCMRAM_end__];

//定义一个控制标志
place in CCMRAM_region { section .ccmram          };                           //使用方法 定义的变量后面加  @ ".ccmram";

/********************************/

如此修改icf文件后,当你定义变量的时候,如此操作:

例:
uint32_t  i @".ccmram";

此时,i就被定义在CCM中.

也可以修改*icf中关于堆栈的配置项目
place in CCMRAM_region    { readwrite, block CSTACK, block HEAP };

将堆栈配置带ccmram中。

编译后产看map文件可以看到你的变量或堆栈都到了ccm中了
hhlh2l
3楼-- · 2019-07-21 09:06
 精彩回答 2  元偷偷看……

一周热门 更多>