ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

3-Uboot源码目录分析

2022-05-21 22:01:47  阅读:123  来源: 互联网

标签:文件 uboot lib 代码 目录 编译 文件夹 Uboot 源码


1、cpu

    本文件夹下的子文件与处理器相关,每个文件夹代表一种CPU系列。每个子目录中都包括cpu.c、interrupts.c、start.S文件。

    cpu.c主要用于初始化CPU、设置指令Cache和数据Cache等

    interrupt.c主要用于设置系统的各种中断和异常

    start.S是U-boot启动时执行的第一个文件,主要做最早期的系统初始化,代码重定向和设置系统堆栈,为进入U-boot第二阶段的C程序奠定基础。

    S5PV210芯片对应的文件夹是s5pc11x。
    cpu/s5pc11x/s5pc110/cpu_init.S主要用于SDRAM内存的初始化设置。 
2、board 本文件下的子文件与开发板相关,每一个子文件代表一个芯片厂家,芯片厂家文件夹下存放的每一个子文件夹是一种开发板,

由于历史原因,board目录下尚保留有大量的开发板文件夹没有归档到芯片厂家文件夹内,保持兼容性,因此整体显得比较混乱。

如samsung的smdk2400、smdk2410开发板就位于samsung文件夹外。
    S5PV210芯片对应的文件夹位于board/samsung/smdkc110,文件夹内的lowlevel_init.S文件主要用于时钟、串口、MMU、Flash底层驱动、板级初始化,

u-boot.lds文件是链接脚本文件,对于工程项目编译后期的链接阶段非常重要,决定了程序的组装。 3、common     本文件夹下存放与处理器体系结构无关的通用代码,uboot的命令解析代码/common/command.c、

所有命令的上层代码cmd_*.c、uboot环境变量处理代码env_*.c、CRC校验等都位于本目录下。  4、drivers     本目录下存放所有外围芯片的驱动,网卡、USB、串口、LCD、Nand Flash等。 5、disk     本目录存放于磁盘驱动的分区处理代码 6、fs     本目录下存放文件系统相关的代码,每一个子文件夹代表一种文件系统。  7、net     本目录下存放于网络协议相关的代码  8、doc     本目录下存放uboot的说明文档。 9、api、api_examples、examples     外部扩展程序的API和示例  10、include     头文件,包括各种CPU的寄存器定义,文件系统、网络等等     configs子目录下的文件是与目标板相关的配置头文件 11、lib_xxx     lib_arm、lib_avr32、lib_blackfin、lib_generic、lib_i386、lib_m68k、lib_microblaze、

lib_mips、lib_nios、lib_nios2、lib_ppc、lib_sh、lib_sparc 每一个文件夹代表一种CPU体系架构。与S5PV210相关的文件夹有lib_arm、lib_generic,lib_generic目录,

   存放的是各CPU体系架构通用的加密算法、压缩算法、字符处理相关代码。

在每一种CPU体系架构文件夹内都存在board.c,是uboot启动第二阶段代码入口函数和相关初始化函数存放的地方。 12、libfdt     本目录下存放的是设备数相关的代码。 13、tools     编译S-Record或uboot映像等相关工具,如制作bootm引导的内核映像文件工具mkimage源码。  14、post     上电自检相关代码  15、nand_spl、onenand_bl1、onenand_ipl     Nand、onenand启动相关的代码。  16、sd_fusing 本目录下存放的是烧录相关的工具代码  17、工程编译配置文件     Makefile、MAKEALL、config.mk、rules.mk、mkconfig     控制工程编译过程的主Makefile文件和规则文件     config.mk文件内的TEXT_BASE指定了代码在内存中的地址。 18、版本、版权说明文件         CHANGELOG、CHANGELOG-before-U-Boot-1.1.5、COPYING、CREDITS、MAINTAINERS、README、Changelog_Samsung。

 关于uboot源码部分修改的时候有几点需要注意的:

  1、uboot会使用一些编译后才生成的文件,修改使用uboot时,先编译一遍再使用;

  2、arch/arm/cpu/u-boot是整个uboot的链接脚本;

  3、board/freescale 记录一些板载文件,是重要的;

  4、移植uboot时重点关注board/freescale与config配置,不同板子是不同的;

  5、当执行 make xxx_defconfig 后会生成 .config 文件,该文件保存着详细的配置信息,后面编译uboot 时会根据该文件的配置编译;

  6、顶层的 README 文件主要是介绍 uboot 的,建议有空阅读;

  7、u-boot 文件是编译出来的 ELF 格式的uboot镜像文件,

    u-boot.bin 文件是编译出来的二进制的 uboot 可执行文件,

    u-boot.cfg 文件是uboot的另一种配置文件,

    u-boot.map 是映射文件。

一些主要的要主要的文件夹说明:

  1、arch:与架构有关的代码;

  2、board:板载信息;

  3、config:Uboot的默认配置文件目录,都是以 *_defconfig 结尾的,这些配置文件对于不同的板子,编译时要先编译一遍对于的板子的配置文件。

标签:文件,uboot,lib,代码,目录,编译,文件夹,Uboot,源码
来源: https://www.cnblogs.com/xingboy/p/16292207.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有