请教原子哥:数据存储结构问题,小弟实在是想不明白了~

2019-07-21 01:13发布

1>软件平台使用的是keil mdk5.11
2>源码和图片(使用jtag在线debug的截图)
3>我使用的是stm32f407单片机开发板,它的flash地址是从0x8000 0000~0x8010 0000,它的ram的地址是从0x2000 0000~0x2002 0000(不包含CCMRAM)
[mw_shl_code=c,true]int main() { u8 p[] = "abcd"; u8 *q = "abcd"; printf("%s ",p); printf("%s ",q); } [/mw_shl_code]
问题1>指针p(0x200027f0)是存储在ram中,这个我可以理解,那它其中的p[0],p[1],p[2],p[3]都是存储在ram中的,地址依次自增+1个字节?是不是这个意思???
问题2>第一个"abcd"是存储在ram中,还是存储在flash中?为什么?

问题3>指针q是存储在哪里啊?看图中的0x08000250,既不是存储在ram中,也不是存储在flash中啊,小弟想不明白,恳请原子哥指教~~~
问题4>第二个"abcd"是存储在ram中,还是存储在flash中?为什么?

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