UBOOT之重定位
Uboot为什么要重定位?
TEXT_BASE指定的是代码执行的起始地址,我们都知道UBOOT中这个值在连接脚本里指定的地址为0x33F80000,这个意思是说,U_BOOT程序中所有的代码都是基于这个基址编写的,也就说里面所有的标号啊,什么的都是基于这个地址的。
我们还知道,像mini2440的板子,你移植完U-BOOT之后,是不是要下载到norflash或者nandflash中啊,通过什么下,j-tag小板或者什么J-Link,好,假设你已经移植完了u-boot,同时把他下载到norflash中了,那么我们知道最终是要将u-boot放到SDRAM中去执行的,好了,搬移把,从norflash中将uBOOT映像搬到SDRAM中,前面已经再三强调过,U-BOOT中的代码都是基于0x33F80000地址编写的,所以你把uboot搬移到SDRAM中,也必须要搬到0x33F80000地址,uboot才能正确执行。