中级会员
 
- 积分
- 329
- 金钱
- 329
- 注册时间
- 2017-3-17
- 在线时间
- 83 小时
|

楼主 |
发表于 2022-2-16 16:12:31
|
显示全部楼层
内容更正如下:
FSMC寻址映射有4个固定大小的存储块(BANK),每个存储块BANK被划分为 4 个区。每个区大小为64Mb,一个BANK可寻址空间为4x64MB,HADDR[25:0] 包含外部存储器地址大小为64Mb,HADDR[27:26]是存储区选择位。单片机对外寻址是一个位对应外部一个地址。当外部存储器为8位存储器时,一个区可寻址外部存储器大小为64Mb x 8 = 512Mb(单位为位,也就是64MB);当外部存储器为16位存储器时,一个区可寻址的外部存储器大小应该为64Mb x 16 =1024Mb(这是不对的),由于单片机对外寻址是一个位只能对应一个外部存储器字节,而这里变成了一个位对应外部两个字节。如果需要内部一个位对应一个外部字节,则需要舍弃最低位从第二位开始累加,这样内部寻址增加一位外部存储地址增加了两个字节刚好对得上,所以内部寻址需要右移一位,得到有用寻址位为HADDR[24:0]。 |
|