天天看點

u-boot在nandflash中的前4k内容分析

原文:

在NorFlash中移植了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同樣也是要這樣的。