讲解Makefile和交叉编译工具篇幅较长,先说flash问题。
烧写norflash&nandflash?
对于我个人来说,下载到norflash可以,但是因为我是从norflash启动uboot然后在uboot中通过dnw烧写的,如果norflash中是裸机程序,那么uboot启动不起来了,烧写也就不能进行。
S3C2440中有被称为“Steppingstone”的4KB内部RAM。当从NandFlash启动CPU时,CPU会通过内部的硬件将NAND Flash开始的4KB字节数据复制到这4KB内部的RAM中(此时内部RAM的起始地址为0),然后跳转地址0开始执行。
NorFlash虽然可以像内存一样进行读操作,却不可以像内存一样进行写操作,所以从NorFlash启动时,一般现在代码的开始部分使用汇编指令初始化外接的内存器件(外存),然后将代码复制到外存中,最后跳到外存中继续执行,即重定位!
对于小程序,一般将它烧入NAND Flash中,借助CPU的内部RAM直接运行。
从上面可以引入S3C2440的两种启动方式:
Nand启动
①Nand前4K-> SRAM(2440中有4K的SRAM)
②CPU从0地址执行(SRAM的0地址)Nor启动
①0->Nor
②CPU从0地址取址执行(Nor的0地址)