我了解到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用来保存什么内容,代码保存在哪里地方?
对这些基础概念不懂,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>