背景:我正在学习嵌入式系统课程https://www.edx.org/course/embedded-systems-shape-the-world-microcontroller-i
在有关位特定寻址的讲座中,他们展示了以下有关“花生酱和果冻端口”的示例。
给定一个基地址为 0x40005000 的端口 PB,您希望从 PB 访问端口 4 和端口 6,分别为 PB6 和 PB4。可以将端口 4 (0x40) 和端口 6 (0x100) 的偏移量添加到基地址 (0x40005000) 并将其定义为新地址 0x40005140。
这就是我感到困惑的地方。如果我想定义 PB6 的地址,它将是基址(0x40005000)+ 偏移量(0x100)= 0x40005100,PB4 的地址将是基址(0x40005000)+ 偏移量(0x40)= 0x40005040。那么,要访问它们,我可以使用 base(0x40005000) + offset(0x40) + offset(0x100) = 0x40005140 吗?对于他们各自来说,这不是一个完全不同的内存位置吗?
另外为什么位 0 表示为 0x004。在二进制中,这将是 0000 0100。我想如果你忽略前两个二进制位,它会代表位 0,但为什么我们要忽略它们呢?