x210中的uboot启动流程分析

目录

第一部分 背景介绍

一、什么是uboot?

二、为什么要有uboot

三、uboot的需要解决的问题?/uboot的作用?

第二部分 准备工作

一、代码来源

二、查看工具

第三部分 uboot结构分析

一、uboot_jiuding目录分析(位置:uboot_jiuding/)

  • 文件夹分析
  • 文件分析

第四部分 uboot工作过程

内容

一、uboot源码分析1-启动第一阶段

第一部分 背景介绍

一、什么是uboot?

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。
(1)uboot就是universal bootloader(通用启动代码),通用的意思就是在各种地方都可以用。所以说uboot具有可移植性。
(2)uboot具有可移植性并不是说uboot在哪个开发板都可以随便用,而是说uboot具有在源代码级别的移植能力,可以针对多个开发板进行移植,移植后就可以在这个开发板上使用。

二、为什么要有uboot?

首先要说明嵌入式Linux相关设备的启动流程:
嵌入式系统上电后先执行uboot,然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了)
所以要使用uboot来完成OS启动前的相关准备。(在goole这个问题的时候,看到了知乎中有网友提问“问什么不把uboot和Linux系统写在一起”,结合网友回答,主要是为了提高Linux中的代码的代码可移植性,尽量将硬件相关的代码分开来,这样就可以在内核中屏蔽掉硬件的相关配置,从而提高内核的兼容性。)

三、uboot的需要解决的问题?/uboot的作用?

1、自身可开机直接启动
2、能引导操作系统内核启动并给内核传参
3、能提供系统部署功能
4、能进行SoC级和板级硬件管理
(1)uboot中实现了一部分硬件的控制能力(uboot初始化了部分硬件),因为uboot为了实现一些任务必须让这些硬件工作,譬如uboot要实现刷机必须能驱动iNand,譬如uboot在刷机时要在LCD上显示进度条就必须能驱动LCD,譬如能通过串口提供操作界面就必须驱动串口。譬如uboot要实现网络功能,就必须驱动网卡芯片。
(2)SoC级就是SoC内部外设,板级就是SoC外开发板上的硬件(譬如网卡、iNand)

第二部分 准备工作

一、代码来源

本代码来自朱老师物联网中嵌入式核心课程中提供的九鼎的x210开发板的uboot。

二、查看工具

使用Source Insight查看代码。

第三部分 uboot结构分析(位置:uboot_jiuding/)

文件夹分析

  • api:和硬件功能无关的功能函数的API,uboot移植时基本不用管,这 些函数是uboot本身使用的。
  • api_examples:示例代码
  • board:board文件夹下每一个文件夹下都代表一个开发板,这个文件夹下就是描述这个开发板的信息。board目录下有多少个文件夹,就表示当前的uboot可以支持多少个开发板
  • common:是普遍的,这个文件夹下放的是一些与具体硬件无关的普遍
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值