完善资料让更多小伙伴认识你,还能领取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的选项
2781 浏览 1 评论
3252 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1825 浏览 1 评论
3672 浏览 6 评论
6065 浏览 21 评论
1348浏览 4评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
373浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
468浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
292浏览 2评论
使用STM32F407VET6的USB2.0功能,发现ctl后芯片无数据返回,是什么原因可能导致的呢?
215浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 03:36 , Processed in 1.054206 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号