U-BOOT 的移植
时间:01-30
来源:互联网
点击:
说先在把U-BOOT- 1.1.6复制到SMB共享文件里面,然后到虚拟机里面解压他,执行命令:tar xjvf U-BOOT-1.1.6
编译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.....
更多咨询:联系人:轩老师 13663715416 QQ:1962426343
★这里是【深圳信盈达嵌入式实训学院】,单片机培训、嵌入式ARM培训、linux培训、PCB培训、FPGA培训,汇编C语言培训、Android培训、数电模电培训、cortex-m3培训!
嵌入式 单片机 ARM PCB FPGA C语言 Android 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)