官方标准uboot2013移植6之重定位

1.在重定位代码前加调试信息定位

1)逻辑上来说,重定位部分代码应该在DDR初始化之后和uboot第二阶段来临前之间。

2)uboot的第一阶段和第二阶段的划分并不是绝对的,唯一必须遵循的原则就是第一阶段不能大于8KB。所以uboot的第一阶段最少要完成DDR初始化和重定位,最多不能超过8KB。在满足这些条件时,第一阶段和第二阶段的接点可以随便挑。

3)找到合适的地方来写重定位代码,重定位之后远跳转到第二阶段的入口。

2.movi_bl2_:copy函数移植

1)从三星版本的uboot中赋值movi.c和movi.h到uboot2013.10中。

2)改makefile和u-boot.lds。

3.代码同步及编译

主要是crt0.S和movi.h。

4.编译中出现问题解决

1)movi.h中宏定义出错,最后在s5p_goni.h中添加了 CONFIG_EVT1这个宏解决了

2)连接错误:u-boot contains relocations other than    R_ARM_RELATIVE

在uboot下用grep "R_ARM_RELATIVE" -nR *搜索,发现Makefile中有一个检查重定位的规则,屏蔽掉这个规则后编译连接成功。

5.结果验证及下阶段展望

1)看到了uboot启动打印出来的一系列信息,但是uboot没有进入命令行。

2)这说明uboot中的DDR初始化和重定位功能都已经完美实现,后面就是第二阶段的继续移植了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值