[讨论] 基地址已经可以区分了,加一个相同的偏移地址有何意义?

QWE4562009   2021-2-2 13:51 楼主

基地址已经可以区分了,加一个相同的偏移地址有何意义?

  • 基地址和偏移地址.png

回复评论 (5)

你可以把基地址比作楼层,偏移地址比作房间号
点赞 (1) 2021-2-2 14:03

可以这么理解,GPIOA和GPIOB对应的寄存器都有一个空间

GPIOA和GPIOB的寄存器除了基地址不同外,偏移地址都相同

假设GPIOA的基地址是0x10,GPIOB的基地址是0x20

每一个gpio有3个寄存器,寄存器A,寄存器B,寄存器C

GPIOA的A寄存器地址为0x10,B为0x11,C为0x12

GPIOB的A寄存器地址为0x20,B为0x21,C为0x22

如果你不用基地址加偏移的方法来记录寄存器,上边这种你需要记录6个地址,而且GPIO和寄存器越多,需要记录的地址就越多

因为每个GPIO的偏移是相同的,如果你使用基地址加偏移的方式来记录的话

你只要记录GPIOA=0x10,GPIO2=0x20 另外 A寄存器偏移0x00,B偏移0x01,C偏移0x02

这时你要记录的是GPIO的数量+寄存器的数量,如果你用上一种方法,则是GPIO的数量*寄存器的数量。

 

虾扯蛋,蛋扯虾,虾扯蛋扯虾
点赞 (2) 2021-2-2 14:10

为了方便,你当然可以直接写寄存器的完整地址,写多了你就知道为啥了,累

总结一个简便的标识方法来表示实际地址,其他计算交给编译器,多简单。

坐而言不如起而行
点赞 (1) 2021-2-2 15:04

怕你搞错了。

默认摸鱼,再摸鱼。2022、9、28
点赞  2021-2-2 15:24

你做一个“查二维表”的程序就明白了,

点赞  2021-2-3 16:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复