您的位置 首页 元件

s3c2440 NAND与NOR发动方法详解

一:地址空间的分配1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.2:开发…

一:地址空间的分配

1:s3c2440是32位的,所以能够寻址4GB空间,内存(SDRAM)和端口(特别寄存器),还有ROM都映射到同一个4G空间里.

2:开发板上一般都用SDRAM做内存flash(nor、nand)来作为ROM。其间nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线

3:nandflash不用来运转代码,只用来存储代码,NORflash,SDRAM能够直接运转代码)

4:s3c2440总共有8个内存banks
6个内存bank能够当作ROM或许SRAM来运用
留下的2个bank除了当作ROM或许SRAM,还能够用SDRAM(各种内存的读写方法不一样)
7个bank的开端地址是固定的
还有一个灵敏的bank的内存地址,而且bank巨细也能够改动

5:s3c2440支撑两种发动形式:NAND和非NAND(这儿是nor flash)。
详细选用的方法取决于OM0、OM1两个引脚

OM[1:0所决议的发动方法

OM[1:0]=00时,处理器从NAND Flash发动

OM[1:0]=01时,处理器从16位宽度的ROM发动

OM[1:0]=10时,处理器从32位宽度的ROM发动。

OM[1:0]=11时,处理器从Test Mode发动。

当从NAND发动时

cpu会主动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),一起把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开端履行,也便是NAND flash里的前4KB内容。由于NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好运用片内SRAM做一个载体。经过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去履行

当从非NAND flash发动时

nor flash被映射到0x00000000地址(便是nGCS0,这儿就不需求片内SRAM来辅佐了,所以片内SRAM的开端地址仍是0x40000000).然后cpu从0x00000000开端履行(也便是在Norfalsh中履行)。

总结:

Arm的发动都是从0地址开端,所不同的是地址的映射不一样。在arm开电的时分,要想让arm知道以某种方法(地址映射方法)运转,不可能经过你写的某段程序控制,由于这时分你的程序还没发动,这时分arm会经过引脚的电平来判别。

1当引脚OM0跟OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也便是Norflash,程序就会从Norflash中发动,arm直接取Norflash中的指令运转。

2当OM0跟OM1都为低电平,则0地址内部bootbuf(一段4k的SRAM)开端。体系上电,arm会主动把NANDflash中的前4K内容考到bootbuf(也便是0地址),然后从0地址运转。

这时NANDFlash中的前4K便是发动代码(他的功用便是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运转的当地)

为什么会有这两种发动方法,要害仍是两种flash的不同特色形成,NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。NAND FLASH 总容量大,可是读写都需求杂乱的时序,更适合做数据存储器。这种不同就形成了NORflash能够直接连接到arm的总线而且能够运转程序,而NANDflash有必要搬移到内存(SDRAM)中运转。

在实践的开发中,一般能够把bootloader烧入到Norflash,程序运转能够经过串口交互,进行必定的操作,比方下载,调试。这样就很能够很便利的调试你的一些代码。Norflash中的Bootloader还能够烧录内核到Norflash等等功用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/274919.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部