嵌入式系统启动软件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生成。
目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 课题研究背景 1
1.2 课题研究内容 1
第2章 Bootloader的概念 2
2.1 Bootloader的基本概念 2
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
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
|