【发布时间】:2021-04-23 18:16:03
【问题描述】:
我已经在我的项目中连接了外部 SRAM 存储器。我想要做的是在运行时使用 malloc() 将数据存储在外部或内部存储器中。如何在代码执行期间决定在哪个内存中使用 malloc 存储堆数据?我知道我必须编辑链接器脚本,但之后它将所有堆数据存储在外部存储器中。 是否有任何链接器命令可以说在外部或内部存储器中分配下一个 malloc()?对于堆栈数据,我们可以使用 attribute((section("name"))) 变量属性,但是堆有什么东西吗?
谢谢!
【问题讨论】:
-
对于堆栈数据,我们可以使用属性((section("name"))) - 这不是真的。您只能将其用于静态变量。堆栈变量将堆栈。如果您想要特定的
malloc行为,则必须相应地实现分配器。
标签: memory memory-management arm stm32