zyn7000 uboot

一、u-boot 原理及实现
u-boot是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。当前,u-boot不仅支持嵌入式 Linux 系统的引导,它还支持 NetBSD、VxWorks、QNX、RTEMS、ARTOS、
LynxOS 嵌入式操作系统。u-boot 除了支持 ARM 系列的处理器外,还支持 MIPS、x86、PowerPC、XSale 等诸多常用系列的处理器。在 Zynq7000 系统中,u-boot 主要是用于引导Ubuntu 操作系统。

首先下载合适的uboot版本 , 我用的是2016-07版

二、uboot的文件结构
在uboot的文件夹下由很多子文件夹构成,其中每个文件夹都实现一个对应的功能。
1.api:相关的api函数,如输出字符函数。
2.arch:与特定的CPU架构相关的目录。在该目录下,uboot所支持的不同的CPU架构都有一个单独的子目录对应。典型的,arch文件夹下名字为arm的子目录就是Zynq7000 soc所对应的CPU架构目录。
3.board:和一些已有开发板有关的文件。每一个开发板都以一个子目录出现在当前目录下。
4.common:实现uboot命令行下所支持的命令。在该目录下,每条命令对应一个独立的文件。
5.disk:提供对磁盘的支持。
6.doc:文档目录,uboot有非常完整的文档。
7.drivers:在该目录下保存着uboot所支持的设备驱动程序。典型的如各种网卡、支持的CFI的Flash存储器,串口和USB等。
8.fs:对于Ubuntu所支持的文件系统,在该目录下面都有一个对应的文件夹。典型的,uboot现在支持cramfs,jffs2和ext4等文件系统。
9.include:该目录下保存着uboot所使用的头文件,对各种硬件平台支持的汇编文件、系统的配置文件以及对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如zynq_common.h是于zynq开发板相关的配置文件。
10.lib:该目录下保存着体系结构相关的库文件。
11.net:该目录下保存着与网络协议相关的代码。比如BOOTP协议、TFIP协议、RARP协议和NFS文件系统的实现。
12.tools: 该目录下保存着用于生成uboot的工具,包括mkimage、crc、Makefile和boards.cfg配置文件。

三、uboot工作模式
uboot的工作模式有启动加载模式和下载模式
1.启动加载模式
该模式是Bootloader的正常工作模式,嵌入式产品发布时,Bootloader必须工作在这种模式下,Bootloader将嵌入式操作系统从flash中加载到SDRAM中运行,整个过程是自动得。
2.下载模式
该模式就是Bootloader通过某些通信手段将内核映像或根文件系统映像等从PC机中下载到目标版得flash中。用户可以利用Bootloader提供的一些命令接口来完成自己想要得操作。

四、uboot启动流程
uboot启动内核的过程可以分为两个阶段,两个阶段的功能如下:
1.第一阶段功能 :
硬件设备初始化
加载uboot第二阶段代码到RAM空间
设置好栈
跳转到第二阶段代码入口
2.第二阶段的功能
初始化本阶段使用的硬件设备
检测系统内核映射
将内核从flash读取到RAM中
微内核设置启动参数
调用内核
第一阶段对应的文件是/arch/arm/cpu/armv7目录下得start.S和lowlevel_init.S文件。
第二阶段对应得文件是common/board_r.c
————————————————
版权声明:本文为CSDN博主「皮皮猪o」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43216826/article/details/106893270

从0移植uboot (二) _启动流程分析
添加链接描述

【Linux】U-Boot启动文件start.S详解(超详细讲解,上篇)
添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值