S3C2440启动方式研究

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

2:开发板上一般都用SDRAM做内存           flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B)。  norflash SDRAM有地址线


3:nandlash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码)

4:s3c2440总共有8个内存banks  6个内存bank可以当作ROM或者SRAM来使用. 留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样)


7个bank的起始地址是固定的还有一个灵活的bank的内存地址,并且bank大小也可以改变


  不管S3C2440的启动设备是什么,它都是从0x0000 0000地址开始执行程序的,所不同的是地址的映射不一样。基于S3C2440的嵌入式系统上电之后,需要首选选择启动设备,2440的启动方式选择是通过模式引脚OM1和OM0来配置的,如图1 所示为2440的启动方式选择说明:


由上图可知,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 FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8个BANK中分配地址空间。如果S3C2440被配置成从Nand Flash启动,

在S3C2440上电后,Nand Flash控制器的会自动的把Nand Flash上的前4K数据搬移到片内 SRAM中(s3c2440是soc) ,也就是所谓的”Steppingstone”, 同时把这段片内SRAM映

射到nGCS0片选的空间(即0x00000000)。系统会从这个内部SRAM中启动,程序员需要完成的工作,就是把最核心的启动程序放在Nand Flash的前4K中,也


就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到RAM (一般是SDRAM)中运行。而在Nand Flash方式启动的情况下,系统是”看不到

”Nor Flash的,因为Nor Flash也是挂在nGCS0上的,而nGCS0的地址空间已经被占用了。
 因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使

用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行



TQ2440使用的Nor Flash是AMD公司的AM29LV160DB,它是16bit数据位宽的Nor Flash。因此,当选择从NOR FLASH启动时,OM1和OM0应该分别是低电平和高


电平。此时,NOR FLASH被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,而片内SRAM的起始地址还是0x40000000)。 然后2440从


0x00000000开始运行(也就是在Nor Flash中运行)。


 为什么会有这两种启动方式,关键还是两种flash的不同特点造成。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值