码迷,mamicode.com
首页 > 其他好文 > 详细

一、文档目录分析

时间:2018-04-19 23:55:41      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:nios2   校验   裸机   before   nbsp   有关   pes   资源   串口   

1.1 准备工作

  解压缩:tar -xjf u-boot-1.1.6.tar.bz2 

  打补丁:patch -p1 < ../u-boot-1.1.6_jz2440.patch

 1 patching file board/100ask24x0/100ask24x0.c
 2 patching file board/100ask24x0/boot_init.c
 3 patching file board/100ask24x0/config.mk
 4 patching file board/100ask24x0/flash.c
 5 patching file board/100ask24x0/lowlevel_init.S
 6 patching file board/100ask24x0/Makefile
 7 patching file board/100ask24x0/u-boot.lds
 8 patching file board/MAI/bios_emulator/scitech/src/v86bios/lex.l
 9 patching file common/cmd_bootm.c
10 patching file common/cmd_load.c
11 patching file common/cmd_menu.c
12 patching file common/cmd_nand.c
13 patching file common/cmd_nand_legacy.c
14 patching file common/cmd_usbslave.c
15 patching file common/env_nand.c
16 patching file common/main.c
17 patching file common/Makefile
18 patching file cpu/arm920t/cpu.c
19 patching file cpu/arm920t/s3c24x0/interrupts.c
20 patching file cpu/arm920t/s3c24x0/Makefile
21 patching file cpu/arm920t/s3c24x0/nand_flash.c
22 patching file cpu/arm920t/s3c24x0/nand_flash_legacy.c
23 patching file cpu/arm920t/s3c24x0/speed.c
24 patching file cpu/arm920t/start.S
25 patching file doc/README.SBC8560
26 patching file drivers/cfi_flash.c
27 patching file drivers/dm9000x.c
28 patching file drivers/jedec_flash.c
29 patching file drivers/Makefile
30 patching file drivers/nand/nand_base.c
31 patching file drivers/nand/nand_ids.c
32 patching file drivers/nand/nand_util.c
33 patching file drivers/nand_legacy/nand_legacy.c
34 patching file drivers/usb/2440usb.h
35 patching file drivers/usb/Makefile
36 patching file drivers/usb/mrgtmp0
37 patching file drivers/usb/usb.h
38 patching file drivers/usb/usbin.c
39 patching file drivers/usb/usbin.h
40 patching file drivers/usb/usbinit.c
41 patching file drivers/usb/usbinit.h
42 patching file drivers/usb/usblib.c
43 patching file drivers/usb/usblib.h
44 patching file drivers/usb/usbmain.c
45 patching file drivers/usb/usbmain.h
46 patching file drivers/usb/usbout.c
47 patching file drivers/usb/usbout.h
48 patching file drivers/usb/usbsetup.c
49 patching file drivers/usb/usbsetup.h
50 patching file include/asm-arm/mach-types.h
51 patching file include/asm-arm/types.h
52 patching file include/asm-arm/u-boot-arm.h
53 patching file include/configs/100ask24x0.h
54 patching file include/configs/SBC8560.h
55 patching file include/def.h
56 patching file include/flash.h
57 patching file include/nand.h
58 patching file include/s3c2410.h
59 patching file include/s3c24x0.h
60 patching file include/usb.h
61 patching file lib_arm/armlinux.c
62 patching file lib_arm/board.c
63 patching file Makefile

1.2 目录结构

1.2.1 根目录下文件

  • arm_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。用于 arm 架构
  • avr32_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。用于 avr32 架构
  • blackfin_config.mk
  • CHANGELOG:修改记录文件,该文件记录了这个uboot项目的版本变迁以及每个版本较上个版本修改的记录。正式的项目都有这些记录的。可以直接忽略,主要是给维护uboot的人用的。这个是 1.1.5 之后的 changelog
  • CHANGELOG-before-U-Boot-1.1.5:修改记录文件,该文件记录了这个uboot项目的版本变迁以及每个版本较上个版本修改的记录。正式的项目都有这些记录的。可以直接忽略,主要是给维护uboot的人用的。
  • config.mk:和 arm_config.mk ,makefile 文件
  • COPYING:版权声明,uboot本身是GPL许可证的。
  • CREDITS:鸣谢,里面记录了对uboot有贡献的人,感谢目录。
  • i386_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。用于 i386 架构
  • m68k_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。用于 m68k 架构
  • MAINTAINERS:维护者,就是当前在参与维护uboot源码的社区工作者。
  • MAKEALL:一个脚本,帮助编译uboot的。
  • Makefile:是uboot源代码的主Makefile,将来整个uboot被编译时就是用这个Makefile管理编译的
  • microblaze_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。microblaze 架构使用
  • mips_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。mips 架构使用
  • mkconfig:是uboot配置阶段的主要配置脚本。uboot的可移植性很大程度就是靠这个配置脚本在维护的。
  • nios_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。nios 架构使用
  • nios2_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。nios2 架构使用
  • ppc_config.mk:后缀是.mk,是一个Makefile文件,将来在某个Makefile中会去调用它。ppc 架构使用
  • README:所有的软件都有README,一般拿到一个东西要先读README,这个东西其实就是个简单的使用说明书。
  • rules.mk:这个文件是我们uboot的Makefile使用的规则,本身非常重要,但是我们不去分析他,不去看他。

  对我们分析 uboot 代码重要的有2个:mkconfig和Makefile。一个负责uboot的配置,一个负责编译。

