内存映射寄存器是否是总线上的独立寄存器



我将使用TM4C123Arm微控制器/板作为示例。

它的大多数I/O寄存器都是内存映射的,因此您可以使用常规内存加载/存储指令。

我的问题是,在cpu之外的总线上的某个地方是否有某种类型的寄存器映射到内存,并且您使用内存区域对其进行读/写,该内存区域本质上具有重复的值——寄存器和内存上都有,或者内存本身就是寄存器吗?

即使在MCU中也有许多总线。一辆接一辆的公共汽车像树枝一样劈开了。(有时甚至不像树那样合并(。

它可能早于intel/motorola之战,但在那个时间段内,你有分段寻址与平面寻址,你有I/O映射I/O与内存映射I/O,因为摩托罗拉(和其他公司(没有单独的I/O总线(好吧,还有一个额外的…地址…信号(。

查看arm体系结构文档和芯片文档(arm制造IP而非芯片(。您有对地址进行操作的加载和存储指令。芯片的文档(在某种程度上,ARM提供了cortex-m地址空间的规则(提供了一长串地址。作为一名程序员,你只需将加载和存储的地址与正确的指令排成一行。

有些营销可能仍然带有内存映射I/O之类的术语,因为英特尔x86仍然存在(如何存在????(,有些人将继续使用这些术语。作为程序员,它们是进入寄存器的第一位,对于这里和那里的单个指令,这些位就是地址。如果你想在上面加形容词,那就去吧。

如果你根据芯片和核心文档使用的地址指向sram,那么这就是对内存的读取或写入。如果它是一个闪存地址,那么它就是闪存。美洲虎,美洲虎。定时器5,然后定时器5控制和状态寄存器。等等

这些MCU中的地址指向两到三件事,但不是同时指向。(地址0x00000000以及之后的一些千字节(。但是,再一次,不是在同一时间。这种重叠至少在许多cortex-m mcu中,这些特殊地址空间不会重叠";存储器";以及外围设备(I/O(。但取而代之的是可以启动芯片并运行一些代码的地方。有了这些皮层ms,我认为你甚至不能使用mmu来混合这些空间。是的,在全尺寸的武器和其他架构中,你可以使用一个完整的mcu来混合地址空间,并拥有一个位于不同类型的物理地址空间上的虚拟地址空间。

最新更新