我对内存映射和内存映射的I / O感到非常困惑。 例如在ARM体系结构r0,r1等中的通用寄存器是否通常进行内存映射?请帮忙。
答案 0 :(得分:4)
否,这些寄存器位于实际的CPU(或多核CPU的CPU核)中。您无法通过内存访问它们。
内存映射的寄存器是您通过地址或指针(具有指针的语言)访问的东西。 I / O设备通常具有内存映射寄存器,您可以在其中写入或读取特定地址来设置或获取信息或数据。换句话说,它们的访问方式就像其他任何内存(例如RAM)一样。
如评论中所述,存在带有内存映射CPU寄存器的CPU。它们几乎都是在1970年代设计的,除了PIC microcontrolers(也许还有8051体系结构的现代实现)之外,它们已成为历史的一部分。这些天,您遇到带有内存映射寄存器的主流CPU(PIC除外)的机会微乎其微。
更具体地说,ARM体系结构没有内存映射寄存器。无论如何,不用于核心寄存器。外围设备,包括与CPU在同一SoC上的外围设备,却是另一回事。