Chinaunix首页 | 论坛 | 博客
  • 博客访问: 511971
  • 博文数量: 174
  • 博客积分: 8001
  • 博客等级: 中将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-04 19:30
文章分类

全部博文(174)

文章存档

2011年(1)

2010年(24)

2009年(149)

我的朋友

分类: LINUX

2009-04-01 11:07:16

基于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) |
给主人留下些什么吧!~~