坚持再坚持 发表于 2023-12-4 14:08:02

F407中关于CCM使用的问题

目前的情况:keil,使用了FreeRTOS,Total RWSize (RW Data + ZI Data)            117240 ( 114.49kB):RAM已经使用了115K。考虑到后续RAM不够的问题,计划使用64K的CCM RAM。
措施1:,需要勾选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的情况下,采用哪种措施比较好?

eric2013 发表于 2023-12-4 14:30:33

这个帖子方法比较好。

像使用内部SRAM一样定义使用SDRAM和CCM RAM,可以随意定义到指定的RAM区域且无需具体地址
https://www.armbbs.cn/forum.php?mod=viewthread&tid=89275
页: [1]
查看完整版本: F407中关于CCM使用的问题