对FSMC地址非对齐访问支持的理解

HADDR

HADDR是来自AHB总线上地址线,是字节地址。连接到FSMC_A[25:0],再连接到外部的存储器,

地址线

首先明确一点,26根地址线,它是26个位。它的寻址空间或者寻址容量是2^26,单位是Byte。HADDR是字节地址,说明地址线每变一条,就对应着一个字节的地址:8位。

FSMC_A[25:0]和HADDR[25:0]的联系

正常情况下,FSMC_A和HADDR是pin对pin连接的,如果访问的SRAM数据宽度是8位,就正好很匹配。
如果SRAM的数据宽度是16位的SRAM(案例来自野火FSMC模拟8080时序访问ILI9341读写GRAM),本来HADDR一位地址对应一个字节,但是现在要求一位地址对应两个字节。
解决办法:二进制逢二进一,十位加1,个位需要加2。所以只要把HADDR的十位和FSMC_A的个位对齐即可。把HADDR让出一跟地址线,把FSMC_A[0]连接到HADDR[1],这样十位变一次,HADDR[0] 其实变化了两次,对应着两个字节。
所以到底是利用了二进制逢二进一和字节地址的关系。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值