如图所示,这是一段STM32的寻址计算公式,哪位学长可以解答一下,看不太明白,这是如何寻找到那一位的地址的?
1条回答 默认 最新
- 老皮芽子 2021-12-11 13:33关注
是位寻址地址的计算
这个计算公式需要先理解这个公式的物理意义。
假设我们自己设计一款 32 位 CPU 有一组能按位去寻址特殊的寄存器,这组寄存器有0x1000个按顺序编号为 REG_NUM 0-0x0fff ,每个寄存器只有 8 位,这每个位为 BIT_NUM 0-7
我们需要怎么去寻址?CPU 的地址一般都是按字节计算。这组寄存器就需要 0x1000 * 8 个地址空间。
远大于这组寄存器原始的地址空间 0x1000 ,我们需要将这个按位寻的地址重新映射一块区域,这块区域的基地址为 BASE_ADDR
我们怎么计算这个地址 ?BASE_ADDR + REG_NUM * 8 + BIT_NUM
这是 32 位 CPU 需要 4 字节对齐去寻址就计算需要做下调整
BASE_ADDR + ( REG_NUM * 8 + BIT_NUM ) * 4 = BASE_ADDR + REG_NUM * 32 + BIT_NUM * 4
看看 STM32 的公式是不是一样 ?
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图