完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个关于 STM32CubeIDE 生成的链接描述文件的一般性问题。
大多数情况下,STACK 和 HEAP 一起放置在“相同”的内部 SRAM 中(参见 .user_heap_stack 示例部分以进行演示)。 注意:是的,区域有可能重叠,但这是我不想在这里讨论的事情。 ._user_heap_stack : { . =对齐(8); 提供(结束=。); 提供 (_end = .); . =。+ _Min_Heap_Size; . =。+ _Min_Stack_Size; . =对齐(8); } > RAM_D1 我想将一些关键数据、静态变量等以及 STACK 指针放入 DTCRAM 区域。然而,堆在我们的应用程序中并没有被如此频繁地使用,因此我想把它放在一个较慢的区域,例如 RAM_D2/3。 我想这应该是可能的,对吧? 如果我这样做,我假设我可以摆脱链接描述文件中的“. = . + _Min_Stack_Size;”语句,因为堆栈现在与堆分离了? 此外,我假设我还需要修改 sbrk() 函数,它是 malloc 调用的基本部分,因为对从 STACK handling 派生的链接器符号有一些依赖性。那是对的吗? 我们是否有一个可用的工作示例来处理 STACK 和 HEAP 的解耦? |
|
相关推荐
1个回答
|
|
你解决了吗?
确保堆栈指针设置在 RAM_D1 的末尾:
最低地址 最高地址 .data .bss newlib 堆栈 查看 sysmem.c 中的第 68-73 行:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2634 浏览 1 评论
3208 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1783 浏览 1 评论
3609 浏览 6 评论
5987 浏览 21 评论
939浏览 4评论
1315浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
582浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1302浏览 3评论
1357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:31 , Processed in 1.151291 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号