RaspberryPI/BCM2835内存布局

5 assembly arm raspberry-pi

我一直在关注剑桥大学的"BakePI"课程,但在确定设备的正确内存地址时我发现了一些问题.

例如:在他们的过程中,他们声称系统定时器位于0x20003000位置,但在BCM2835 ARM外设数据表中,定时器据说可在位置0x7e003000获得.

所有其他外设(GPIO控制器等)都是一样的.

现在,为什么差异以及如何将地址从数据表"转换"为可用地址?

非常感谢你!

Not*_*hat 6

这是因为CPU悬空在GPU侧面而不是负责任务 - ARM内存映射与GPU的总线布局不同.

从数据表的1.2.3-1.2.4节:

外设的物理地址范围为0x20000000到0x20FFFFFF.外设的总线地址设置为映射到从0x7E000000开始的外设总线地址范围.因此,在总线地址0x7Ennnnnn处公布的外设在物理地址0x20nnnnnn处可用.

[...]

本文档中指定的外设地址是总线地址.