碧波液压网 欢迎你,游客。 登录 注册

基于IntelPXA270的Blob启动流程分析

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引 言

  对于PC的体系结构,其开机后的初始化处理器配置、硬件初始化、启动操作系统等操作是由BIOS(Basic Input/Output SysteIn)和位于硬盘MBR(Master Bool Record)中的系统导引程序(如LILO和GRUB等)一起完成的。

  但在嵌入式系统中,主要使用FLASH作为系统存储媒质,而很少使用磁盘,因此整个系统的加载启动任务就完全由引导程序(Bootloader )来完成。Bootloader 主要完成的功能有:装载(load)和启动(boot)。Bootloader 依赖于实际的硬件和应用环境,因此要为嵌入式系统建立一个通用、标准的Bootloader是非常困难的,通常都需要修改Boot-loader的源程序来完成对特定平台的移植。Blob是一款优秀的Bootloader程序,对其源程序进行修改之后可以很容易移植到XScale体系的。Intel PXA270平台上.本文基于Intel PXA270开发平台.分析Blob的启动流程。

  2 Blob及实验平台简介

  Blob(Boot Loadel Object)是一款功能强大的BOOtloader。他遵循GPL,源代码完全开放。Blob既可以用来简单的调试,也可以启动Linux kernel。Blob最初是JanDerk Bakker和Erik Mouw为一块名为LART(Linux Advanced Radio Terminal)的板子写的,该板使用的处理器就是Intel公司的Strong ARM SA-1100,所以很容易把Blob移植到ARM,XScale等体系结构的处理器上,如PXA270。

  开发平台的主要配置为:

  (1)基于Intel XScale架构内核的嵌入式处理器PXA270,内部集成IWMMX指令,加快处理器对多媒体数据的处理速度。

  (2)系统稳定工作在520 MHz主频。

  (3)64 MB SDRAM,16 MB Nor FLASH,64 MBNand FLASH。

  (4)JTAG接口。

  (5)2个标准RS 232标准串口。

  (6)2个LED灯。

  3启动流程分析

  Blob的启动过程分为两个阶段:stagel和stage2。

  3.1 Blob的第一阶段(stagel)

  系统加电复位后,几乎所有的CPU都从复位地址上取指令,Blob第一阶段的代码就是从0x00000000开始的。Stagel主要完成了两个任务:硬件初始化和复制stage2到内存并运行。其流程如图1所示。

  

  3.1.1基本的硬件初始化

  硬件初始化是Blob一开始就执行的操作,其目的是为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境。他通常包括以下步骤:

  (1)屏蔽所有的中断。为中断提供服务通常是OS设备驱动程序的责任,因此在Boot Loader的执行全过程中可以不必响应任何中断。中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器(比如ARM的CPSR寄存器)来完成。

  (2)设置CPU的速度和时钟频率。

  (3)存储器初始化。配置存储器等信息,包括I/O口,SDRAM控制器及各Bank存储模式等。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论