void nand_init_ll(void)函数中有一个if语句
/* 判断是S3C2410还是S3C2440 */
if (isS3C2410)
{
/* 使能NAND Flash控制器, 初始化ECC, 禁止片选, 设置时序 */
s3c2410nand->NFCONF = (1<<15)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0);
}
其中的判断条件isS3C2410是一个宏定义,如下:
#define rGSTATUS1 (*(volatile unsigned *)0x560000B0)
#define isS3C2410 ((rGSTATUS1 & 0xffff0000) == 0x32410000)
不懂为什么这样就能判断是2410还是2440,请教各位大神 |