基于ARM的嵌入式系统
纯粹的RISC是以高性能为主要目标的,但ARM采用的是一种改进的RISC设计思想,其目标是较高的代码密度和较低的功耗。
RISC设计思想的关键四通过简化指令的复杂度来提高性能(指令是硬件能够做的事情,CISC是通过硬件的复杂度提供复杂指令的功能,而RISC认为,软件可以用简单的指令组合成复杂指令,所以RISC是将复杂度由软件控制),使用流水线来加速指令的处理(由于一条指令都是一个周期内完成,这样可以使流水线更加通畅),提供大量的寄存器来存储数据,并使用LOAD-STORE结构(RISC的CPU只和寄存器交换数据,而不和慢速的存储器交换数据,LOAD_STORE是在寄存器和存储器之间交换数据;而CISC的CPU可以直接和存储器交换数据)。
但是ARM设计思想也包含了一些非RISC的观念或方法:
×允许一些特定指令的执行周期数可变,以降低功耗,减少面积和代码尺寸;(例如多寄存器寻址,寄存器的数目是可变的)
×增加了桶形移位器来扩展某些指令的功能;
×使用16位的Thumb指令集来提高代码密度;
×使用条件执行指令来提高代码密度和性能;
×使用增强指令来实现数据信号处理功能;
一个基于ARM的嵌入式系统包含以下的硬件组成部分: 集成在芯片上的ARM处理器;程序员通过存储器映射地址的寄存器来访问的外设;一种特殊类型的外设,被称为控制器,使嵌入式系统可实现诸如存储器管理和中断等高层功能;片内的AMBA(高级微控制总结结构)总线把处理器和外设连接在一起。
一个基于ARM的嵌入式系统包含以下的软件组成部分:
初始化代码配置硬件到一个确定的状态;初始化成功后,操作系统就能够被装载和执行,操作系统提供一个通用的编程环境,以便各种应用能高效的使用系统的硬件资源;设备驱动给外设提供一个标准的程序接口;一个应用程序完成嵌入式系统的某个特定任务。
如图所示的是存储器重映射的过程。
系统上电后立刻从ROM中开始运行初始化代码,然后初始化代码会重构存储器映射,把RAM空间放在地址0x00000000,这样异常向量表就在RAM中,并可以被程序改写了。
初始化(启动)代码使处理器从复位状态进入到操作系统能够运行的状态。它通常须配置存储器控制器,处理器cache和初始化一些设备。在一个简单的系统中,操作系统可被一个简单的任务调度器或调试监控器所代替。
初始化代码在把控制权交给操作系统之前,须处理许多管理任务,我们可以把这些不同的任务分为3个阶段:初始化硬件配置、诊断和引导。
初始化硬件配置包括设置目标平台,使之能够引导一个映像文件(image,后续执行的二进制代码)。
诊断通常用来检测系统,通过测试硬件目标来检测其工作是否正常。同时它也检测标准的系统相关的事件。诊断代码的主要目的是识别和隔离故障。
引导过程包括了装载一个映像文件并将控制权交给它。启动一个映像文件是最后一个阶段。
阅读(1113) | 评论(0) | 转发(1) |