Board logo

标题: U-BOOT 的移植 [打印本页]

作者: yuyang911220    时间: 2017-6-17 11:34     标题: U-BOOT 的移植

编译U-BOOT需要采用arm-linux-gcc-3.3.2的交叉编译器

将编译器的压缩文件复制到smb的共享文件夹里面,然后采用tar xjvf 进行解压,解压后的文件需要移动到usr/local/arm里面,然后要修改编译器的环境变量:

执行vi /etc/profile,然后在里面的修改成

export PATH =/usr/local/arm/3.3.2/binPATH

修改好了以后,需要执行 source /etc/profile,可以查看编译器的版本 a

执行arm-linux-gcc –v



接下来可以进入U-BOOT-1.1.6里面进行编译,但是还需要修改一个地方,

执行:vi cpu/arm920t/config.mk然后再该目录下,把-msoft-float用#号注释掉(意思是不用软浮点进行编译)



U-BOOT没有像VIVI那样的图形配置界面,我们只能修改其中的文件进行配置,



解压U-BOOT-1.1.6,进入U-BOOT目录,修改Makefile:

每个文件都有这样的语句,意思是代表每个开发板,具体就是 开发板的名称_config

各项的意思如下:
arm: CPU的架构(ARCH)
arm920t: CPU的类型(CPU),其对应于cpu/arm920t子目录。
TX2440: 开发板的型号(BOARD),对应于board/TX2440目录。
NULL: 开发者/或经销商(vender)。
s3c24x0: 片上系统(SOC)。

在smdk2410_config :       unconfig
        @$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

加上

TQ2440_config :    unconfig
        @$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0

修改好了以后需要保存,但是这时候,是没法保存的,因为没权限,这时候,需要在虚拟机里面修改权限:

在u-boot-1.1.6目录里面 执行chmod 666 Makefile 把文件的权限修改成可以读写



指定交叉编译器的工具 在Makefile第128行里面的CROSS_COMPILE=arm-linux- 意思就是指定arm-linux-为交叉编译器



在虚拟机里面U-Boot-1.1.6的board里面新建一个自己开发板的目录TQ2440:

在U-Boot-1.1.6中进入Board目录中,把里面的一个文件,smdk2410改名成TQ2440.

进入到TQ2440中,把里面的文件 ,smdk2410.c改名成TQ2440.c

返回到Board目录。只保留TQ2440文件,其余的可以删除掉,删除方法可以这样:

把TQ2440移动上一层目录:mv TQ2440 ../

然后执行 rm – rf*,把所以得文件删除掉(注意这个命令的格式,多几个空格)

最后把上一层目录上的TQ2440移回来:mv ../ TQ2440 ./



在这个board目录中修改Makefile文件。我们可以再smb共享的文件进入到board文件中

打开Makefile。在第28行的smdk2410.o改为TX2410.o。

在修改中,会遇到没有权限修改文件,我们回到虚拟机中,修改权限:

打开TQ2440,执行:chomd 666 Makefile.

在返回去保存!



在include/configs目录下创建板子的配置头文件,把smdk2410.h改名为TQ2440.h:

首先进入到include/configs目录中,执行mv smdk2410.h TQ2440.h

然后把该目录下除了TQ2440.h,其余的都删除了。



看看配置是否成功:

回到U-Boot-1.1.6目录

执行 make TQ2440_config

当出现Configuring for TX2440 board.....表示配置以已经成功

出现make: execvp: …………/mkconfig: 权限不够

查看mkconfig的权限,发现没有可执行权限,用chmod 764 mkconfig加上权限

然后再make,成功后可出现 Configuring for TX2440 board.....




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0