我有一个关于硬件内存布局的问题。
我目前正在阅读设备Ade7978(隔离电能计量芯片组)的数据表。
在通过 I²C 或 SPI 进行通信的寄存器列表中(表 39,第 105 页),它列出了所有数据的寄存器地址。以下是前三个数字的摘录:
┌─────────┬─────────┬──────────────────────────────────┬─────────────────────────────────┐
│ Address │ Name │ Description │ Bit Length During Communication │
├─────────┼─────────┼──────────────────────────────────┼─────────────────────────────────┤
│ 0x4380 │ AIGAIN │ Phase A current gain adjust. │ 32 │
│ 0x4381 │ AVGAIN │ Phase A voltage gain adjust. │ 32 │
│ 0x4382 │ AV2GAIN │ Phase A V2P channel gain adjust. │ 32 │
└─────────┴─────────┴──────────────────────────────────┴─────────────────────────────────┘
值如何 32 位长且地址值仅增长 1?
寄存器没有直接映射到内存,怎么回事?
它们是否是一个任意数字,只是被决定为任何数字并在内部映射到内存的不同部分?那是刚刚到位,所以我不会意外访问 32 位数字的中间还是有硬件原因?
如果你有一个普遍的答案,无论如何。如果您碰巧知道为什么 Ade7978 专门这样做,那对我也有好处。
谢谢你的时间。