打印

对地址映射的疑惑

[复制链接]
1764|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
aozima| | 2014-6-11 22:01 | 只看该作者
挂载i2c接口的flash,能挂载多大空间

外置SPI FLASH的地址空间不在芯片内,空间为无限大。

这里的SPI和I2C的地址空间是指芯片上I2C和SPI控制器的寄存器所占用的地址空间。

使用特权

评论回复
板凳
feibao1988|  楼主 | 2014-6-11 22:04 | 只看该作者
aozima 发表于 2014-6-11 22:01
外置SPI FLASH的地址空间不在芯片内,空间为无限大。

这里的SPI和I2C的地址空间是指芯片上I2C和SPI控制器 ...

那么图上的这个spi的size为256是什么大小

使用特权

评论回复
地板
feibao1988|  楼主 | 2014-6-11 22:36 | 只看该作者
aozima 发表于 2014-6-11 22:01
外置SPI FLASH的地址空间不在芯片内,空间为无限大。

这里的SPI和I2C的地址空间是指芯片上I2C和SPI控制器 ...

谢谢,刚网卡你回复的下面那句话没刷出来.!

使用特权

评论回复
5
adwei| | 2014-6-13 11:07 | 只看该作者
那只是个IO空间而已,真正有用的寄存器也就几个。实现上来说,CPU发出寻址在1000 0B00 - 1000 0BFF之间的,则会选中SPI控制器,如果低位地址有效,则会选中对应的寄存器。
具体去看一个如SPI EEPROM之类的操作示例就明白了。

使用特权

评论回复
6
feibao1988|  楼主 | 2014-6-13 11:30 | 只看该作者
adwei 发表于 2014-6-13 11:07
那只是个IO空间而已,真正有用的寄存器也就几个。实现上来说,CPU发出寻址在1000 0B00 - 1000 0BFF之间的, ...

那SDRAM的那64M空间,应当怎么理解呢?64M地址都是内部寄存器?它和外挂的RAM是怎么样的一个运作方式。不外挂RAM能否运行?

使用特权

评论回复
7
adwei| | 2014-6-13 14:05 | 只看该作者
很多人都有这样的疑惑,需要去学习芯片的逻辑架构和寻址之类的基本知识。

以ARM典型构架为例,CPU分高速数据总线AHB和外设总线APB,APB可能还不止一条,SPI之类的一般挂在APB上。典型的SDRAM控制器也就是挂在AHB上的一个设备,CPU发出寻址后,指定地址范围用于选中对应的总线设备,比如发出访问0000 0000地址就会仲裁到SDRAM控制器,控制器译码后再发出指令到SDRAM内读写对应的数据,该过程CPU是HOLD住的,所以如果没有cache的话一条内存访问指令要执行N(>10)个CPU周期。

如果总线是一条街,各类控制器就是街边的房子,大房子(SDRAM)占很大的空间(几十兆地址范围),小房子只占用一个角落;但是……小房子从后门出去可能会到达另一条街,或许还是更长的一条街(如SPI上面挂1片几十MB的Flash),就如@aozima说的,空间无限。

但由于是IO空间,CPU是无法直接寻址的,因此只能间接操作(通过控制器,如SPI),将数据读取到RAM空间再访问,而没有办法一条load指令直接加载SPI Flash上面的数据。

使用特权

评论回复
8
feibao1988|  楼主 | 2014-6-13 14:23 | 只看该作者
adwei 发表于 2014-6-13 14:05
很多人都有这样的疑惑,需要去学习芯片的逻辑架构和寻址之类的基本知识。

以ARM典型构架为例,CPU分高速数 ...

谢谢您的回复。
spi和i2c的模式现在理解了,就是类似SDRAM那么大一块的地址空间,他起的作用也是类似前两者的作用吗?
另外ARM中的直接寻址是寻址的这片地址,还是外挂的SDRAM呢。
关于内存地址这块有没有什么书可以推荐下。

使用特权

评论回复
9
adwei| | 2014-6-13 14:53 | 只看该作者
feibao1988 发表于 2014-6-13 14:23
谢谢您的回复。
spi和i2c的模式现在理解了,就是类似SDRAM那么大一块的地址空间,他起的作用也是类似前两 ...

开始不用抠的那么深,不是做芯片的话只要会用就行,把它们都当成黑盒就好;
具体看什么书我也说不上来,感兴趣的话至少要从基本的逻辑电路、译码器之类看起吧,也就是数字电路基础;然后就知道自己要看什么了;平时多积累,没有速成。

使用特权

评论回复
10
lsqavr| | 2014-6-13 15:59 | 只看该作者
feibao1988 发表于 2014-6-13 14:23
谢谢您的回复。
spi和i2c的模式现在理解了,就是类似SDRAM那么大一块的地址空间,他起的作用也是类似前两 ...

我理解, SDRAM是挂在AHB总线上的,所以一个地址就是对应一个内存数据,cpu可以直接读取。

SPI和I2C是挂在APB上的是控制器而已,可能是设备可能是存储器,少量地址空间只是访问控制器的,要想访问具体数据,需要通过访问控制器来实现。




使用特权

评论回复
11
tuzihog| | 2014-8-29 20:05 | 只看该作者
关注以下

使用特权

评论回复
12
SunnyMaple| | 2014-8-31 14:21 | 只看该作者
看看大神们的回复

使用特权

评论回复
13
SunnyMaple| | 2014-8-31 15:13 | 只看该作者
学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

粉丝