bootloader移植毕业设计开题报告.doc_第1页
bootloader移植毕业设计开题报告.doc_第2页
bootloader移植毕业设计开题报告.doc_第3页
bootloader移植毕业设计开题报告.doc_第4页
bootloader移植毕业设计开题报告.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东科技大学本科毕业设计(论文)开题报告题 目 基于S3C2440 bootloader的设计与实现系部名称 信息工程系 专业班级 学生姓名 学 号 指导教师 填表时间: 2011年 5 月 1 日设计(论文)题目基于S3C2440 bootloader的设计与实现设计(论文)类型工程设计应用研究开发研究基础研究其它一、课题目的和意义嵌入式操作系统在嵌入式软件开发中占的重要性越来越大。而且在嵌入式操作系统中,Boot Loader则是一个不可或缺的话题,无论是Windows CE还是嵌入式Linux,或者是其他的嵌入式操作系统。大多数都需要Boot Loader来加载操作系统。当我们面对一块裸板,想要在上面运行一个嵌入式操作系统,那么我们第一件要来处理的事情就是移植和该操作系统相对应的Boot Loader。而在嵌入式开发中,通常会在Boot Loader上消耗大量的时间人力和物力。所以,对BootLoader的研究与学习显得更加重要。第 7 页二、文献综述(课题的应用背景和前景)随着各种微处理器功能越来越强大以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整构架。近年来各种嵌如式操作系统也是层出不穷以适应各种不同功能的微处理器。然而如何加载操作系统却成了大家嵌入式系统遇到的第一个拦路虎。这就是BootLoader,他把嵌入式硬件和嵌入式操作系统衔接起来,对于嵌入式系统后续软件的开发十分重要,在整个开发中也占有相当大的比例。现在bootloader的设计有两种趋势,一种是针对特定应用,有特殊要求,也就是“专用”。那么设计时,不需要过多的配置,只需要简单的完成引导内核的功能就可以了。二是普通应用,一般是对基本“通用”的bootloader,比如uboot等,然后根据相应的模版进行移植。三、课题主要内容(提纲)及拟解决的关键问题由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。 Stage1的工作:1. 基本的硬件初始化(对于各个硬件的初始化,严格遵循开发板芯片ARM920T的工作手册来设置。)(1). 屏蔽所有的中断。为中断提供服务通常是 OS 设备驱动程序的责任,因此在 Boot Loader 的执行全过程中可以不必响应任何中断。中断屏蔽可以通过写 CPU 的中断屏蔽寄存器或状态寄存器(比如 ARM 的 CPSR 寄存器)来完成。(2) 设置 CPU 的速度和时钟频率。 (3) RAM 初始化。包括正确地设置系统的内存控制器的功能寄存器以及各内存库控制寄存器等。 (4) 关闭 CPU 内部指令数据 cache。 2. 为加载 stage2 准备 RAM 空间为了获得更快的执行速度,通常把 stage2 加载到 RAM 空间中来执行,因此必须为加载 Boot Loader 的 stage2 准备好一段可用的 RAM 空间范围。 3. 拷贝 stage2 到 RAM 中4. 设置堆栈指针 sp。堆栈指针的设置是为了执行 C 语言代码作好准备。通常我们可以把 sp 的值设置为栈顶,也即在 1。2 节所安排的那个 1MB 的 RAM 空间的最顶端(堆栈向下生长)。 5. 跳转到 stage2 的 C 入口点。在上述一切都就绪后,就可以跳转到 Boot Loader 的 stage2 去执行了。比如,在 ARM 系统中,这可以通过修改 PC 寄存器为合适的地址来实现。Stage2的工作:1初始化本阶段要使用到的硬件设备 这通常包括:(1)初始化至少一个串口,以便和终端用户进行 I/O 输出信息;(2)初始化计时器等。设备初始化完成后,输出一些打印信息,程序名字字符串、版本号等(2)从 Flash 上拷贝 由于像 ARM 这样的嵌入式 CPU 通常都是在统一的内存地址空间中寻址 Flash 等固态存储设备的,因此从 Flash 上读取数据与从 RAM 单元中读取数据并没有什么不同。2设置内核的启动参数 应该说,在将内核映像和根文件系统映像拷贝到 RAM 空间中后,就可以准备启动 Linux 内核了。但是在调用内核之前,应该做一步准备工作,即:设置 Linux 内核的启动参数。 对于这次BootLoader的移植,需要解决的问题有:首先,由于刚上电时候硬件完全是随机状态,需要先进行各个寄存器以及CPU的初始化。其次,硬件上电后,自动从0x00000000开始运行,加载Nandflash的前4K到SRAM中运行,需要在程序走完这4K之前,将其余的代码加载到内存中,并将程序指针移到加载地址。保证程序顺利完全的运行。最后,在各种资源初始化完毕后,将控制权移交给内核,由内核继续启动各种驱动以及用户任务。四、拟采用的思路和方法1.需求分析阶段:理解毕业设计任务,对现有bootloader进行分析。2.概要设计:对bootloader的模块先后及依赖性进行分析设计3.功能实现:对每个模块进行实现与测试。4.测试:烧入开发板,并进行测试。五、课题总体安排和进度计划1-7周:对课题进行可行性分析,并根据课题搜集资料,查阅相关知识,熟悉掌握相关技术,理解毕业设计任务。第8-9周:设计出基本框架及模块。10-14周:编码,实现各个模块的功能。15-16周:检查及完善。撰写和修改毕业论文,准备论文答辩。参考文献(不少于8篇)1 罗苑棠.嵌入式linux驱动程序和系统开发实例.M.北京:电子工业出版社,2009.2 刘淼.ARM嵌入式linux系统构建与驱动开发范例.北京:北京航空航天大学出版社.2006.3 Sreekrishnan Venkateswaran. 精通linux驱动程序开发. M.北京: 人民邮电出版社. 2009.4 李亚锋.ARM嵌入式系统开发丛书. M.北京:中国电力出版社.2008.5 孙天泽,袁天菊.嵌入式设计及linux驱动开发指南. M.北京:电子工业出版社.2009.6 韦东山.linux设备驱动开发详解. M.北京:人民邮电出版社.2008.7 李俊.嵌入式linux设备驱动开发详解. M.北京:人民邮电出版社.2008.8 冯国进.嵌入式linux驱动程序设计从入门到精通. M.北京:清华大学出版社.2008.9 周立功.ARM9嵌入式系统设计与开发应用. M.北京:航天航空大学出版社.2006.10 熊茂华,杨震伦. ARM体系结构与程序设计. M.北京:清华大学出版社.2009.11 刘凯.ARM嵌入式应用技术基

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论