我很感兴趣,因为这个值会影响我想要使用(可怕的) ldrex/strex同步原语的数据结构在内存中的位置。
ARMv7-M架构参考文件说:
标记记忆块的大小称为“排除剂保留颗粒”。结论性保留颗粒是在以下几个方面之间定义的实现:
因此,对于给定的实现(如STM32F407 ),我应该能够找到所使用的值。但我不能,在我查过的各种文件中。
有人知道吗?还有,你是怎么找到的?
发布于 2016-04-15 13:47:57
STM32F407有一个Cortex-M4核,这意味着ERG的大小实际上是4GB。
来自皮质M4 TRM
处理器内部的本地监视器被构造成不包含任何物理地址,而是将任何访问视为与前一个LDREX的地址相匹配。这意味着实现的独占预留颗粒是整个内存地址范围。
STM32F407 TRM没有提到实现外部监视器的系统,所以我假设它没有。如果没有其他CPU来与它同步,那也没什么大不了的--我很难想出一个很好的理由,让读-修改-写原子来避免被DMA覆盖。
https://stackoverflow.com/questions/36648460
复制相似问题