硬汉嵌入式论坛

 找回密码
 立即注册
查看: 372|回复: 1
收起左侧

[有问必答] F407中关于CCM使用的问题

[复制链接]

35

主题

106

回帖

211

积分

高级会员

积分
211
发表于 2023-12-4 14:08:02 | 显示全部楼层 |阅读模式
目前的情况:keil,使用了FreeRTOS,Total RW  Size (RW Data + ZI Data)            117240 ( 114.49kB):RAM已经使用了115K。考虑到后续RAM不够的问题,计划使用64K的CCM RAM。
措施1: 1.png ,需要勾选IRAM2吗?在论坛中看了很久以前的帖子,回答是在MDK Keil中不需要勾选IRAM2,编译器在检查到超过128K后会自动把变量存储到CCM中,这种编译器自动分配到CCM中会考虑DMA吗(不分配与DMA相关的)?
措施2:根据以往的帖子,说是改变FreeRTOS的内存分配,在heap_4.c---->static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ] __attribute__((at(0x10000000)));使用这种方式
措施3:根据ST中文官网的资料:在通常的应用的,如果使用C语言编程,函数的局部变量是定义在栈上的,适合将程序的栈放在CCM中。
面对RAM不够用,并不增加外部硬件SRAM的情况下,采用哪种措施比较好?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106745
QQ
发表于 2023-12-4 14:30:33 | 显示全部楼层
这个帖子方法比较好。

像使用内部SRAM一样定义使用SDRAM和CCM RAM,可以随意定义到指定的RAM区域且无需具体地址
https://www.armbbs.cn/forum.php?mod=viewthread&tid=89275
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 15:22 , Processed in 0.265508 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表