首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MDK启动文件堆栈空间手动指定地址方法和验证

MDK启动文件堆栈空间手动指定地址方法和验证

原创
作者头像
Simon223
发布2025-10-11 13:31:52
发布2025-10-11 13:31:52
1190
举报

【应用场景】

比如STM32H743/H750系列,他有多个RAM空间,这里我们将需要快速执行的堆栈空间分配到DTCM, 0x2000 0000,128KB容量末尾。程序主RAM分配到AXI SRAM, 0x2400 0000,512KB容量

【设置验证】

默认设置的情况下,堆栈空间是这样的,从地址0x240011C0开始,前1KB是heap,后面1KB是stack

为了方便看问题,我将堆栈都初始化为0x5A了。

为了方便展示问题,我们这里设置STACK大小和HEAP大小都配置为1KB,并设置STACK到DTCM末尾的1KB,即如下配置:

代码语言:txt
复制
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
 
Stack_Size      EQU     0x00000400
 
                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp    EQU     0x2001FFFF
 
 
; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
 
Heap_Size       EQU     0x0000400
 
                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

这个时候,可以看到,stack已经没有再占用AXI SRAM空间了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档