欢迎来到天天文库
浏览记录
ID:39291623
大小:62.00 KB
页数:7页
时间:2019-06-29
《bootloader移植毕业设计开题报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、山东科技大学本科毕业设计(论文)开题报告题目基于S3C2440bootloader的设计与实现系部名称信息工程系专业班级学生姓名学号指导教师填表时间:2011年5月1日设计(论文)题目基于S3C2440bootloader的设计与实现设计(论文)类型工程设计应用研究开发研究基础研究其它√一、课题目的和意义嵌入式操作系统在嵌入式软件开发中占的重要性越来越大。而且在嵌入式操作系统中,BootLoader则是一个不可或缺的话题,无论是WindowsCE还是嵌入式Linux,或者是其他的嵌入式操作系统。大多数都需要Boot
2、Loader来加载操作系统。当我们面对一块裸板,想要在上面运行一个嵌入式操作系统,那么我们第一件要来处理的事情就是移植和该操作系统相对应的BootLoader。而在嵌入式开发中,通常会在BootLoader上消耗大量的时间人力和物力。所以,对BootLoader的研究与学习显得更加重要。第6页二、文献综述(课题的应用背景和前景)随着各种微处理器功能越来越强大以及软件上操作系统的支持,使得整个嵌入式系统拥有了完整构架。近年来各种嵌如式操作系统也是层出不穷以适应各种不同功能的微处理器。然而如何加载操作系统却成了大家嵌入
3、式系统遇到的第一个拦路虎。这就是BootLoader,他把嵌入式硬件和嵌入式操作系统衔接起来,对于嵌入式系统后续软件的开发十分重要,在整个开发中也占有相当大的比例。现在bootloader的设计有两种趋势,一种是针对特定应用,有特殊要求,也就是“专用”。那么设计时,不需要过多的配置,只需要简单的完成引导内核的功能就可以了。二是普通应用,一般是对基本“通用”的bootloader,比如uboot等,然后根据相应的模版进行移植。第6页三、课题主要内容(提纲)及拟解决的关键问题由于BootLoader的实现依赖于CPU的
4、体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。Stage1的工作:1.基本的硬件初始化(对于各个硬件的初始化,严格遵循开发板芯片ARM920T的工作手册来设置。)(1).屏蔽所有的中断。为中断提供服务通常是OS设备驱动程序的责任,因此在BootLoader的
5、执行全过程中可以不必响应任何中断。中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器(比如ARM的CPSR寄存器)来完成。(2).设置CPU的速度和时钟频率。(3).RAM初始化。包括正确地设置系统的内存控制器的功能寄存器以及各内存库控制寄存器等。(4).关闭CPU内部指令/数据cache。2.为加载stage2准备RAM空间为了获得更快的执行速度,通常把stage2加载到RAM空间中来执行,因此必须为加载BootLoader的stage2准备好一段可用的RAM空间范围。3.拷贝stage2到RAM中4.设置堆栈
6、指针sp。堆栈指针的设置是为了执行C语言代码作好准备。通常我们可以把sp的值设置为栈顶,也即在1。2节所安排的那个1MB的RAM空间的最顶端(堆栈向下生长)。5.跳转到stage2的C入口点。在上述一切都就绪后,就可以跳转到BootLoader的stage2去执行了。比如,在ARM系统中,这可以通过修改PC寄存器为合适的地址来实现。第6页Stage2的工作:1.初始化本阶段要使用到的硬件设备这通常包括:(1)初始化至少一个串口,以便和终端用户进行I/O输出信息;(2)初始化计时器等。设备初始化完成后,输出一些打印信
7、息,程序名字字符串、版本号等(2)从Flash上拷贝由于像ARM这样的嵌入式CPU通常都是在统一的内存地址空间中寻址Flash等固态存储设备的,因此从Flash上读取数据与从RAM单元中读取数据并没有什么不同。2.设置内核的启动参数应该说,在将内核映像和根文件系统映像拷贝到RAM空间中后,就可以准备启动Linux内核了。但是在调用内核之前,应该做一步准备工作,即:设置Linux内核的启动参数。对于这次BootLoader的移植,需要解决的问题有:首先,由于刚上电时候硬件完全是随机状态,需要先进行各个寄存器以及CPU
8、的初始化。其次,硬件上电后,自动从0x00000000开始运行,加载Nandflash的前4K到SRAM中运行,需要在程序走完这4K之前,将其余的代码加载到内存中,并将程序指针移到加载地址。保证程序顺利完全的运行。最后,在各种资源初始化完毕后,将控制权移交给内核,由内核继续启动各种驱动以及用户任务。四、拟采用的思路和方法1.需求分析阶段:理解毕业设计任务,对
此文档下载收益归作者所有