• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
白菜侠
博客园    首页    新随笔    联系   管理    订阅  订阅

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 文件 

posted @ 2018-05-21 17:51  白菜侠  阅读(2129)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3