更新时间: 2023-01-14
NandFlash启动过程分析
NandFlash使用I/O口串行地存取数据,它不映射到存储空间中任何一个BANK区域上.对NandFlash的渎写操作通过串行数据总线进行传输。NandFlash以页(page)为单位进行读写,以块(block)为单位进行擦除,本文用到的NandFlash页(page)大小为(512+16)Byte,块(block)大小等于32个页的大小。每页的**16Byte不用于存储程序数据,它主要用于存储ECC校验、标志位等信息。对NandFlash的操作主要是通过向NandF1ash控制器发送命令来进行的,对不同型号的NandFlash,其命令有所不同。由于NandFlash以块(block)为单位进行擦除,以页为单位进行写入,所以擦除与写入的速度都很快。
由于NandFlash不能芯片内执行,S3C2410必须提供一种机制支持从NandFlash启动。S3C2410提供了这样一种机制,当设置为Nandflash启动时,系统加电或复位后,使能NandFlash控制器的自动启动模式,NandFlash中的前4KB代码自动地被拷贝到位于CPU内部的称为Steppingstone的SRAM中,这是启动代码的**次拷贝,这次拷贝由硬件自动完成.然后这块SRAM被映射到存储空间中的000000000处,CPU从这个地址处开始执行启动代码。
由于CPU内部的SRAM仅有4KB,不能保证整个VIVI都被从NandFlash中拷贝到CPU内部的SRAM中,所以这前4KB的代码要保证完成把整个VIVI从NandFlash拷贝到执行效率更高的RAM中运行以及程序的跳转任务,此时从NandFlash到SDARM的拷贝过程就是所谓的软件拷贝。
上一篇:1785KPMPP1700
下一篇:1785BCM