1.2.2 目录

  • board:board是板的意思,板就是开发板。board文件夹下每一个文件都代表一个开发板,这个文件夹下面放的文件就是用来描述这一个开发板的信息的。board目录下有多少个文件夹,就表示当前这个uboot已经被移植到多少个开发板上了(当前的uboot支持多少个开发板)。
  • common:common 是普遍的普通的,这个文件夹下放的是一些与具体硬件无关的普遍适用的一些代码。譬如控制台实现、crc校验的。但是更多的主要是两类:一类是cmd开头的,是用来实现uboot的命令系统的;另一类是env开头的,是用来实现环境变量的。
  • cpu:这个目录是SoC相关的,里面存放的代码都是SoC相关初始化和控制代码(譬如CPU的、中断的、串口等SoC内部外设的,包括起始代码start.S也在这里)。里面很多子文件夹,每一个子文件夹就是一个SoC系列。
    • 注意:这个问价是严格和硬件相关的,因此移植时也是要注意的。但是因为这个文件夹内都是SoC有关的,我们自己的开发板和三星的开发板虽然板子设计不同但是SoC都是同一个,因此实际移植时这个目录几乎不用动。
  • disk:磁盘有关的
  • doc:文档目录,里面存放了很多uboot相关文档,这些文档可以帮助我们理解uboot代码。但是因为是纯英文的,而且很杂乱,所以几乎没用。
  • drivers:顾名思义,驱动。这里面放的就是从linux源代码中扣出来的原封不动的linux设备驱动,主要是开发板上必须用到的一些驱动,如网卡驱动、Inand/SD卡、NandFlash等的驱动。要知道:uboot中的驱动其实就是linux中的驱动,uboot在一定程度上移植了linux的驱动给自己用。但是linux是操作系统而uboot只是个裸机程序,因此这种移植会有不同,其实,uboot中的驱动其实是linux中的驱动的一部分。
  • dtt:
  • examples:示例代码
  • fs:filesystem,文件系统。这个也是从linux源代码中移植过来的,用来管理Flash等资源。
  • include:头文件目录。uboot和linux kernel在管理头文件时都采用了同一个思路,就是把所有的头文件全部集中存放在include目录下,而不是头文件跟着自己对应的c文件。所以在uboot中头文件包含时路径结构要在这里去找。
  • lib_arm:架构相关的库文件。lib_arm里面就是arm架构使用的一些库文件。
  • lib_avr32:架构相关的库文件
  • lib_blackfin:架构相关的库文件
  • lib_generic:架构相关的库文件。lib_generic里是所有架构通用的库文件。
  • lib_i386:架构相关的库文件
  • lib_m68k:架构相关的库文件
  • lib_microblaze:架构相关的库文件
  • lib_mips:架构相关的库文件
  • lib_nios:架构相关的库文件
  • lib_nios2:架构相关的库文件
  • lib_ppc:架构相关的库文件
  • nand_spl:nand相关的
  • net:网络相关的代码,譬如uboot中的tftp nfs ping命令 都是在这里实现的。
  • post:不清除
  • rtc:时钟驱动
  • tools:里面是一些工具类的代码。譬如mkimage。

  文件夹里面比较重要的,后面会分析涉及到的有:board、common、cpu、drivers、include、lib_arm、lib_generic

一、文档目录分析

标签:nios2   校验   裸机   before   nbsp   有关   pes   资源   串口   

原文地址:https://www.cnblogs.com/kele-dad/p/8886383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!