一、2440启动方式
通过芯片的引脚OM[0:1]来确定是nor boot还是nand boot。当为nand boot时,通过硬件将nand的前4K代码拷贝到内部的4K RAM(0x4000_0000),然后在4k RAM里执行代码。
要注意的是,这4K代码的读取是不会进行ECC校验的,所以需要保证nand中前4K代码没有错误。
另外,硬件对nand的配置识别也是通过引脚实现的,摘自数据手册中的说明如下:
PIN CONFIGURATION
OM[1:0] = 00: Enable NAND flash memory boot
NCON: NAND flash memory selection(Normal / Advance)
0: Normal NAND flash(256Words/512Bytes page size, 3/4 address cycle)
1: Advance NAND flash(1KWords/2KBytes page size, 4/5 address cycle)
GPG13: NAND flash memory page capacitance selection
0: Page=256Words(NCON = 0) or Page=1KWords(NCON = 1)
1: Page=512Bytes(NCON = 0) or Page=2KBytes(NCON = 1)
GPG14: NAND flash memory address cycle selection
0: 3 address cycle(NCON = 0) or 4 address cycle(NCON = 1)
1: 4 address cycle(NCON = 0) or 5 address cycle(NCON = 1)
GPG15: NAND flash memory bus width selection
0: 8-bit bus width
1: 16-bit bus width
硬件上的配置要参考实际nand flash属性。目前来看,大多数的nand flash都是2KB/page的了,512B/page的比较少。
二、对Flash的操作
对flash的操作遵循基本的步骤:命令->地址->数据
1.写NFCONF和NFCONT寄存器配置flash参数;
2.写NFCMD;
3.写NFADDR;
4.检测NFSTAT;
5.读/写NFDATA。
阅读(492) | 评论(0) | 转发(0) |