x-loader 用arm-eabi-4.4.3编译出错

/home/DM3730/Android_Sources/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3 -lgcc \
            -Map x-load.map -o x-load
arm-eabi-ld: internal error in relocate, at /home/jingyu/projects/gcc/android-toolchainsrc/build/../binutils/binutils-2.19/gold/arm.cc:8943

make: *** [x-load] Error 1


这个错误就算TI自己到原因,现在到x-loader需要4.4.0而不是4.4.3编译。希望对大家游帮助


x-loader相当于将6410中到mmc等,将uboot导入flash,决定uboot从何处加载。结束uboot移动后,将权限交给uboot.x-loader就启动一次就可以了

貌似上面到理解错误,x-loader是被内部固化在rom中的代码加载到内部ram中,内部ram很小不内写入大的uboot,因此引入x-loader先被加载到内部ram,x-loader启动后就初始化外部内存和一些设备,将uboot载入到大的外部ram中去。然后挑到外部ram执行内核,。。


转载:

首先来理解一下beagleboard(OMAP平台)启动的步骤和几个关键组件的作用:
参考:http://www.omappedia.org/wiki/Bootloader_Project

  1. 第一阶段启动(冷启动):上电以后,OMAP处理器会自动将片内ROM中的冷启动代码载入内建的RAM。由于内建的RAM很小(64K),因此ROM冷启动代码只会初始化内建RAM用来接收后面会提到的x-loader和必要的外设(USB,Serial(UART3), SD Card(MM1),NANDflash等,x-loader要通过这些外设导入)。ROM中的冷启动代码载入内建的RAM以后,开始按照NAND->USB->Serial->MMC的顺序在这些外设中寻找x-loader(beagleboard不支持从USB启动)。启动顺序可以通过外部管脚电平来控制,这也就是为什么按下S1键以后,beagleboard可以从MMC/SD卡启动,这是因为启动顺序换成了USB->Serial->MMC->NAND。x-loader其实是一个删减版的uboot(后面会提到,并且是取自于uboot),它的作用是初始化外部内存和其他一些周边设备,然后寻找uboot并将其载入外部内存。

  2. 第二阶段启动:这一阶段就是由已经驻扎在片内RAM中的x-loader按照上面的顺序寻找uboot并导入外部RAM,当然uboot会稍大些。当uboot驻扎入外部RAM以后,将初始化其他外围设备,并开始准备导入操作系统内核了

你可能感兴趣的:(Flash,平台)