stm32的内部存储,rom,ram,变量保存的位置

2019-07-21 08:08发布

我了解到C语言的变量,自动变量,静态变量,寄存器变量,全局变量。C语言的存储空间常量区,堆区,栈区。
我用的芯片是stm32f103系列,128KB的flash,20KB的SRAM
我看内存图,flash memory分配的地址是从0x0800 0000~0x0801 FFFF,应该是对应128KB的flash吧,都是2的17次方,需要17个二进制位表示
看启动文件
Stack_Size      EQU     0x00000400
Heap_Size       EQU     0x00000200
这里有个疑问:
它的意思是堆是2的10次方个字节,1KB?栈是2的11次方个字节,是10KB?


第二个疑问,这个堆和栈是在flash里还是在SRAM里?
第三个疑问,自动变量、静态变量、寄存器变量、全局变量是保存在什么位置,是这个flash吗?
第四个疑问,20KB的SRAM用来保存什么内容,代码保存在哪里地方?
对这些基础概念不懂,谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。