在IAR下编程,难免少不了要跟堆栈打交道,但是打交道之前也要知道堆栈的大小,以及堆栈的位置在哪里?
Options->Linker->Overridde default->Edit查看芯片的堆栈大小
这里可以看到我们使用的堆栈的大小都是0x800(2K)大小。如果想修改堆栈的大小,可以在这里修改,然后保存到工程目录下即可。
那如何查看堆栈在SRAM中的位置呢?
首先设置Options->Linker->List,将Generatee linkeer map file勾选上。
编译一下,在工程目录的output文件夹下就出现了.map的文件。
在文件中我们可以看到一下分配信息。
可以看到堆栈都在"P2"中,我们向下拉,找到"P2"
找到了堆栈信息,可以看到栈的起始位置为0x20002118到0x20002918,2K的大小。
堆的起始地址为0x20002918到0x20003118,2K到的大小。跟在工程中看到的是一样的。