嵌入式系统启动软件Bootloader的设计(附答辩)
嵌入式系统启动软件Bootloader的设计(附答辩)(含任务书,开题报告,中期检查表,毕业论文说明书20000字,答辩记录,程序代码)
随着移动设备的流行和发展,嵌入式系统已经成为一个热点。而它的的特点决定了它具有功能的专用性,不能作为一种通用的计算机系统,基于操作系统开发嵌入式产品,必须对它的启动程序进行定制,本课题研究了操作系统的启动过程,包括 Boo tloader 的两阶段任务——汇编语言编写的固化代码执行部分和C语言编写的基于RAM执行部分 ,并通过对Bootloader的功能扩展 ,实现了Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,以及目标机上的Bootloader通过串口连接、网络连接、USB等通信手段,从主机 Host下载操作系统,从而实现操作系统启动与下载。本课题对Bootloader进行研究,以求深入了解操作系统的启动加载过程。
关键词:嵌入式系统,Bootloader,串口,网络,USB
ABSTRACT
With the popularity and development of mobile devices, and that the embedded system has become a hot topic. And its characteristics decided that it has the specificity, cannot fu- nction as a universal computer system, based on the operating system developed embedded products, it needs to start program customized this topic research the operating system start- up process, including the two stages tloader Boo missions - the assembly language preparat- ion curing code written in C language execution part and the execution part, and based on RAM through the Bootloader, realizing the function expansion from your target machine B- ootloader a solid-state storage equipment will be operating system running loaded to RAM the Bootloader, and your target machine through a serial port connection, network connec- tion, USB, etc communication method and Host from the Host, thus realize download ope- rating system operating system startup and download. This topic to study for Bootloader, t- horough understanding operating system startup loading process.
Keywords: embedded systems, Bootloader, serial ports, network,USB
课题研究内容
前面已经提到, BootLoader 是严重地依赖于硬件而实现的,特别是在嵌入式世界里建立一个通用的 BootLoader 几乎是不可能的。如何实现Bootloader的基本功能,如何针对基于ARM体系的微处理器来实现Bootloader,就成为本课题的一个基本论题。除了基本功能,Bootloader还能有什么更加具体的扩展功能来方便各个系统开发者,都属于本课题讨论的范畴。
在本课题中,我们会研究Bootloader的启动过程,并在S3C2410开发板上实现Bootloader的基本功能,即引导和加载内核镜像。此外,我们将对Bootloader进行功能扩展,实现用串口RS232、以太网(使用tftp协议)、USB下载内核与根文件系统到内存中,以便从内存中启动内核与和根文件系统。
本章开始叙述Bootloader的设计与实现,主要涉及代码的实现以及系统存储空间的具体分配,基本上为软件的设计与实现。在本章开始,首先介绍本文研究的硬件平台和软件开发平台。
3.1 硬件平台
Booltoader是与硬件环境息息相关的,特别是与具体的处理器与具体硬件系统。对于本本文,其具体的实现与验证都需要具体的硬件环境。本课题的硬件平台是围绕S3C2410搭建起来的。整个系统的硬件框架如图所示。
选择以S3C2410A的ARM920T为核心的硬件系统,是因为该系统既与相关的项目重叠,而且S3C2410本身是StrongArm的一个增强集,目前广泛应用于各类嵌入式系统中,是市场主流的嵌入式微处理器系列。对其研究,既有一定的典型性,又有一定的前瞻性。
对于图3.1描述的硬件环境中,本课题需关注的是处理器、存储器以及在Bootloader中需要支持的一些外部设备(如串口、USB)等。
3.2 软件环境以及软件开发工具
3.2.1 操作系统
本文操作系统使用的是开放源码的Linux操作系统,因此最终Bootloader的实现是针对Linux操作系统的,加载的kernel镜像也是Linux kernel生成。
[资料来源:www.doc163.com]
目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 课题研究背景 1
1.2 课题研究内容 1
第2章 Bootloader的概念 2
2.1 Bootloader的基本概念 2
[资料来源:http://doc163.com]
2.2 Bootloader的操作模式 3
2.3 Bootloader的概念扩展 3
2.4 ARM Bootloader的共性 4
第3章 Bootloader概要设计 6
3.1 硬件平台 6
3.2 软件环境以及软件开发工具 6
3.2.1 操作系统 6
3.2.2 编程语言 7
3.2.3 编译工具(GNUARM工具链)的安装 7
3.2.4 脚本工具Makefile 8
3.3 Bootloader的设计 11
3.3.1 阶段设计 11
3.3.2 地址规划设计 11
3.3.3 模式设计 12
第4章 Bootloader的具体实现 14
4.1 阶段1的实现 14
4.2 阶段2的实现 17
4.2.1 基本功能的实现 17
4.2.2 通过串口进行镜像下载 18 [资料来源:http://www.doc163.com]
4.2.3 通过以太网进行镜像下载 20
4.2.4 通过USB接口进行镜像下载 22
4.3 编译与链接 26
4.3.1 代码的编译 26
4.3.2 代码的连接以及转换 27
4.3.3 代码组织结构 28
第5章 实验结果与测评 29
5.1 实验结果 29
5.2 程序性能 30
结 论 31
参考文献 32
致 谢 33 [来源:http://www.doc163.com]