1、存储器映射就是将芯片里每个东西人为的(芯片生产厂家,用户不可更改)分配地址。用地址来代表这个对象。
2、由于Cortex-M3是32位的内核,所以最大寻址范围为2^32 =4GB,即 0x0000 0000 ~ 0x ffff ffff . (即有2^32种排列组合)
3、stm32将这4GB划分了8块。每块512M。当然只用了其中一小部分。 其中我们比较关心的是 Block0,Block1和Block2. 即 flash, SRAM, 外设。
4、SRAM 。 0x2000 0000 ~ 0x4000 0000 .程序运行的地方。断电后,里面的东西就会丢失。
5、flash。 0x0800 0000 ~ 0x0808 0000 .(512kb) .我们编写的静态代码存放的位置。 在0x0000 0000 ~ 0x2000 0000 里。还有芯片厂家出厂前写好的代码。不可更改。
6、0x4000 0000 ~ 0x6000 0000 .外设.
7、根据STM32的内存映射图,在代码区,0x00000000地址为启动区,上电以后,CPU从这个地址开始执行代码。0x08000000是用户FLASH的起始地址,0x20000000是SRAM的起始地址。 |