U-Boot移植 - 1_嵌入式Linux系统移植概述


链接: C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

1. 嵌入式Linux系统移植概述

Linux 的移植主要包括3部分:

  • 移植「bootloader 代码」, Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。 这段bootloader程序会先初始化DDR等外设, 然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。 bootloader 有很多,常用的就是 U-Boot。

    bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。

  • 移植「Linux 内核」,Linux内核由一系列程序组成,包括负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序、负责管理地址空间的内存管理程序、网络、进程间通信的系统服务程序等。内核负责管理系统的硬件设备。

  • 移植「根文件系统(rootfs)」,Linux 中的根文件系统更像是一个文件夹或者叫做目录,在这个目录里面会有很多的子目录。根目录下和子目录中会有很多的文件,这些文件是 Linux 运行所必须的,比如库、常用的软件和命令、设备文件、配置文件等等。根文件系统里面包含了一些最常用的命令和文件。

    「U-Boot、Linux kernel和rootfs」 这三者一起构成了一个完整的Linux系统,一个可以正常使用、功能完善的Linux系统。

2. 实验开发板简介

本测试使用的开发板为正点原子的的i.MX6ULL eMMC开发板

在这里插入图片描述

3. U-Boot简介

uboot 的全称是「Universal Boot Loader」,遵循 GPL 协议的开源软件。

uboot 是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持「液晶屏、网络、USB」等高级功能。uboot 官网为 https://www.denx.de/wiki/U-Boot/

在这里插入图片描述

可以在uboot官网下载uboot源码,点击左侧 Topics 中的“Source Code”,然后点击的“FTP Server” ,进入其 FTP 服务器即可看到 uboot 源码。

但我们移植uboot时一般不会直接用 uboot 官方的源码的,官方的源码是给半导体厂商准备的,半导体厂商会根据自家的芯片,维护自己芯片对应的uboot。

NXP(freescale)维护的的uboot地址: https://github.com/Freescale/u-boot-fslc

4. NXP uboot测试

uboot移植并不需要从零开始将 uboot 移植到我们现在所使用的开发板上。因为半导体厂商通常都会自己做一个开发板**「原厂开发板」**,将uboot移植到他们自己的原厂开发板上,再将这个uboot(原厂BSP 包)发布出去。

市面上的开发板,通常会参考原厂的开发板做硬件,然后在原厂提供的 BSP 包上做修改,如正点原子和野火的 I.MX6ULL 开发板参考的就 是**「NXP官方的I.MX6ULL EVK开发板」**做的硬件:

种类描述
uboot 官方的 uboot 代码由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所 有常用的芯片。
半导体厂商的 uboot 代码半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家 芯片支持上要比 uboot 官方的好。
开发板厂商的 uboot 代码开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发 板的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值