1. 自己写bootloader发现一些数据类型设置不准确导致重定位无法完成:
NFDATA的使用,先看datasheet上的寄存器设置图:
从上图可以看到,NFDATA可以支持两种NANDFLASH的访问接口,一种是16bit,一种是8bit的。2440所使用的NANDFLASH是8bit的接口。一次从NFDATA中读取的数据只能是8bit。所以要对NFDATA的定义为:
#define NFDATA (*(volatile unsigned char *)0x4E000010)
返回数据的类型也应该为:
unsigned char read_data()
{
int i;
return NFDATA;
for(i=0; i<10; i++);
}