关于Cortex-M3存储器映射

关于Cortex-M3存储器映射,第1张

    CM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种CM3 单片机间的移植。举个简单的例子,各款CM3 单片机的NVIC 和MPU 都在相同的位置布设寄存器,使得它们变得通用。尽管如此,CM3 定出的条条框框是粗线条的,它依然允许芯片制造商

  灵活地分配存储器空间,以制造出各具特色的单片机产品

  CM3 的地址空间是4GB, 程序可以在代码区,内部SRAM 区以及外部RAM 区中执行。但是因为指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用自己的总线,并行不悖。

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第2张

  这是LPC18xx Memory mapping

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第3张

  上图你可以看到,local SRAM其实在ARM规定的Code区,看来这个也不是死规定,各个芯片厂商还是能d性调整的。

  这是STM32F101XC D E Memory mapping

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第4张

  对比上面的图可知,各个芯片厂商都是按照ARM的粗线条的存储器映射规定定义自家芯片的存储器映射。

  Cortex-M4存储器映射(与M3定义一致)

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第5张

  遇到的特例

  这是QN908x Memory mapping

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第6张

  我查阅datasheet,发现SRAM的地址是确实是从0x20000000开始的。

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第7张

  可是上图这块地址却标记为Aliased to SRAM。标记为SRAM的区域却从0x040000000开始。

  我再打开示例程序的.scf文件

  

关于Cortex-M3存储器映射,关于Cortex-M3存储器映射,第8张

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2642189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存