第一范文网 - 专业文章范例文档资料分享平台

盐城工学院嵌入式系统课程设计报告

来源:用户分享 时间:2025/5/15 4:33:25 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

盐城工学院课程设计报告(2017)

4.1引导加载程序的设计

引导加载程序(Bootloader)是嵌入式系统的重要组成部分。

4.1.1 Bootloader 的基本概念

一个嵌入式 Linux 系统从软件的角度看,通常可以分为四个层次: (1)引导加载程序:包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。

(2)Linux 内核:特定于嵌入式板子的定制内核以及内核的启动参数。 (3)文件系统: 包括根文件系统和建立于 Flash 内存设备之上文件系统。 (4)用户应用程序。特定于用户的应用程序,有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows和 MiniGUI 等。

引导加载程序是系统加电后运行的第一段代码。我们熟悉的 PC 中的引导程序一般由 BIOS 和位于 MBR 的 OS bootloader(例如 LILO 或者 GRUB)一起组成。然而在嵌入式系统中通常没有像 BIOS 那样的固件程序(有的嵌入式 CPU 有),因此整个系统的加载启动任务就完全由 bootloader 来完成。在嵌入式 Linux 中,引导加载程序即等效为 bootloader。

简单地说,bootloader 就是在操作系统内核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。

bootloader 是依赖于硬件而实现的,特别是在嵌入式系统中。每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和 MIPS 体系结构。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的 CPU构建,运行在其中一块电路板上的 bootloader,未必能够运行在另一块电路开发板上。尽管如此,我们仍然可以对 Bootloader 归纳出一些通用的概念来,以指导用户特定的 Bootloader 设计与实现: (1)Boot Loader 的安装媒介

系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有

14

盐城工学院课程设计报告(2017)

某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。 (2)用来控制 Boot Loader 的设备或机制

主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。

(3)Bootloader 的启动方式

Bootloader 的启动过程可以是单阶段的,也可以是多阶段的。通常多阶段的 bootloader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 bootloader 大多数是二阶段的启动过程,也即启动过程可以分为 stage1 和 stage2 两部分。

Boot Loader 的 stage1 通常包括以下步骤: 1)硬件设备初始化。

2)为加载 Boot Loader 的 stage2 准备 RAM 空间。 3)拷贝 Boot Loader 的 stage2 到 RAM 空间中。 4)设置好堆栈。

5)跳转到 stage2 的 C 入口点。

Boot Loader 的 stage2 通常包括以下步骤 1)初始化本阶段要使用到的硬件设备。 2)检测系统内存映射(memory map)。

3)将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。 4)为内核设置启动参数。 5)调用内核。

(4)Bootloader 的操作模式

大多数 bootloader 都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别对于开发人员才有意义。但从最终用户的角度看,bootloader的作用永远就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。

启动加载模式:这种模式也称为“自主”模式,即 bootloader 从目标机上的某个固体存储设备上将操作系统加载到 RAM 中运行,整个过程没有用户的介入。这种模式是 bootloader 的正常工作模式,因此当以嵌入式产品发布的时候,bootloader 必须工作在这种模式下。

下载模式:在这种模式下,目标机上的 bootloader 将通过串口或者网络连接或者其它通信手段从主机下载文件,比如:下载内核镜像和根文件系

15

盐城工学院课程设计报告(2017)

统镜像等。从主机下载的文件通常首先被 bootloader 保存到目标机的 RAM 中,然后被 bootloader 写到目标机上的 FLASH 类固态存储设备中。 Bootloader 的这种模式通常在第一次安装内核与根文件系统时使用;此外,以后的系统更新也会使用 bootloader 的这种工作模式。工作于这种模式下的 bootloader 通常都会向它的中断用户提供一个简单的命令行接口。 (5)Bootloader 的功能扩展

Bootloader 最主要的功能是引导加载内核镜像。但是随着嵌入式系统的发展,bootloader 已经逐渐在基本功能的基础上,进行了扩展,bootloader 可以更多地增加对具体系统的板级支持,即增加一些硬件模块功能上的使用支持,以方便开发人员进行开发和调试。从这个层面上看,功能扩展后的 bootloader 可以虚拟地看成是一个微小的系统级的代码包。

4.1.2 ST2410 的 Bootloader 功能说明

以上介绍了一般嵌入式系统中的 Bootloader 的特点。 如前所述,对于不同的目标板和外围硬件电路,Bootloader 的设计是不相同的。本系统的 Bootloader 除了具有一般的功能外,还具有以下扩展功能:

(1) USB 口文件下载 (2) 串口文件下载

(3) NOR 和 NAND FLASH 的烧写 (4) 运行存储在 FLASH 中的程序 (5)针对Linux设置启动参数 (6)设置Wince或Linux的自启动 (7)运行BenQ M22 GPRS通讯系统

ST2410 的 Bootloader 的流程图,如图 4.1 所示

图4.1 Bootloader流程图构

16

盐城工学院课程设计报告(2017)

如前所述,此核心板一共由三大存储设备 ① Nor Flash(2M) ② Nand Flash(64M) ③ SDRAM(64M)。

前两个 Flash 设备就犹如 PC 机的两块硬盘,(由于 Nand Flash 无论在价格与性能上都优于 Nor Flash,因此现在一般都采用 Nand Flash。)而 SDRAM 就犹如 PC 机的内存设备。

4.2 串口通讯程序的设计

如前所述,本系统有三大模块:

PC 机:主要负责人机交互。在 PC 机上运行 DNW(一种串口调试软件),从而可以显示和接受来自 ARM 的数据。

ARM 微处理器:核心处理器。将已经编写成功的 GPRS 通讯程序烧写到其 Nand Flash 中。

M22 通讯模块:GPRS 通讯的具体实现。接受来自 ARM 的 AT 指令,从而进行 GPRS 通讯,并将有用的信息反馈给 ARM。

4.3 BenQ M22 模块内部的软件特性

下面我们来描述一下 BenQ M22 模块内部集成的软件系统。对于无线 PSTN 的用户,BenQ 提供 AT 指令的支持。

BenQ M22 的内部集成的软件包括以下 3 个部分: Layer 1 驱动 协议栈/AT 命令 基本接口

由于在无线 PSTN 和 BenQ M22 模块中都有微处理器,在这两者之间的接口通常是 AT 指令。当然由于协议栈(TCP/IP)的存在,我们也可以通过发送 AT 指令达到联通 GSM/GPRS 网的目的。

5 模块软件运行流程图

17

搜索更多关于: 盐城工学院嵌入式系统课程设计报告 的文档
盐城工学院嵌入式系统课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1jbm30g0yy8qp2012imx4yj364q360011pn_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top