文档详情

嵌入式系统的软硬件设计-软件基础.ppt

发布:2018-05-14约字共42页下载文档
文本预览下载声明
嵌入式系统的软硬件设计 3. 嵌入式系统的软件基础 基于ARM的嵌入式系统的启动 单片机的启动 单片机的程序一般存放于片内ROM中,或者外部ROM; 通过在0x0000放置一条绝对跳转指令,实现启动。 PC机的启动 PC机的程序存放于ROM与硬盘上; PC机上电启动后,首先运行的是BIOS; BIOS进行硬件设备的检测,资源的分配; 将硬盘中的MSR读入RAM; 由引导程序启动操作系统。 基于ARM的嵌入式系统的启动 基于ARM的嵌入式系统的启动 ARM的程序存放于ROM(EPROM,Flash) ; ARM上电启动时,从地址0始执行; 0般对应ROM(EPROM,Flash) ; ARM的启动有专门的程序:BootLoader; 将ROM中的程序复制到RAM; 启动操作系统; 进入用户程序。 软件基础的主要内容 Boot Loader简介 嵌入式操作系统概述 几种常见的嵌入式操作系统 BootLoader的简介 BootLoader是在操作系统内核或者用户程序运行之前运行的一段代码; BootLoader的功能:初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境; 通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。 通常,每种CPU 体系结构都有不同的BootLoader。有些 BootLoader也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。 大多数BootLoader的启动过程都分为stage1和stage2两大部分; BootLoader的启动过程 Stage1包含了依赖于处理器体系结构和板级初始化的代码,通常都用汇编语言来实现,以达到短小精悍的目的,主要功能是: 初始化基本硬件 为加载 BootLoader 的 stage2 准备 RAM 空间 拷贝 BootLoader 的 stage2 到 RAM 空间中 设置好堆栈 跳转到 stage2 的 高级语言(C) 入口点 Stage1的流程图 而stage2 则通常用C语言来实现,可以实现复杂的功能、代码有更好的可读性和可移植性,主要功能: 初始化本阶段要使用到的硬件设备 调用应用程序或启动内核 Stage2的流程: 通常,BootLoader 是依赖于 CPU 的体系结构和具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,RAM芯片的类型,其他外设的类型等; 对于两块基于同一种 CPU而构建的不同的嵌入式板而言,如果他们的硬件资源和配置不一致的话,要想让运行在一块板子上的BootLoader程序也能运行在另一块板子上,也还是需要作一些必要的修改。 Boot Loader 的操作模式 启动加载模式:也称为“自主”模式。即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。 下载模式:目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载应用程序、数据文件、内核映像等。 BootLoader 的启动加载模式是正常工作模式;下载模式通常在系统更新时使用。 BootLoader 的通讯设备或机制 从主机下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被 BootLoader写到目标机上的固态存储设备中; 工作于下载模式下的 BootLoader 通常都会向它的终端用户提供一个简单的命令行接口; 目标机上的BootLoader与主机之间通常通过串口进行通讯,也可以采用网络或者USB通讯,只需要在BootLoader中编写各自的驱动即可。 常见的uCLinux(Linux)的Bootloader: Redboot Blob Vivi Uboot armBoot… 嵌入式操作系统概述 计算机系统发展初期没有操作系统这个概念,用户使用监控程序来使用计算机。 随着计算机技术的发展,计算机系统的硬件、软件资源也愈来愈丰富,监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序又进一步发展形成了操作系统(Operating System)。 历史上著名的操作系统:DOS、UNIX、Windows、Linux、SunOS、MACOS… 操作系统基本概念 嵌入式操作系统概述 实时操作系统(RTOS)基本概念 嵌入式操作系统概述 嵌入式系统的操作系统不是必须的;在复杂的应用领域使用操作系统可以简化开发; 操作系统提供了硬件设备的管理功能、用户程序的接口功能; 嵌入式操作系统所使用的技术,基本上是从
显示全部
相似文档