跪求STM32堆栈大小设置问题

2019-03-23 18:03发布

我的启动文件代码是这样写的: Stack_Size      EQU     0x00000400                   AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp
Heap_Size       EQU     0x00000200                   AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit
                PRESERVE8
                THUMB   但是编译出来的工程文件.htm里有个函数是这样的(见附件图): modifyMainPage (Thumb, 454 bytes, Stack size 40 bytes, lcd19264.o(i.modifyMainPage)) [Stack] • Max Depth = 48
• Call Chain = modifyMainPage ⇒ my_strcpy 谁能解释一下 454 bytes是不是就意味着我的Heap_Size   EQU  要设置成454以上? 还有Max Depth = 48是什么意思?
  此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
shilaike
2019-03-23 21:40
/ 应该是这样的,LZ给的图片中是一个函数中使用的内存空间的说明,modifyMainPage是该函数名,Thumb是指令集,它后面的454Byte应该是指该函数的代码量占用的rom空间的大小。而static size是40Byte,也就调用该函数时要从堆栈中分配40个Byte出来。
  也是第一次遇到网友问这个问题,不知道对不对,希望大家讨论一下。

一周热门 更多>