U-Boot在nand flash中的前4k内容分析


在NOR Flash中移植了NOR,DM9000,NandFlash读写,甚至在start.S中都可以用灯了调试,还有串口输出。觉得功能无比的强大了,在调试NandFlash启动时,下载到NandFlash居然一点反应都没有,这个镜像下载到nor中,功能还是无比的强大。我着实无语了,NandFlash启动不是有4k内容自动拷贝到了SRAMk中了?copy_to_ram中之前还有很多东西呀:LED,串口,都失灵了?难道是我NandFlash坏掉了。下载完全移植好的测试,是可以的。急燥了一下午,终于静下心来好好的梳理一下了。

先梳理出了,前4k中要做的工作,都用到了哪些文件。这里copy之前的流程图。

图中的文件 对应目录
start.S cpu/arm920t/start.S
lowlevel_init.S board/samsung/smdk2440/lowlevel_init.S
debug.S lib_arm/debug.S
debug-macro.S include/asm-arm/arch-s3c24x0/ debug-macro.S
smdk2440.c board/samsung/smdk2440/smdk2440.c

可见led所在的smdk2440.c在u-boot.map中远远超出了,4k的大小。等于我的start.S点亮led的时候程序就跑飞了:

这下子可算明白了,将smdk2440.o添加到/cpu/arm920t/u-boot.lds中,等于链接的时候就可以在4k里边了。同样debug.S也是一样了。程序写好了,链接不对也是白搭。后边移植了nand_cp.c同样也是要这样的。 

U-Boot源代码下载地址

相关内容