uboot移植----以Exynos 4412(Cortex-A9)为例

前言:当在公司做开发时,拿到一个裸板, 上边无BootLoader, 无操作系统内核。我们首先需要做的事情是:根据板子信息(SOC、Arch、CPU、Vendor、board、参考板等),移植Uboot,继而移植linux内核。下面是以Cortex-A9为例,uboot移植的具体步骤。 

1、确定开发板信息

目的:嵌入式的系统移植就是移植BootLoader、linux内核、根文件系统。针对不同开发板所移植的linux内核和根文件系统大体相同,但针对不同开发板,uboot移植根据平台架构不同而做出不同改动。换句话说,uboot移植与平台架构紧密相关,而linux内核和根文件系统与平台结构联系不那么紧密。(这其中又引出一个问题:做系统移植可以不移植uboot吗?答案是可以的,uboot做的工作是针对不同的开发板硬件做初始化,所以开发板不同所做的硬件初始化也不同。这个过程也可以放在linux内核中对硬件做初始化,但是这样linux内核就不具有普遍性,总不能依不同开发板裁剪不同内核吧,太复杂了。)因开发板的不同,想要移植uboot到开发板上,首先要对uboot进行软件裁剪,选取合适的参考板,所以首先要确认开发板相关信息。

SOC:Exynos 4412 (查Exynos 412芯片手册可知)

Arch:ARM (查芯片手册)

CPU:Cortex-A9(芯片手册中叫的名)        armv7(uboot源码中叫的名)

Vendor:Samsung(查芯片手册)

board:fs4412(公司自定义)

参考板: origen(百度输入Exynos 4412  arm  armv7  Samsung fs4412查找)

2、确定内存划分

目的:

查看Exynos 4412芯片手册----memory map 章节  如下图(部分)所示:

主要看对应地址及大小(如 iROM、iRAM、DDR(内存)等)

Exynos 4412内存划分
Exynos 4412芯片手册--内存划分部分截图

 

3、交叉开发

目的:因为如果在开发板上编译uboot源码,由于开发板硬件(CPU等)限制,可能导致编译时间过长,所以我们要安装交叉编译工具链,使uboot源码在个人PC机上编译,在开发板上执行。在Ubuntu上用gcc直接编译的是x86架构的,不能一直到ARM开发板上。

(1)获取交叉编译工具链源码

    有以下三种途径可以获得(推荐使用第二种或者第三种

  • 网上下载源码(网址为
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值