三、uboot分析
来源:互联网 发布:svd降维算法步骤 编辑:程序博客网 时间:2024/06/06 04:11
一、U-Boot源码目录结构
uboot目录下可以分为3类。
第1类目录与处理器体系结构或者开发板硬件直接相关;
第2类目录是一些通用的函数或者驱动程序;
第3类目录是u-boot的应用程序、工具或者文档。
u-boot-2010.03及以前版本
从u-boot-2010.06版本开始把体系结构相关的内容合并,原先的cpu与lib_arch内容全部纳入arch中,并且其中增加inlcude文件夹;分离出通用库文件lib。
移植工作最主要的是看对应的处理器和开发板代码,2010.06版本以后处理器相关的代码集中在arch、board目录。(以前版本主要在cpu和board目录)
先看一下arch目录:
arch
├── arm
├── avr32
├── blackfin
├── i386
├── m68k
├── microblaze
├── mips
├── nios2
├── powerpc
├── sh
└── sparc
arch目录内容比以前的版本干净,每个子目录代表一个处理器类型,子目录名称就是处理器的类型名称。参考一下arch/mips目录:
arch/mips
├── cpu
├── include
└── lib
arch/mips目录下有三个目录,其他的处理器目录下也是这个结构:
cpu子目录对应一种处理器的不同产品型号或者系列;
include子目录是处理器用到的头文件;
lib目录对应用到处理器公用的代码;
下面看看cpu下的内容,arch/mips/cpu目录下的内容:
arch/mips/cpu
├── asc_serial.c
├── asc_serial.h
├── au1x00_eth.c
├── au1x00_serial.c
├── au1x00_usb_ohci.c
├── au1x00_usb_ohci.h
├── cache.S
├── config.mk
├── cpu.c
├── incaip_clock.c
├── incaip_wdt.S
├── interrupts.c
├── Makefile
└── start.S 整个uboot代码入口点
目前2011.6版本开始中cpu目录中建立mips32目录,把incaip和au1x00也分类放在不同的目录中。
u-boot.lds是ld程序也就是连接器的脚本文件,这个文件描述了如何连接目标文件,ld程序会根据这个文件的指示按照需求把不同的目标文件连接在一起生成供烧写到开发板的程序。该文件放在board对应的目录中。
二、启动工程
1、stage1:cpu/arm920t/start.s 完成硬件初始化
设置CPU工作模式
关看门狗
设置系统时钟
关MMU,CACHE
为第二阶段准备RAM空间(调用board/smdk2410/lowlevel_init.s)
设置堆栈
跳转到第二阶段代码的C入口点 (lib_arm/board.c start_armboot( ) )
2、stage2:lib_arm/board.c中的start_armboot函数
init_sequence:初始化CPU,设置系统时钟,初始化定时器,初始化环境参数,初始化串口控制台,检测内存映射
flash_init: 初始化NORFLASH
env_relocate: 初始化环境变量
初始化系统外围设备
最后调用main_loop (common/main.c)
- 三、uboot分析
- Uboot运行分析(三) .
- 四极管:Uboot运行分析(三)
- UBOOT之board.c分析(三)
- uboot启动流程分析之三
- uboot分析
- Uboot分析
- uboot分析
- uboot分析
- uboot分析
- uboot分析
- uboot分析
- uboot分析
- Uboot分析
- UBOOT分析
- uboot系列之-----顶层Makefile分析(三)
- 嵌入式linux开发uboot移植(三)——uboot启动过程源码分析
- uboot 之uboot.lds分析
- 第四届蓝桥杯C/C++B组第五题
- 扒一扒这个数据挖掘行业
- 用PHP程序给图片添加水印
- 在Visual Studio中使用MonoTouch开发iOS应用程序
- sicily 1087. A Funny Game
- 三、uboot分析
- OERR: ORA 1652 unable to extend temp segment by %s in tablespace %s [ID 19047.1]
- Date/Calendar/时区
- js中2个等号与3个等号的区别
- 成为黑马程序员的第一步 、
- PDFLib 4.0.1 Serial Number Keygen for All Versions
- 数位DP——HDU 3652 B-number
- 一个在线的linux系统
- 自控力 笔记2 意志力的本能:人生来就能抵制奶酪蛋糕的诱惑