基于at91rm9200的bootloader设计与实现

基于at91rm9200的bootloader设计与实现

ID:9704890

大小:62.00 KB

页数:9页

时间:2018-05-05

基于at91rm9200的bootloader设计与实现_第1页
基于at91rm9200的bootloader设计与实现_第2页
基于at91rm9200的bootloader设计与实现_第3页
基于at91rm9200的bootloader设计与实现_第4页
基于at91rm9200的bootloader设计与实现_第5页
资源描述:

《基于at91rm9200的bootloader设计与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于AT91RM9200的BootLoader设计与实现摘要:随着微电子技术和计算机技术的发展,微处理器芯片的功能越来越强大,嵌入式技术也越来越受到人们的关注。但是在嵌入式系统设计过程中,BootLoader的设计是遇到的第一个难点。本文以AT91RM9200为例,介绍BootLoader的一般实现流程以及功能更为强大的u-boot的移植。关键词:BootLoaderAT91RM9200u-boot移植嵌入式系统一、引言嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减来适应系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。随着各种微处理器功能越来越强大以及软件上操

2、作系统的支持,使得整个嵌入式系统拥有了完整构架。近年来各种嵌如式操作系统也是层出不穷以适应各种不同功能的微处理器。然而如何加载操作系统却成了大家学习嵌入式系统遇到的第一个拦路虎。这就是BootLoader,他把嵌入式硬件和嵌入式操作系统衔接起来,对于嵌入式系统后续软件的开发十分重要,在整个开发中也占有相当大的比例。BootLoader的功能是引导和加载内核镜像,是在系统复位后执行的第一段代码,BootLoader首先完成系统硬件的初始化,包括时钟的设置、存储区映射、设置堆栈指针,以及完成处理器和周边电路和设备正常运行所要的初始化工作,创建内核需要的信息并将系统的软硬件带到一个合适的状态

3、,然后跳转到操作系统内核入口,将系统控制权交给操作系统,在此之后系统的运行和BootLoader再无任何关系。u-boot是当前比较流行、功能强大的BootLoader,可以支持多种体系结构。二、BootLoader主要任务及典型结构一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程序、Linux内核、文件系统、用户应用程序。如图2.1所示BootLoader是依赖于硬件实现的,特别是在嵌入式系统中。不同的体系结构需求的BootLoader是不同的;除了体系结构,BootLoader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基

4、于相同的CPU构建,运行在其中一块电路板上的BootLoader,未必能够运行在另一块电路开发板上。BootLoader的启动过程可以是单阶段的,也可以是多阶段的。通常多阶段的BootLoader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的BootLoader大多数是二阶段的启动过程,也即启动过程可以分为stage1和stage2两部分。用户应用程序文件系统Linux内核引导加载程序图2.1依赖于CPU体系结构的代码,比如设备初始化、开关中断、初始化时钟等,通常都放在stage1中,而且都用汇编来实现,以达到短小精悍的目的。而stage2通常用C语言来实现,这样可以

5、实现较复杂的功能,而且代码有较好的可读性和可移植性。BootLoader的stage1通常包括以下步骤:(1)初始化各种模式的堆栈和寄存器。(2)初始化系统时钟、系统总线速率及一些系统常量。(3)初始化存储控制器,如FLASH和SDRAM的大小、类型、数据宽度、地址范围等(4)初始化各种I/O口和各种控制器。(5)为stage2做准备。BootLoader的stage2通常包括以下步骤:(1)初始化本阶段要使用到的硬件设备。(2)检测系统内存映射(memorymap).(3)将内核映像和根文件系统映像从flash拷贝SDRAM中。(4)为内核设置启动参数。(5)调用内核。综合起来,整个

6、BootLoader的实现流程如图2.2所示:基本硬件初始化拷贝阶段2镜像至RAM扩展功能所需硬件初始化图2.2三、BootLoader的实现u-boot是当前比较流行、功能强大的BootLoader,而且是通用的免费开放源码的BootLoader程序,可以支持多种体系结构。u-boot是由德国的工程师代码发展而来的。目前最新版本是u-boot-1.1.4。现以ATMEL公司生产的AT91RM9200为例,介绍如何在以AT91RM9200为核心处理器的最小系统上的u-boot-1.1.0的移植。本系统包括:flash:4MBsdram:32MB1.u-boot源代码目录结构(1)boa

7、rd:和一些已有开发板的文件,比如Makefile和u-boot.lds等都和具体开发板的硬件和地址分配有关。(2)mon:与体系结构无关文件,实现各种命令的C文件。(3)cpu:CPU相关文件,其中的子目录都是以u-boot所支持的CPU为名,比如有子目录arm926ejs、mips、mpc8260和nios等,每个特定的子目录中都包括cpu.c和interrupt.c,start.S。其中cpu.c初始化CPU、设置指令Cache和数据Ca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。