最近看STM32F4的DataSheet,发现的一小疑惑,想通过坛友确认一下。
关于STM32F401:
Memories
– Up to 256 Kbytes of Flash memory
– Up to 64 Kbytes of SRAM
在STM32F401的0x0000 0000 -- 0x3FFF FFFF之间的一些理解,求指正。
(1)0x0000 0000 - 0x0003 FFFF
通过BOOT PIN选定 BOOT模式,将对应的存储空间映射到此段的地址上。(这一段的理解自己拿不准)
(2)0x0004 0000 - 0x07FF FFFF
Flash存储空间,大小正好和之前介绍的STM32F401的256K Flash对应上
(3)0x1FFF 0000 - 0x1FFF 7A0F
System 存储空间,算是STM32厂家的固话代码,用于IAP Bootloader使用
(4)0x1FFF C000 - 0x1FFF C007
Options Bytes,控制器运行参数选项(这块不太熟,求扩展知识)
(5)0x2000 0000 - 0x2000 FFFF
不用说了,就是STM32F401的64K SRAM空间了
以上说法是自己的理解,求更正扩充。
之前也瞅了一眼Freescale Kinetis 的Memory map,觉得不同半导体厂商的存数分配都各具特色,不过都逃不出ARM Cortex制定的框框。
BY THE WAY:
问一下在MDK 中定义了一个常量,如何查看这个常量在存储空间中的位置?
const uint32_t BSP_ver = BSP_VERSION;
我尝试在调试的时候,将BSP_ver加入Watch1、Memory1监视窗,都看不到结果。
BSP_ver 该变量在程序中没有被引用,会不会是编译器优化,不过我的优化等级是Level - 0啊,应该不是吧。
本帖最后由 liutogo 于 2015-7-25 11:20 编辑