uboot移植一uboot架构分析

liuyuchun liuyuchun     2022-11-15     403

关键词:

开发环境:

  1 .开发板mini2440

  2. u-boot-2010.12

参考i资料:https://blog.csdn.net/androidbbc/article/details/50961163

      http://www.cnblogs.com/kele-dad/p/8969174.html

一、下载u-boot- 2010.12,并且解压

二、分析u-boor-2010.12

技术分享图片

api:      存放uboot提供的接口函数

config.mk:   根据不同开发板定制的代码,代码也不少

drivers:    驱动,很丰富,每种类型的设备驱动占用一个子目录

MAINTAINERS:

net:      网络相关代码,小型的协议栈

snapshot.commit

arch      与体系结构相关的代码,uboot的重头戏

COPYING

examples    示例程序

MAKEALL

onenand_ipl

tools      辅助程序,用于编译和检查uboot目标文件
board       根据不同开发板定制的代码,代码也不少

CREDITS

fs       文件系统,支持嵌入式开发板常见的文件系统

Makefile

post      加电自检程序

boards.cfg

disk      磁盘分区相关代码

include    头文件,已通用的头文件为主

mkconfig

README
common     通用的代码,涵盖各个方面,已命令行处理为主

doc      文档,一堆README开头的文件

lib        通用库文件

nand_spl    NAND存储器相关代码

rules.mk

> 移植的主要相关的目录为arch、board目录

arm目录

技术分享图片

cpu arm920t目录:

技术分享图片

vi u-boot.lds  

技术分享图片

可以看到第一个执行的程序是start.s

>cd board/samsung/smdk2410/   进入和单板相关的目录

技术分享图片

lowlevel_init.s :和内存控制初始化相关的函数

smdk2410.c是和单板初始化相关的函数

 

三、分析u-boot编译流程

一般我们编译u-boot的流程为:

1. 配置 make xxx_config

2. 编译 make

> make xxx_config 分析

当这个命令执行时,它会根据 kconfig 及 xx_defconfig 来生成 .config 文件

  • Makefiles 有 5 个部分:
    • Makefile:顶层 Makefile,提供针对各种目标的接口,一般和实现无关。当我们要针对某个目标进行分析时,作为起点,总是尝试在此文件中找到对应的目标定义,然后沿着该定义深入挖掘。
    • .config:uboot 配置文件,如果是内核,就是内核的配置文件,在配置 uboot时候生成,所有的 Makefile 文件(包括顶层目录及各级子目录)都是根据 .config 来决定使用哪些文件。
    • arch/$(ARCH)/Makefile:平台相关 Makefile,提供针对不同架构的目标,变量和规则定义。文件位置比较固定
    • scripts/Makefile.*:Makefile 共用的通用规则、脚本等
    • kbuild Makefiles:各级子目录下的  Makefile,相对简单,被上一层 Makefile 调用来编译当前目录下的文件。

  顶层 Makefiles 读取从uboot 配置程序中生成的 .config 文件 



uboot配置编译源码分析

一、X210官方uboot配置编译实践1、找到官方移植好的uboot(BSP概念)(1)源头的源代码是uboot官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的SoC对应的移植版本。(2)SoC厂商在推出一... 查看详情

uboot移植之九鼎提供的uboot的文件夹分析

...到的一些函数,这些函数都是硬件无关的,所以和我们的移植没多大关系(2)api_examples:api的示例代码(3)board:开发板相关的文件夹,这个文件夹里面存放的一个文件夹对应一款开发板或者是一个芯片厂商。我们在config配置... 查看详情

uboot移植之start_armboot()函数分析

