加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

u-boot 体系架构移植流程

发布时间:2021-11-25 21:12:04 所属栏目:教程 来源:互联网
导读:移植到u-boot-1.1.4 安装交叉编译工具: u-boot-1.1.4版本比较老,交叉编译工具使用eldk4.0, ELDK(Embedded Linux Development Kit)是德国DENX软件工程公司推出的嵌入式Linux开发套件,而DENX公司的CEO就是大名鼎鼎的U-Boot的维护人Wolfgang Denk。从ELDK

移植到u-boot-1.1.4
 
安装交叉编译工具:
 
u-boot-1.1.4版本比较老,交叉编译工具使用eldk4.0,
 
ELDK(Embedded Linux Development Kit)是德国DENX软件工程公司推出的嵌入式Linux开发套件,而DENX公司的CEO就是大名鼎鼎的U-Boot的维护人Wolfgang Denk。从ELDK 4.0开始,这个开发套件开始提供针对ARM和MIPS的交叉编译环境(ELDK最初只支持PPC)。
 
 
下载后,mout iso,输入如下命令安装:/media/cdrom0/install -d /opt
 
export PATH=$PATH:/opt/usr/bin/
 
export CROSS_COMPILE=/opt/usr/bin/arm-linux-
 
交叉编译工具安装完毕。
 
熟知uboot启动流程,uboot体系架构的基础之上,可以安装如下步骤移植uboot,移植的原则是u-boot-1.1.4体系架构下的原来的所有单板都不受影响。
 
移植uboot步骤:
 
1、u-boot-1.1.4/cpu/arm***/
 
根据芯片源码u-boot-s/cpu/arm***/目录下的文件,修改u-boot-1.1.4/cpu/arm***/下的文件:
 
a、config.mk基本不需要修改;
 
b、cpu.c要改,实在做不到不改动影响原来的代码时,可以加条件编译;
 
c、interrupts.c文件也要修改,注意u-boot-s中interrupts.c文件可能不是放在这个文件夹下面,可能放在/lib-arm/下面,那么可以把/lib-arm/目录下的interrupts.c搬到这个目录下;
 
d、Makefile可以不修改,需试试看,我改了。
 
e、start.s改动不多,但是最好不包含其余的文件,比如如果用不到千万不要包含common.h文件,否则很难编译通过。
 
f、添加目录$(SOC)/,添加这个目录之后,注意这个目录如何把它编译进u-boot,这是由u-boot-1.1.4/Makefile管理的,注意查看其中有这样一句:
 
ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
 
这样我们添加的目录就能够顺利编入u-boot。
 
2、u-boot-1.1.4/Makefile的修改
 
a、仔细比对两个Makefile,u-boot-s中申明的变量,只要不影响原来的u-boot-1.1.4都可以申明,uboot-s中与uboot-1.1.4中不同但是等价的写法,都直接采用u-boot-1.1.4中原来的写法,添加内容或修改内容都不能妨碍原来的代码。
 
b、添加单板_config的目标文件。
 
c、同时注意添加board下的单板文件夹时,对应的u-boot-1.1.4/Makefile中如下语句:
 
LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo
 "board/$(VENDOR)/common/lib$(VENDOR).a"; fi)
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
 
比如:可能我需要在board下添加如下文件夹board/$(VENDOR)/common和board/$(VENDOR)/$(BOARD)两个文件夹,由以上两句指定就能顺利编译进u-boot。
 
d、$(BOARDDIR)由u-boot-1.1.4/config.mk中如下语句指定:
 
ifdef VENDOR
BOARDDIR = $(VENDOR)/$(BOARD)
else
BOARDDIR = $(BOARD)
endif
 
3、添加board/$(VENDOR)/common和board/$(VENDOR)/$(BOARD)两个文件夹
 
4、添加include/asm-arm/arch-SOC/头文件目录
 
5、添加include/configs/单板.h文件
 
因为这个文件就是uboot的配置文件,非常关键,所以对每一行都要注意此行需要指定的内容,在uboot中是否也是这个写法,因为uboot不同的版本写法一样,所以一定要根据u-boot-1.1.4目标代码来修改。
 
6、其余根据gcc的提示来包含文件或者修改源码。
 
若进入start_armboot()函数,报很多函数找不到,那些函数基本上都是接口驱动函数提供的,注意将u-boot-s的相应的接口驱动添加进去,uboot顺利编译通过。

(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读