从http://go.mentor.com/2a8qf下载最新版的Sourcery CodeBench Lite Edition for ARM GNU/Linux:CodeBench Lite 2012.03-57
下载Recommended Packages里面的IA32 GNU/Linux Installer版本。
我使用的系统是Ubuntu 12.04,64位。
下载完成后,使用终端,进入到文件所在目录,终端执行:
chmod u+x arm-2012.03-56-arm-none-eabi.bin赋予文件可执行权限,然后执行程序进行安装,命令如下:
./arm-2012.03-56-arm-none-eabi.bin
按照提示,先一步一步按<ENTER>阅读授权……等出现是否同意条款的时候,按Y回车,同意,然后选择安装方式,如下:
=============================================================================== Choose Install Set ------------------ Please choose the Install Set to be installed by this installer. ->1- Typical 2- Minimal 3- Customize... ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT :为了不再做过多的操作,我选择1,典型。
接着问是否创建快捷方式,选择4,不创建。
接着是提示产品名称(所安装的软件)、安装目录、链接目录、磁盘空间信息,按回车继续。
回车……终于开始安装了。
再回车……安装完成!
现在需要记下下面这个目录,以后会用到:
/home/[user]/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/上面的[user]根据各人装系统时填的名称不一样而不一样,以后上面这个目录将称为:编译器可执行文件目录。
下载最新版U-Boot,暂时是u-boot-2012.07.tar.bz2。我是放到home目录的qt210目录下面,然后解压,使用:
tar -xf u-boot-2012.07.tar.bz2解压,在终端进入到u-boot-2012.07目录,查看README……
在u-boot-2012.07目录下面的Makefile的167行后面加上上面所提到的编译器可执行文件目录,最后结果如下:
CROSS_COMPILE ?= /home/[user]/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/arm-none-linux-gnueabi-
(2012-9-12注:上面这一行的修改是错误的,Makefile文件里面是:
ifeq ($(HOSTARCH),$(ARCH)) CROSS_COMPILE ?= endif意思是假如主机架构和目标架构相同,则对CROSS_COMPILE赋值。如果像直接修改,不仅仅是在后面加上编译器的目录,而且要删掉前面的ifeq一行和后面的endif一行。)
(注:README上貌似不推荐这么做,README上推荐下面这种做法:
$ CROSS_COMPILE=/home/[user]/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/arm-none-linux-gnueabi- $ export CROSS_COMPILE但是这种的话,每次编译U-Boot前,都需要手动输入一次,优点是不用修改U-Boot原文件,保证原文件的可移植性。)
咱先把这个文件复制一份,命名为qt210.h用着试试先……
我们能够在u-boot-2012.07目录下面的boards.cfg文件的第250行(怎么刚好是第250行啊……)找到如下的一行:
s5pc210_universal arm armv7 universal_c210 samsung exynos复制它!粘贴到下面一行,修改为:
qt210 arm armv7 universal_c210 samsung exynos就只修改了第一个字符串而已,后面的arm armv7 exynos都对应着相应的文件,瞄了下文件……像我这样做的改动这么少,我觉得很可能最后编译的东西是不能运行的……
不过也没指望第一次旧能够正常运行,第一次编译是需要了解需要修改哪些位置,做的改动越少,编译期间出问题的概率也就越小。
因为这里用的编译器貌似和U-Boot里面使用的编译器不宜样,所以将u-boot-2012.07/arch/arm/目录下面的config.mk文件里面的:
CROSS_COMPILE ?= arm-linux-改为:
CROSS_COMPILE ?= CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/arm-none-linux-gnueabi-
终端执行一下命令配置U-Boot:
make qt210_config编译U-Boot:
make all
成功后,可以在u-boot的目录下面看到u-boot.bin文件。