/********************************uboot的第二阶段就是初始化剩下的还没在第一阶段初始化的硬件。主要是SoC外部硬件(譬如iNand网卡芯片.......)uboot本身的一些东西(uboot的命令环境变量等.....)。然后最终初始化完必要的东西后进入到u... 查看详情

uboot源码分析

...方的这份为对照。(2)不同版本的uboot或者同一版本不同人移植的uboot,可能目录结构和文件内容都有所不同。将来大家懂了后也可以自己根据需要去添加/删除/更改目录结构。(3)九鼎在以三星的uboot为原材料进行移植时,把三星版... 查看详情

1uboot移植和imx文件分析

 本系列使用的平台为百问网IMX6ULL,通过对NXP提供uboot的分析和修改,使其支持百问网IMX6ULL本系列参考了正点原子和百问网的IMX6ULL教程,在此表示衷心感谢本章参考文件有:《i.MX6BSPPortingGuide》、《ARMv7架构参考手册》百度网... 查看详情

uboot移植之九鼎提供的uboot的文件分析

文件分析(1).gitignore:git管理工具相关的文件。(2)arm_config.mk:一个Makefile文件,将来会被Makefile里面的某句代码调用。(3)CHANGELOG、Changelog_Samsung、CHANGELOG-before-U-Boot-1.1.5:三个CHANELOG文件,其实就是该版本的uboot的变迁记录... 查看详情

嵌入式linux核心课程2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解

《2.uboot和系统移植-第4部分-2.4.uboot配置和编译过程详解》第一部分、章节目录2.4.1.uboot主Makefile分析12.4.2.uboot主Makefile分析22.4.3.uboot主Makefile分析32.4.4.uboot主Makefile分析42.4.5.uboot主Makefile分析52.4.6.uboot主Makefile分析62.4.7.uboot配置过程... 查看详情

uboot移植之主makefile分析

1:#uboot的版本号VERSION   =1            #主版本号PATCHLEVEL =3         #次版本号SUBLEVE 查看详情

从0移植uboot_启动流程分析(代码片段)

来源:Linux社区 作者:xiaojiang1025 : http://www.linuxidc.com/Linux/2017-02/141019.htm 经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求... 查看详情

从0移植uboot_配置分析(代码片段)

来源:Linux社区 作者:xiaojiang1025 :http://www.linuxidc.com/Linux/2017-02/141018.htm 和绝大多数源码编译安装一样,uboot的编译流程也类似于"makeconfig->make->makeinstall"**三步,只是由于uboot本身是针对多种平台的bootloader,软件... 查看详情

uboot移植之start.s分析

uboot的函数入口要查看链接脚本中ENTTRY的入口参数,我们这里的链接脚本在board/samsung/x210/u-boot.lds,这个文件里面的开头有一句ENTRY(_start),所以uboot的入口就是在_start这个标识的地方。 * Base codes by scsuh (sc.su... 查看详情

uboot移植之uboot命令体系解析

1:回归到main_loop   uboot启动第二阶段的最后,进入死循环main_loop()函数,命令行中没输出一次命令,就会执行一次main_loop函数,完成一次命令的获取、解析和执行。2:uboot命令体系的实现原理    uboot中... 查看详情

uboot移植:移植前的准备工作

一:uboot的来源    uboot的获取途径一般有三种,一种是uboot官方提供的这uboot,这里面是针对多种开发板和芯片的uboot代码,是全球各地上传,然后由uboot官方提供的,因为它里面包含了很多种开发板的uboot,所以文... 查看详情

图像识别dm8127开发攻略——uboot的移植说明(代码片段)

图像识别DM8127开发攻略——UBOOT的移植说明根据前几篇文章的介绍,想必大家对DM8127软件架构有了全局的认识,下面我们从开发的角度进行裁剪移植最基本的BOOT软件包,嵌入式开发人员拿到一个新的板子,就是要如何让板子能跑... 查看详情

基于335x平台的uboot中交换芯片驱动移植

基于335X平台的UBOOT中交换芯片驱动移植 一、软硬件平台资料 1、开发板:创龙AM3359核心板,网口采用RMII形式。2、UBOOT版本:U-Boot-2016.05,采用FDT和DM。3、交换芯片MARVELL的88E6321.4、参考文章:本博客基于335X的UBOOT网口驱动... 查看详情

linux学习:uboot移植

U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: 1)第一阶段的功能硬件设备初始化加载U-Boot第二阶段代码到RAM空间设置好栈跳转到第二阶段代码入口 2)第二阶段的功能初始化本阶段使用的硬件设备检测... 查看详情

uboot之初体验

...xff0c;这种方式下载的源代码可能没有针对于当前开发板的移植,也可以从soc厂商提供的地址下载,这种方式一般是针对这个Soc已经移植过的uboot,还可以从开发板供应商处获得uboot,这种方式的uboot移植的更加彻底... 查看详情

uboot中rtc顶层分析

...要求开启rtc,只是还是支持rtc以备特殊需求的。底层驱动移植前面两篇已经介绍。这里介绍顶层的调用过程。顶层在uboot/common/cmd_date.c/**(C)Copyright2001*WolfgangDenk,DENXSoftwareEngineering,[email protected]**SeefileCREDITSforlistofpeoplewho 查看详情