ARM嵌入式的位绑定原理

ARM嵌入式的GPIO位绑定的计算方式详解

期末考试结束了,在复习嵌入式的时候,看到了这个知识点,就打算考完试写一下,好,废话不多话,直接开始吧。
它的原理就是把每个比特膨胀成一个32位的字,当访问这些字的时候就达到了访问比特的目的。

映射关系:1:位带区:支持位带操作的地址区;2:位带别名:对别名地址的访问最终作用到位区的访问上

在这里插入图片描述
在这里插入图片描述
重头戏-----别名地址计算
AliasAddr = 0x4200 0000 +(A - 0x4000 0000) * 32 + n*4

AiasAddr就是最后计算的别名区地址,0x4200 0000 为位带别名区的其实地址,A为位带区的某一位地址,0x4000 0000为位带区的起始地址,那么A-0x4000 0000就是偏移的字节数(这里解释一下为什么是字节数:因为地址是按照字节编址的,那么相当于每次给地址加一,相当于加了一个字节),因为一个字节要扩大32倍,故乘以32,那么就得到别名区的那个字节的起始地址,这个n相当于不满一个字节的位数,也就是说:当多余的位数不满8位的时候,就单独乘以4,因为一位拓展为32位,也就是4个字节,故要n*4,最后,把三者的和加在一起,就是最后的别名区地址了。到这里,这个式子就解释清楚了。
好了,暂时就写到这了,欢迎大家批评指正。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴同学GOGOGO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值