打印
[开发工具]

STM32CubeIDE 中使用ccm

[复制链接]
142|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-3-23 20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经常在 keil 中使用 ccm,但现在有一个使用STM32CubeIDE的项目
没找到如何在 STM32CubeIDE 中使用STM32F40X CCM SRAM

在哪里配置?

使用特权

评论回复
沙发
公羊子丹| | 2025-3-24 08:17 | 只看该作者
STM32CubeIDE 里可以直接用 __attribute__((section(".ccmram"))) 来把变量放到 CCM,你试过了吗?

使用特权

评论回复
板凳
周半梅| | 2025-3-24 08:19 | 只看该作者
你在 Keil 里是怎么配置 CCM 的?STM32CubeIDE 需要手动修改链接脚本来支持。

使用特权

评论回复
地板
帛灿灿| | 2025-3-24 08:20 | 只看该作者
试试在 STM32F40x_FLASH.ld 里找到 MEMORY 段,看看有没有定义 CCM,如果没有就加上:CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K。

使用特权

评论回复
5
童雨竹| | 2025-3-24 08:21 | 只看该作者
在 STM32CubeIDE 里,用 __attribute__((section(".ccmram"))) 标记变量,或者 #pragma location = ".ccmram",然后在 linker script 里定义对应的段。

使用特权

评论回复
6
万图| | 2025-3-24 08:22 | 只看该作者
你用的是裸机还是 FreeRTOS?如果是 FreeRTOS,注意 CCM 不能用于 DMA,否则可能会有访问问题。

使用特权

评论回复
7
Wordsworth| | 2025-3-24 08:23 | 只看该作者
在 STM32CubeIDE 里 startup_stm32f40xx.s 可能默认没有初始化 CCM,需要手动加进去,否则数据可能不稳定。

使用特权

评论回复
8
Bblythe| | 2025-3-24 08:25 | 只看该作者
试试看在 STM32F40x_FLASH.ld 里加上 .ccmram : { *(.ccmram) } >CCMRAM,这样可以让 .ccmram 段正确映射到 CCM。

使用特权

评论回复
9
Pulitzer| | 2025-3-24 08:26 | 只看该作者
你是想把代码放进 CCM 还是只放数据?CCM 不能用于执行代码,只能存数据。

使用特权

评论回复
10
Uriah| | 2025-3-24 08:27 | 只看该作者
你有没有用 volatile 关键字?有时候优化器可能会让 CCM 变量访问异常,特别是和普通 SRAM 混用时。

使用特权

评论回复
11
Clyde011| | 2025-3-24 08:29 | 只看该作者
你能贴一下你在 STM32CubeIDE 里尝试的配置吗?看看哪里可能少了关键步骤。

使用特权

评论回复
12
地瓜patch|  楼主 | 2025-3-24 19:59 | 只看该作者
公羊子丹 发表于 2025-3-24 08:17
STM32CubeIDE 里可以直接用 __attribute__((section(".ccmram"))) 来把变量放到 CCM,你试过了吗? ...

感谢,测试一下

使用特权

评论回复
13
地瓜patch|  楼主 | 2025-3-24 19:59 | 只看该作者
Pulitzer 发表于 2025-3-24 08:26
你是想把代码放进 CCM 还是只放数据?CCM 不能用于执行代码,只能存数据。

这个知道的

使用特权

评论回复
14
地瓜patch|  楼主 | 2025-3-24 20:00 | 只看该作者
Bblythe 发表于 2025-3-24 08:25
试试看在 STM32F40x_FLASH.ld 里加上 .ccmram : { *(.ccmram) } >CCMRAM,这样可以让 .ccmram 段正确映射到 ...

感谢,测试中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1412

主题

13582

帖子

27

粉丝