编译完成之后,得到的几个重要文件是:
(1) u-boot.bin: 116K,原始二进制文件,用于下载到启动ROM进行系统引导;
(2) u-boot: 384K,ELF格式映像文件,可加载到SDRAM或SRAM中进行调试;
(3) u-boot.srec: Motorola S-Records格式映像。
(4) System.map: U-Boot映像文件的符号表,各符号的链接地址。
最有效的调试方法是下载到目标板的启动闪存,使用硬件仿真器进行跟踪调试。使用Skyeye,Qemu等软件仿真器不能达到真实的调试效果,尤其不能真实反映第一阶段的底层初始化过程,只适合作U-Boot的学习与研究之用。有人提出在没有硬件仿真器的情况下,使用“点灯大法(利用目标板的LED指示程序运行阶段)”进行跟踪调试,这实际上无异于盲人摸象,特别是在底层初始化阶段,一条指令就可能导致异常。也有人提出注释掉start.S中的lowlevel_init调用,将U-Boot映像加载到SDRAM中进行调试,这实际上只能对U-Boot进行功能调试,而无法跟踪U-Boot的底层初始化过程。当然,如果实在嫌烧写FLASH的速度较慢,又心疼其擦写寿命,也可以将U-Boot映像加载到片上SRAM中调试,因为U-Boot的开始一部分代码是位置无关的(除了后6个异常向量外,不过并不构成影响);这要求片上SRAM够大,因为U-Boot的映像大小约有300K-400K