首页 uboot引导分析

uboot引导分析

举报
开通vip

uboot引导分析Uboot的分析: 1. 针对Uboot的结构分析 版本号的变化 2008年8月及以前,按版本号命名:u-boot-1.3.4.tar.bz2(2008年8月更新)2008年8月以后均按日期命名。目前最新版本:u-boot-2012.10.tar.bz2(更新时间15-Oct-2012 20:39 9.0M) 目录结构变化:u-boot目录结构主要经历过2次变化,u-boot版本第一次从u-boot-1.3.2开始发生变化,主要增加了api的内容;变化最大的是第二次,从2010.6版本开始。 u-boot-2010...

uboot引导分析
Uboot的分析: 1. 针对Uboot的结构分析 版本号的变化 2008年8月及以前,按版本号命名:u-boot-1.3.4.tar.bz2(2008年8月更新)2008年8月以后均按日期命名。目前最新版本:u-boot-2012.10.tar.bz2(更新时间15-Oct-2012 20:39 9.0M) 目录结构变化:u-boot目录结构主要经历过2次变化,u-boot版本第一次从u-boot-1.3.2开始发生变化,主要增加了api的内容;变化最大的是第二次,从2010.6版本开始。 u-boot-2010.03及以前版本的目录结构: ├── api 存放uboot提供的接口函数 ├── board 根据不同开发板定制的代码,代码也不少 ├── common 通用的代码,涵盖各个方面,已命令行处理为主 ├── cpu 与体系结构相关的代码,uboot的重头戏 ├── disk 磁盘分区相关代码 ├── doc 文档,一堆README开头的文件 ├── drivers 驱动,很丰富,每种类型的设备驱动占用一个子目录 ├── examples 示例程序 ├── fs 文件系统,支持嵌入式开发板常见的文件系统 ├── include 头文件,已通用的头文件为主 ├── lib_【arch】 与体系结构相关的通用库文件(10个文件,支持10种处理器架构) ├── nand_spl NAND存储器相关代码 ├── net 网络相关代码,小型的 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 栈 ├── onenand_ipl ├── post 加电自检程序 └── tools 辅助程序,用于编译和检查uboot目标文件 从u-boot-2010.06版本开始把体系结构相关的内容合并,原先的cpu与lib_arch内容全部纳入arch中,并且其中增加inlcude文件夹;分离出通用库文件lib。 u-boot-2010.06及以后版本 ├── api 存放uboot提供的接口函数 ├── arch 与体系结构相关的代码,uboot的重头戏 ├── board 根据不同开发板定制的代码,代码也不少 ├── common 通用的代码,涵盖各个方面,已命令行处理为主 ├── disk 磁盘分区相关代码 ├── doc 文档,一堆README开头的文件 ├── drivers 驱动,很丰富,每种类型的设备驱动占用一个子目录 ├── examples 示例程序 ├── fs 文件系统,支持嵌入式开发板常见的文件系统 ├── include 头文件,已通用的头文件为主 ├── lib 通用库文件 ├── nand_spl NAND存储器相关代码 ├── net 网络相关代码,小型的协议栈 ├── onenand_ipl ├── post 加电自检程序 └── tools 辅助程序,用于编译和检查uboot目标文件 移植工作最主要的是看对应的处理器和开发板代码,2010.06版本以后处理器相关的代码集中在arch、board目录。(以前版本主要在cpu和board目录) |--arch\   |--arm\     |--cpu\ 子目录对应一种处理器的不同产品型号或者系列;       |--arm720t\       |--arm920t\         |--a320\         |--at91\         |...         |--s3c24x0\           |--interrupts.c           |--speed.c           |--timer.c           |--usb.c           |--usb_ohci.c           |--usb_ohci.h         |--Makefile         |--cpu.c         |--interrupts.c         |--start.S <==整个bootloader入口点         |--u-boot.lds <==链接脚本         |--Makefile   |--config.mk     |--include\ 子目录是处理器用到的头文件;        |--asm\          |--arch-a320\          |...          |--arch_s3c24x0\             |--memory.h             |--s3c2400.h             |--s3c2410.h             |--s3c24x0_cpu.h             |--s3c24x0.h          |...          |--proc-armv\(公用)           |--atomic.h          |--bitops.h          |--byteorder.h          |--cache.h          |--... (等共24个.h公用头文件)     |--lib\ 目录对应用到处理器公用的代码;       |--board.c       |--config.mk       |--... (等共16个文件) |--board\   |--ppmc7xx\   |...   |--samsung\       |--goni\       |--smdk2400\       |--smdk2410\           |--smdk2410.c           |--flash.c           |--lowlevel_init.S           |--config.mk           |--Makefile           |--nand_read.c           |--nand_read_save.c   |... drivers/i2c/s3c24x0_i2c.c     /mtd/nand/nand_base.c     /mtd/nand/nand_util.c     /mtd/nand/s3c2410_nand.c     /net/dm9000x.c     /video/cfb_console_2.c     /video/cfb_console.c     /video/Makefile     /video/s3c2410_fb.c     /video/videomodes.c     /video/videomodes.h     /configs/fl2440.h     /linux/mtd/mtd.h     /serial.h common/cmd_nand.c     /serial.c board.cfg    Makefile 2. 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 分析、 .globl _start是定义uboot的启动入口点。 .global是GNU ARM汇编的一个伪操作,声明一个符号可被其他文档引用,相当于声明了一个全局变量,.globl和.global相同。该部分为处理器的异常处理向量 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。地址范围为0x0000 0000 ~ 0x0000 0020,刚好8条指令。 中断向量表 .globl _start _start:    b    start_code     ldr    pc, _undefined_instruction     ldr    pc, _software_interrupt     ldr    pc, _prefetch_abort     ldr    pc, _data_abort     ldr    pc, _not_used     ldr    pc, _irq         ldr    pc, _fiq 针对具体的CPU,首先要了解处理器上电后的第一条指令所放的位置,处理器规定了中断向量表的位置。在lds文件中指定了在链接时的入口和各个程序的位置。         汇编指令b是跳转,中断向量表是一个地址列表,每一个32位即4字节对应一种异常的入口,通过代码向各个入口地址中指定异常处理程序的具体位置。 _undefined_instruction:    .word undefined_instruction _software_interrupt:    .word software_interrupt _prefetch_abort:    .word prefetch_abort _data_abort:        .word data_abort _not_used:        .word not_used _irq:            .word irq _fiq:            .word fiq     .balignl 16,0xdeadbeef _undefined_instruction:    .word undefined_instruction是将undefined_instruction赋给_undefined_instruction,是word类型的,占4字节。 关于在复位时使用b进行跳转,和异常的ldr指令。 B是跳转指令,它只执行跳转动作,跳转到指令中目标地址。Ldr是字数据读取指令,该指令用于从内存中将一个32位的字读取到指令中的目标寄存器中。 这两个指令的使用和MMU的关系, MMU是内存管理单元,在系统复位后MMU是还没有启动的,这时候虚拟地址就等同于物理地址。 3. 文档已经阅读完毕,请返回上一页!
本文档为【uboot引导分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-19
浏览量:18