uboot移植一uboot架构分析

Posted liuyuchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot移植一uboot架构分析相关的知识,希望对你有一定的参考价值。

开发环境:

  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移植一uboot架构分析的主要内容,如果未能解决你的问题,请参考以下文章

一,移植uboot,分析uboot启动流程

嵌入式linux开发uboot移植——uboot工程源码目录分析

uboot配置编译源码分析

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

嵌入式linux开发uboot移植——uboot启动过程源码分析

[架构之路-27]:目标系统 - 系统软件 - bootloader uboot的方案选择移植与定制化(硬件电路板的适配)