OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3402|回复: 3

STM32F4xx FSMC对外寻址的一点理解

[复制链接]

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2022-2-16 10:51:45 | 显示全部楼层
每个区的大小是64MB,字误失之毫厘差之千里,其他的理解是对的 16位的时候为了对齐 会舍弃掉最后一位
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2017-3-17
在线时间
83 小时
 楼主| 发表于 2022-2-16 16:02:27 | 显示全部楼层
远命 发表于 2022-2-16 10:51
每个区的大小是64MB,字误失之毫厘差之千里,其他的理解是对的 16位的时候为了对齐 会舍弃掉最后一位

多谢指正
回复 支持 反对

使用道具 举报

11

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
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]。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 02:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表