参考资料:STM32F4xx中文参考手册 56 页
对于第一句话,存储器采用固定的存储器映射,是因为 ARM 架构的 CPU 从地址 0x0000 0000 开始指向,取第一条指令运行。
通常情况下,而我们下载程序时下载到了下面0x0800 0000H - 0x080F FFFFH这个区域(主FLASH),见图一。
把数据下载到了0x2000 0000起始的这个地方,见图二。
图一、程序存储的位置
图二、数据存储的位置
问题来了,我们不是下载到了0x0800 0000H - 0x080F FFFFH区域吗,怎么从0x0000 0000 H地方运行呢?答案是:存储器采用固定的存储器映射,在上电时,CPU 会读取BOOT引脚配置,把相对应的存储器起始地址映射成0x0000 0000 H,开始执行程序。
如果下载程序到0x0800 0000H - 0x080F FFFFH区域,你的BOOT 引脚配置肯定是第一种。
其余更加详细的讲解,请看下面的大佬的文章,哈哈哈!
https://www.cnblogs.com/huanzxj/p/6273014.html