做网站公司找哪家公司,建立网站团队,利用大平台做网站,中小企业网络营销的发展现状参考#xff1a;什么是U-Boot以及如何下载U-Boot源码#xff1f; 作者#xff1a;一只青木呀 发布时间#xff1a; 2020-10-20 11:05:59 网址#xff1a;https://blog.csdn.net/weixin_45309916/article/details/109176510 目录前言系统的启动过程uboot简介uboot源码下载选… 参考什么是U-Boot以及如何下载U-Boot源码 作者一只青木呀 发布时间 2020-10-20 11:05:59 网址https://blog.csdn.net/weixin_45309916/article/details/109176510 目录前言系统的启动过程uboot简介uboot源码下载选择下载方式我这里以FTP为例选择下载版本SecureCRT启动显示log前言 在上一篇中我们学习了如何进行I.MX6U 的裸机开发通过21 个裸机例程我们掌握了I.MX6U 的常用外设。通过裸机的学习我们掌握了外设的底层原理这样在以后进行Linux 驱动开发的时候就只需要将精力放到Linux 驱动框架上在进行Linux 驱动开发之前肯定需要先将Linux 系统移植到开发板上去。如果学习过UCOS/FreeRTOS 应该知道UCOS/FreeRTOS 移植就是在官方的SDK 包里面找一个和自己所使用的芯片一样的工程编译一下然后下载到开发板就可以了。那么Linux 的移植是不是也是这样的下载Linux 源码然后找个和我们所使用的芯片一样的工程编译一下就可以了很明显不是的Linux 的移植要复杂的多在移植Linux之前我们需要先移植一个bootloader 代码这个bootloader 代码用于启动Linux 内核bootloader有很多常用的就是U-Boot。
移植好U-Boot 以后再移植Linux 内核移植完Linux 内核以后Linux 还不能正常启动还需要再移植一个根文件系统(rootfs)根文件系统里面包含了一些最常用的命令和文件。所以U-Boot、Linux kernel 和rootfs 这三者一起构成了一个完整的Linux 系统一个可以正常使用、功能完善的Linux 系统。在本篇我们就来讲解 U-Boot、Linux Kernel 和rootfs 的移植与其说是“移植”倒不如说是“适配”因为大部分的移植工作都由NXP 完成了我们这里所谓的“移植”主要是使其能够在I.MX6U-ALPHA 开发板上跑起来。
在移植U-Boot 之前我们肯定要先使用一下U-Boot得先体验一下U-Boot 是个什么东西。I.MX6U-ALPHA 开发板光盘资料里面已经提供了一个正点原子团队已经移植好的U-Boot本章我们就直接编译这个移植好的U-Boot然后烧写到SD 卡里面启动启动U-Boot 以后就可以学习使用U-Boot 的命令。
系统的启动过程
Linux 系统要启动就必须需要一个 bootloader 裸机程序程序也就说芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设前面学习了I.MX6ULL是内部BOOT ROM初始化DDR的但是其他大部分ARM架构都是bootloader初始化DDR然后将Linux内核从flash(NANDNOR FLASH SD MMC 等)拷贝到 DDR 中最后启动 Linux 内核。当然了 bootloader 的实际工作要复杂的多但是它最主要的工作就是启动 Linux 内核 bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样 bootloader 就相当于 BIOS。所以我们要先搞定bootloader很庆幸有很多现成的 bootloader 软件可以使用比如 U-Boot、 vivi、 RedBoot 等等其中以 U-Boot 使用最为广泛为了方便书写本书会将 U-Boot 写为 uboot。
uboot简介
对比一下之前学习的BOOT ROM做的事情ARMIMX6U裸机之I.MX6ULL启动头文件(bin里面)的详解 类似于我们电脑X86的BIOS。 SOC厂商半导体厂商比如NXP 开发板的厂商比如正点原子 关于SOC 这个词是System on Chip的缩写意为片上系统是将CPU、GPU、内存、基带和GPS模块整合在一起的解决方案是将系统运行所需的芯片整合在一块芯片上。 我们熟知的骁龙855、苹果的A12、华为的麒麟980和三星的猎户座都是这个片上系统的代号并非单指某个CPU或是GPU相反这些片上系统内其实有自己的CPU和GPU编号。比如A12的GPU是自研的G11P骁龙855的GPU是Adreno 640。 uboot 的全称是 Universal Boot Loader uboot 是一个遵循 GPL 协议的开源软件 uboot 是一个裸机代码可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、 USB 等高级功能。 uboot 官网为 http://www.denx.de/wiki/U-Boot/ 如图所示
uboot源码下载
我们可以在 uboot 官网下载 uboot 源码点击上图中的“Source Code”打开如下图所示界面
选择下载方式我这里以FTP为例 选择下载版本 上图就是 uboot 原汁原味的源码文件目前最新的版本是 2020.10。但是我们一般不会直接用 uboot 官方的 U-Boot 源码的。 uboot 官方的 uboot 源码是给半导体厂商准备的半导体厂商会下载 uboot 官方的 uboot 源码然后将自家相应的芯片移植进去。也就是说半导体厂商会自己维护一个版本的 uboot这个版本的 uboot 相当于是他们定制的比如恩智浦。既然是定制的那么肯定对自家的芯片支持会很全虽然 uboot 官网的源码中一般也会支持他们的芯片但是绝对是没有半导体厂商自己维护的 uboot 全面。 SecureCRT启动显示log
拨码开关拨到从EMMC启动因为前面将系统烧写进了EMMC里面板子上电启动SecureCRT显示启动log信息。