stm32F4上CCM的使用

1.CCM内存介绍:

相较于F2,F4新加的一个特殊内部SRAM。64 KB CCM (内核耦合存储器)数据 RAM  不属于总线矩阵(请参见图 1 : STM32F405xx/07xx和 STM32F415xx/17xx  器件的系统架构)。只能通过 CPU  对其进行访问(dma等外设不能访问)。

 

2.用法(基于MDK):

①  先启用这部分SRAM。

设置完后,若重新编译,map文件里就会有这块SRAM的资源分配——由于IRAM1优先使用,而且一般SRAM1够用,就不会给它分配资源。

② 使用CCM一般都要手动分配资源(确保这块内存不被外设使用),自行分配内存需要这样操作:

参考下图,不勾选USE Memory Layout from Targe Dialog,这时mdk会自动载入一个分散加载文件(.sct),修改这个文件就可以手动选择要放到CCM中的数据了。

③ 查看.map文件,将需要的文件架到(.sct)文件中。

例如,上图中把mem.o和memp.o中的数据放到CCM中,可以这么设置:

编译后,可以看到资源分配:

④如果想把程序中的某些变量放到CCM中,需要定义一个section,将这些变量放到这个section中,再由(.sct)文件分配到CCM中。

编译后的内存分配:

备注:

1.测试过程中,尝试直接指定变量的内存到CCM的方法,但是定义多个变量时,编译报错。。。

2.据说把系统堆栈放到CCM中,可以提高处理效率,暂时没法测试。

3.将CCM用作高速运算缓冲,也就这种高大上的应用上才能发挥他真正存在的价值吧。

4.感谢网友大神的帖子:

http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=602255&extra=page=&page=1

https://blog.csdn.net/zcshoucsdn/article/details/79176306

https://blog.csdn.net/anbaixiu/article/details/78832009

https://blog.csdn.net/louyangyang91/article/details/51545130

  • 12
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值