基于Intel PXA27x 的系统引导程序(Blob) 移植与实现.pdf
《基于Intel PXA27x 的系统引导程序(Blob) 移植与实现.pdf》由会员分享,可在线阅读,更多相关《基于Intel PXA27x 的系统引导程序(Blob) 移植与实现.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 基于基于 Intel PXA27x 的系统引导程序(的系统引导程序(Blob)移植与实现移植与实现 吴 涛2 张 翼1,杨 鹏3(1,2 华中科技大学软件学院,3,华中科技大学水电学院数字化工程与仿真中心,湖北武汉 430074)Email: 摘要:摘要:随着嵌入式处理器 Intel PXA27x 在各种智能终端上的推广使用,基于这款处理器的 Bootloader(Blob)的设计和移植也逐步转向实际应用。本文在分析基于 PXA27x 的 Blob 移植和启动过程关键问题的基础上,给出了为测试硬件平台而扩展 Blob 监控程序功能的一些建议,总结了成功开展类似移植的一般过程及模式,对类似
2、系统的开发有直接借鉴意义。关键词关键词:PXA27x 处理器;Blob;监控程序;移植 中图法分类号中图法分类号:TP316.81 文献标识码文献标识码:B Transplant and realization of Bootloader Object(Blob)based on PXA27x embedded systems ZHANG Yi1 WU Tao2 YANG Peng3(1,2 School of Software Engineering,3 School of Materials Science&Engineering.Huazhong University of scienc
3、e and Technology,Wuhan,China)Abstract:By the widely usage of Intels new CPU PXA27x in various kinds of smart terminals,the designing and transplanting of Blob(Bootloader Object)has already been boomed in embedded areas.This paper will focus on the booting process of Blob itself,try to provide develo
4、pers with some suggestions of expanding testing functions as well as a general model of that how to transplant it to different platforms.This can be helpful for following developers.Keywords:pxa27x processor;blob;monitor procedure;transplant 一引言 一般而言,嵌入式系统常常是针对某种特定应用的,其应用软件与操作系统一般联系成一体,系统硬件提供商所面对的往往
5、是二次开发商而不是最终用户,不清楚最终要用的是什么操作系统。为了适应由此带来的操作系统配置的多样性和灵活性,嵌入式系统一般采用的处理方式是使用 bootloader 引导程序,将它从操作系统中隔离出来。嵌入式系统采用 bootloader 程序还有以下原因,当采用 flash 或者 EPROM 存储操作系统映像时,如果让系统直接运行,运行的速度赶不上其在 RAM 中的速度,所以一般将映像读入 RAM 中再运行;操作系统的映像往往都比较大,采用压缩存储可以节省不少空间,将被压缩的映像从flash或ROM中搬运出来到RAM中解压缩后再执行也是一个通用的做法。于是,系统就需要一段在 flash 或
6、ROM 中运行,独立于操作系统的映像,并且在系统上电后可以控制上述过程的程序1。历来在嵌入式系统的设计中,bootloader 的设计都是整个工程的重点和难点,本文讨论的 Blob 最初是Erik Mouw 在 2000 年开发 LART 板的 bootloader 程序,和大多数的 bootloader 一样,它需要完成基本硬件的初始化和引导操作系统启动的工作,经过几年的发展,Blob 已经成为少数几个拥有众多适用功能和具有良好扩展性的 bootloader 之一,从其功能上看已经是小型的操作系统了。h t t p:/w w w.e l e c f a n s.c o m 电子发烧友 h t
7、 t p:/b b s.e l e c f a n s.c o m 电子技术论坛 2 二Blob 的启动过程 在介绍 blob 启动过程之前,首先来看一下嵌入式终端中 flash 各程序及映像文件存放的位置,见图 1:各段的分配如下:Blob:从 0 x0000 0000 0 x0003 8F00,共 254k 字节,存放的就是系统引导装入程序 blob。Parameters:从 0 x0003 8F00 0 x0004 0000,共 2k 字节,内核及文件系统启动时要用到的参数,如根文件系统类型,启动脚本文件名等。Kernel:从 0 x0004 0000 0 x0024 0000,共 2M
8、 字节,存放内核的映像文件。Filesystem:从 0 x0024 0000 开始的空间。为了清楚的描述 Blob 的启动过程,将其分为两个阶段,阶段一(stage 1)和阶段二(stage 2)2:阶段一主要完成的工作:基本的 GPIO 寄存器及系统时钟,外部 RAM 等基本硬件的初始化。拷贝 Blob 的第二阶段的代码及数据拷贝 到 RAM 空间中并设置好堆栈指针。跳转到阶段 2 的 C 程序入口点。阶段二主要完成的工作:初始化一些外围设备,如 CF 卡接口,USB 接口及网卡等。将内核 映像和文件系统映像从 flash 上读到 RAM 空间中。为内核设置启动参数。等待按键进入监控模式,
9、否则调用内核启动系统。启动流程简述如图 2:Blob Parameters Kernel Filesystemm 图 1 Flash 中各段存储分布图 h t t p:/w w w.e l e c f a n s.c o m 电子发烧友 h t t p:/b b s.e l e c f a n s.c o m 电子技术论坛 3 Blob 运行的第一阶段(stage1):系统上电后,CPU 从 flash 的 0 地址处中开始执行的第一条指令。检查 CPU 当前状态,屏蔽所有中断,初始化基本硬件,包括 GPIO,内存管理寄存器,硬件看门狗,系统时钟设定寄存器等。然后检测及重启内存,如果出错,则进
10、入死循环,等待重新上电。再将 Blob 第二阶段(stage 2)的代码和数据拷贝到 RAM 中,准备好堆栈,开始执行跳床程序跳去 RAM 中的相应地址处执行第二阶段的程序。Blob 运行第二阶段(stage 2):获取内核启动参数,初始化网口,USB 接口,CF 卡接口等子系统,设定串口波特率,输出打印信息,将内核及文件系统映像读入 RAM 中,初始化系统参数。然后等待键盘按键,10s 内若有键按下,则进入 Blob 的监控程序,否则跳转到内核在 RAM 中的地址,解压内核,启动操作系统。监控程序提供了很丰富的操作命令,如可以下载内核,文件系统镜像到内存,设定 blob 自身 IP 地址,查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Intel PXA27x 的系统引导程序Blob 移植与实现 基于 Intel 系统 引导 程序 Blob 移植 实现
限制150内