s3c2440的nandflash启动

 

       上文介绍了s3c2440nandflash的基本操作,其中提到了s3c2440具有nandflash自启动的功能,本文就详细介绍该功能的实现方法。

 

       nandflash由于其自身的特点,不具备运行程序的功能。但s3c2440通过称为“Steppingstone”的内部SRAM缓存,实现了可以运行存储在外部nandflash中的启动代码的功能。它的机制是:当检测到是由nandflash启动时,系统会自动把nandflash中的前4k字节的数据加载到Steppingstone中,然后把该Steppingstone映射为Bank0,因此系统会从Steppingstone开始运行程序,从而实现了s3c2440nandflash自启动的功能。这一过程是由系统自动完成的,无需人为干预。在系统启动以后,Steppingstone所在的SRAM就可以用作其他用途了。

 

但有人可能会问,如果我的程序很大,超过了4k字节,那是不是就不能利用s3c2440的这个功能了呀?因为Steppingstone只有4k字节大小,也就是程序运行的最大长度只能为4k字节,4k字节以外的内容就运行不到了。这个疑问的答案当然是否定的。我们可以通过在Steppingstone中,把程序的其余部分复制到RAM中,程序运行时由Steppingstone转移到该RAM中,从而就解决了上述难题。一般来说,在启动代码的前4k字节里,要完成s3c2440的核心配置,而把启动代码的剩余部分搬到RAM中运行。

 

       下面我们就介绍一下如何实现上述的功能。

 

       在本博客的第一篇文章中,我们介绍了s3c2440的启动代码,其中有下面这段代码:

 

……   ……

;下面的代码为把ROM中的数据复制到RAM

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值