21天学通Linux嵌入式开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第3章 ARM处理器构架

嵌入式系统中最常用的处理器为ARM处理器。ARM处理器以强大的功能、低功耗等特点,特别适合于嵌入式领域。本章将主要讲解ARM体系结构、处理器类型、编程模式及开发调试工具等。通过本章的学习,读者应该实现如下几个目标。

· 了解ARM体系结构。

· 掌握各种ARM处理器系列。

· 掌握ARM Cortex-M3的处理器结构。

· 掌握ARM Cortex-M3的编程模型。

· 掌握典型的ARM开发调试工具。

3.1 ARM体系结构概述

近年来,单片机在控制领域中实现了巨大的成功。而随着技术的发展,单纯的单片机或微控制器技术已经无法满足需求。随之而来,嵌入式系统设计是目前最热门的一种技术。在嵌入式系统设计中,首先面临的便是嵌入式处理器的选择。目前,ARM芯片凭借强大的处理能力和极低的功耗而得到广泛应用。所以,现在越来越多的公司在产品选型的时候考虑到使用ARM处理器。另外,随着ARM功能的增强和完善,某些方面可以取代原先X86架构的单板机,特别是工控领域。本书将以ARM嵌入式处理器为例讲解嵌入式系统的开发,下面首先了解一下ARM及其体系结构。

3.1.1 ARM简介

ARM,英文全称为Advanced RISC Machines。ARM首先是一个公司的名称,1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片。

其次,ARM是对一类微处理器的通称。世界各大半导体生产商从ARM公司购买其ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器。

宽泛地说,ARM是一种技术的名字,即采用ARM处理器的控制技术。

ARM在嵌入式领域获得了巨大的成功,ARM处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统、军用系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器70%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。

目前全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者接受,更具有竞争力。

3.1.2 CISC的体系结构

CISC,英文全称为Complex Instruction Set Computer,即复杂指令集计算机。CISC是随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂。

然而,在CISC指令集中,各种指令的使用频率相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。显然,CISC结构虽然指令全面功能强大,但是结构不合理,造成程序代码体积庞大,不适合于嵌入式系统。

3.1.3 RISC的体系结构

鉴于CISC体系结构的不合理性,1979年美国加州大学伯克利分校提出了RISC的概念。RISC的英文全称为Reduced Instruction Set Computer,即精简指令集计算机。

RISC以CISC为基础,重点优化计算机的结构,使其更加简单合理地提高运算速度。RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。一般来说,RISC体系结构应具有如下特点:

· 采用固定长度的指令格式,指令归整、简单,基本寻址方式有2~3种。

· 使用单周期指令,便于流水线操作执行。

· 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。

· 采用一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。

· 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。

· 可用加载/存储指令批量传输数据,以提高数据的传输效率。

· 可在一条数据处理指令中同时完成逻辑处理和移位处理。

· 在循环处理中使用地址的自动增减来提高运行效率。

ARM嵌入式处理器便是基于RISC体系结构的,这使得其非常适合于嵌入式应用领域。事实上,RISC和CISC各有优势,而且界限并不那么明显。现代的CPU往往采用CISC的外围,内部加入了RISC的特性,从而融合RISC和CISC的优势,成为未来的CPU发展方向之一。

3.1.4 ARM微处理器的应用领域

到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域。

· 工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

· 无线通信领域:目前已有超过85%的无线通信设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

· 网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛的支持,也对DSP的应用领域提出了挑战。

· 智能手机:目前智能手机几乎全部采用了ARM处理器,不仅获得了强大的功能,而且具有很好的功耗控制。

· 消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

· 成像和安全产品:现在流行的数码相机和打印机中绝大部分采用了ARM技术。手机中的32位SIM智能卡也采用了ARM技术。

除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更广泛的应用。

3.1.5 ARM体系结构的特点

ARM微处理器采用RISC架构,其具有如下特点。

· 体积小、低功耗、低成本、高性能。

· 支持Thumb(16 位)/ARM(32 位)双指令集,能很好地兼容8/16 位器件。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。

· 大量使用寄存器,指令执行速度更快。

· ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器;6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。

· 大多数数据操作都在寄存器中完成。

· ARM处理器有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、1~2个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。

· 寻址方式灵活简单,执行效率高。

· 指令长度固定。