Nand Flash 启动过程详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nand Flash 启动 如果内部没有ROM 或ROM没有专门的bootloarder, 应该是只能从nor flash启动。 三星的2410可以从NF启动程序,它会把第一块的前4KB复制到内部SRAM中然后从SRAM执行,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行(NF地址不是线性的,程序不能直接运行,必须拷贝到线性RAM中). NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。 NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。 通俗的说,就是光给地址不行,要先命令,再给地址,才能读到NAND的数据。 而且都是在一个总线完成的。 nboot是从NAND flash读image到内存并执行,eboot是从以太网(用tftp)下载image到内存并执行。将nboot.nb0烧到第0块,将eboot.nb0烧到第2块。启动时nboot从flash读出eboot并执行之,如何就可以通过pb把nk.bin下载到目标板上执行了,开发机和目标板可以用交叉线直接连接。 nboot是nand flash bootloader的意思。S3C2410可以直接从nand flash 启动,但是不能超过4k。nboot是系统启动后最先执行的代码,它有两种,一种是跳转到eboot;一种是跳转到nk。主要的功能其实是在eboot里。 随着消费类电子产品包括 PDA , MP3 、智能手机等手持设备的市场需求逐步扩大,产品间的竞争也愈发激烈,降低产品的设计成本,提升产品的市场竞争力成为嵌入式系统开发者所面临的重大挑战。 NAND FLASH 和 NORFLASH 作为两种主要的非易失性存储器,被应用于各种嵌入式系统。其中 NAND FLASH 主要优点在于存储密度高、容量大,有更占优势的存储性价比。但是 NANDFLASH 由于其独特的页式读写方式,并不适合程序的直接执行。因此,从 NAND FLASH 启动需要片上存储器作为代码执行的中转区。本文所讨论的一种系统启动方式,是在缺少片上存储器支持的情况下,实现系统直接从 NAND FLASH 启动。论文中充分考虑了如何实现软、硬件之间的协同工作,以完成 SOC 系统的设计。 2 NAND FLASH 控制器的结构 本文所讨论的 NAND FLASH 控制器是针对一款基于 ARM7TDMI 的 SoC 芯片,该控制器在芯片中的位置如图 1 所示,作为 AMBA 总线上的一个从设备集成于 AHB 上。主要模块包括总线接口模块、 FIFO 缓冲模块、 ECC 编码模块以及逻辑控制模块。 总线接口模块主要的功能是转换 AMBA 总线上的控制和数据信号:将总线上的数据送入 FIFO 或将数据从 FIFO 读出到总线上,将总线上的控制信号转换时序后送到控制模块。 NAND 控制器包含一个宽度为 32 b ,深度为 4 的缓冲 FIFO ,用于解决高速总线与低速设备之间数据传输速度的匹配问题。为提高总线的传输效率,以及控制器设计的便利性, NAND FLASH 在总线上的数据传输采用 DMA 的方式来完成。譬如在读取 FLASH 一页数据时,数据持续写入控制器 FIFO , FIFO 满时发出 DMA 传输的请求,同时暂停 FLASH 的数据读取,控制信号 nRE 拉高,直至 DMA 响应请求即 FIFO 不满时, FLASH 的数据传输重新开始。当选择应用的 FLASH 位宽为 8 ,页大小为 (512+16)B 时,控制器需要发出 (32+1) 次 4 拍字宽度的 DMA 传输请求来完成数据和校验信息的读取。 控制模块的上作主要是将总线接口转换的控制信号,按照 NAND FLASH 的接口协议.将片选、地址、命令、读写使能按照所配置的时序要求,发送到 NAND FLASH 中,并且控制数据的传输个数,以及 DMA 请求、数据传输完成中断、数据错误中断等系统信号。 NAND FLASH 可靠性相对较差,存储器芯片中有坏块的存在,会导致存储数据出错。 ECC 校验模块针对 NAND FLASH 的可靠性问题,提供了一种查错、纠错的机制。 ECC 校验码在数据读人时,由硬件计算完成后写入到 FLASH 的校验位中,当此页数据读出时,校验码再次生成与存储器校验位中的数据进行比较,若相同则没有损坏位,若不同,则给出出错中断,软件通过检查比较结果,判断出错位的位置进行纠错处理。纠错功能仅针对单 bit 位的出错,当一个以上位同时在一页中出现时, ECC 校验不能给出出错位正确的位置。 3 NAND FLASH 工作的软件流程 按照上节对控制器结构以及传输机理的分析, NANDFLASH 的使用需要在 FLASH 控制器模块以及 DMA

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档