- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
5.1Bootloader简介;通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式系统。在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。也有可同时支持多种体系的BootLoader,如U-Boot、vivi、blob、armboot等BootLoader,但也需要根据嵌入式板级硬件设备的配置对BootLoader作一定的修改才能使用。
;二、Bootloader的程序结构;Stage2是BootLoader的主代码,为了实现更加复杂的功能,使代码具有更好的可读性和可移植性,通常由C语言来实现,主要用来加载操作系统内核。完成以下功能:;5.2Bootloader的操作模式;5.3常用嵌入式Bootloader介绍;第二阶段的代码在vivi\init\main.c中,主要进行一些开发板初始化、内存映射和内存管理单元初始化等工作,最后会跳转到boot_or_vivi()函数中,接收命令并进行处理。需要注意的是在Flash中执行完内存映射后,会将vivi代码拷贝到SDRAM中执行。;Vivi主要包括下面几个目录:
arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c2410目录。
drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。
init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。
;lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。
include:头文件的公共目录,其中的s3c2410.h定义了这块处理器的一些寄存器。Platform/smdk2410.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。
;二、U-Boot
;U-Boot源码结构
board:和一些已有开发板有关的文件,比如Makefile
和U-Boot.lds等都和具体开发板的硬件和地址分配有关。
common:与体系结构无关的文件,实现各种命令的C;cpu:CPU相关文件,其中的子目录都是以U-BOOT所支持的CPU为名,比如有子目录arm926ejs、mips、mpc8260和nios等,每个特定的子目录中都包括cpu.c和interrupt.c,start.S。
其中cpu.c初始化CPU、设置指令Cache和数据Cache等;
interrupt.c设置系统的各种中断和异常,比如快速中断、开关中断、时钟中断、软件中断、预取中止和未??义指令等;
start.S是U-BOOT启动时执行的第一个文件,它主要是设置系统堆栈和工作方式,为进入C程序奠定基础。
;fs:支持文件系统的文件,U-BOOT现在支持cramfs、fat、fdos、jffs2和registerfs。
include:头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。
net:与网络有关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。
lib_arm:与ARM体系结构相关的代码。
tools:创建S-Record格式文件和U-BOOTimages的工具。
;一、堆栈初始化;三、设定特殊寄存器;五、内存初始化;六、建立中断向量表;7、系统重新映射;Stage1部分代码实现以下功能;Stage2部分代码实现以下功能;Reset_Handler:?/*上电后跳转到此处开始执行*/
???Ldr?r0,=WTCON?/*禁止看门狗*/
???ldr????r1,=0x0
???str????r1,[r0]
???ldr????r0,=INTMSK???/*屏蔽所有中断请求*/
???ldr????r1,=0x07ffffff
???str????r1,[r0]
?/*设置时钟控制寄存器*/
???ldr??r0,=LOCKTIME
???ldr??r1,=0xfff
???str??r1,[r0]
.ifPLLONSTART
?ldr??r0,=PLLCON???/*设置PLL*/
?ldr??r1,=((M_DIV12)+(P_DIV4)+S_DIV)?/*Fin=8MHz,Fout=64MHz*/
?str??r1,[r0]
.endif
???ldr????r0,=CLKCON?
???ldr????r1,=0x7ff8?????/*
您可能关注的文档
- bop除盐水系统油漆方案-en1版合并.pdf
- 通信原理大综合课件高频全.pdf
- 如何做一个优秀的部门经理.pptx
- 新版新版高层建筑施工.pptx
- 团体沟通专业知识.pptx
- 学生干部的语言沟通艺术.pptx
- 四章节集中趋势测量法.pptx
- 土地规模化经营的思考.pptx
- 作文指导古风的语言省公开课获奖课件市赛课比赛一等奖课件.pptx
- 医用吊塔国产.ppt
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)