首页 文章

ARM Cortex M3 / M4架构中的代码和SRAM区域集成[暂停]

提问于
浏览
0

我知道在ARM Cortex M3 / M4架构中,处理器使用代码和SRAM区域来执行程序 . 但有时它集成了Code和SRAM区域 . 任何人都可以向我解释这种集成的可行性和原因是什么?

请举例说明:为什么需要整合这两个区域?在架构上,代码区域是只读的ROM,而RAM提供读/写访问 . 如果我们尝试写入这个集成的代码区域,这种安排似乎可能导致分段错误 . 对于集成的代码区域,我们必须做些什么?

还有一个问题是,由于这些区域是通过某些特定的大小限制来定义的,那么架构如何处理这个问题呢?

参考:Joseph Yiu的ARM Cortex M3和Cortex M4 MCU的权威指南 . 主题编号:4.4.2

1 回答

  • 0

    来自ARMv7M架构,

    Address       Name Device type XN? Cache Description
    0x00000000-   Code Normal       -    WT  Typically ROM or flash memory.
    0x1FFFFFFF
    

    代码区域在架构上不是只读的 . 关于何时将RAM映射到代码区域是有意义的几个例子是:

    • 如果主闪存速度很慢,要实现更快访问内存的区域,而不是实现缓存,则选择将某些关键代码区域复制到更快的内存中 .

    • 启用运行时代码修改/参数化(包括某些类型的调试)

    这些可以通过运行来自SRAM或RAM区域的代码来实现,但是你失去了(在某些Cortex-M中)两个专用于代码区域指令和数据获取的附加硬件接口的好处 .

    我没有你参考的书,但我怀疑它也说'通常'而不是'总是' .

相关问题