对arm体系架构和stm32的理解

ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。ARM全称为Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

同时,ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试。
ARM 架构支持跨跃多个性能点的实现,并已在许多细分市场中成为主导的架构。ARM 架构支持非常广泛的性能点,因而可以利用最新的微架构技术获得极小的 ARM 处理器实现和极有效的高级设计实现。实现规模、性能和低功耗是 ARM 架构的关键特性。

ARM处理器的特点有:

体积小、低功耗、低成本、高性能;
支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
大量使用寄存器,指令执行速度更快;
大多数数据操作都在寄存器中完成;
寻址方式灵活简单,执行效率高;
指令长度固定。
此外,ARM属于RISC,也具有RISC系统的特点。ARM采用固定长度的指令格式,指令归整、简单、基本寻址方式种类少;使用单周期指令;大量使用寄存器(37个)。同时,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗。ARM所有的指令都可根据前面的执行结果决定是否被执行;可用加载/存储指令批量传输数据;可在一条数据处理指令中同时完成逻辑处理和移位处理;在循环处理中使用地址的自动增减。

当前,ARM处理器主要应用于消费电子领域,给予ARM技术的微处理器应用大约占据了32位嵌入式微处理器75%以上的市场份额。

ARM架构从ARM1到现在的ARMv8,产品系列有ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,ARM11系列。ARM公司在ARM11以后的产品改用Cortex命名,并分成A、R和M三类。其中,ARM7系列是使用冯诺依曼结构的内核。ARM9系列采用ARMv4或ARMv5架构的,使用哈佛结构的内核。Cortex M3,Cortex M4系列采用了ARMv7架构的,使用哈佛结构的内核。
ARM公司主要提供IP核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器。而STM32只是一种片上系统(SOC),是意法半导体公司(ST)推出的系列基于Cortex-M0/Cortex-M3/Cortex-M4等内核的微处理器/微控制器芯片,专为要求高性能、低成本、低功耗的嵌入式应用专门设计的。
STM32的主系统主要由四个驱动单元和四个被动单元构成,四个驱动单元是:内核(DCode) 总线,通用 DMA1,通用 DMA2;四个被动单元是:AHB到APB连接所有的APB设备的桥,内部FlASH闪存,内部SRAM,FSMC。

STM32最初发布时有14个不同型号,分为两个版本:最高CPU时钟为72MHZ的“增强型”和最高CPU时钟为36MHZ的“基本型”。这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB。不管是什么版本,什么型号的STM32器件,它们在引脚功能和应用软件上是兼容的。这就使得开发人员在使用STM32系列微控制器时,不必改动PCB就可以根据需要随意更换器件型号。

STM32都会配备常见外设,诸如多通道ADC,通用定时器,I2C总线接口,SPI总线接口,CAN总线接口,USB控制器,实时时钟RTC等。但是,它的每一个外部设备都具有独特之处。例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元,而且每个定时器都可以和另外的定时器联合工作以生成更为精密的时序;STM32有专门为电机控制而设的高级定时器,带有6个死区时间可编程的PWM输出通道,同时其带有的紧急制动通道可以在异常情况出现时,强迫PWM信号输出保持在一个预订好的安全状态;SPI接口含有一个硬件CRC单元,支持8位字节和16位半字数据的CRC计算。在对SD或MMC等存储介质进行数据存取时相当有用。

而且,STM32还包含了7个DMA通道。每个设备都可以向DMA控制器请求发送或者接收数据。STM32内部总线仲裁器和总线矩阵将CPU数据接口和DMA通道之间的连接大大的简化了,这就意味着DMA通道单元是很灵活的其使用方法简单,足以应付微控制器应用中常见的数据传输要求。

在电子领域,还要求器件稳定性要好,处于可靠性的考虑,STM32配备了一系列硬件来支持对可靠性的高度要求。这些硬件有:一个低电压检测器,一个时钟安全管理系统和两个看门狗定时器。

此外Cortex-M3还带有一个全新调试系统CoreSight。用户可以使用标准的JTAG接口或者双线串行接口通过调试端口(Debug Access Port)实现和CoreSight系统的对接。除了提供调试运行控制服务之外,STM32上的CoreSight还提供断点数据查看功能以及一个指令跟踪器。指令跟踪器可以将用户选择的应用信息上传到调试工具里。从而可以为用户提供额外的调试信息,并且它在软件运行期间同样可以使用。

你可能感兴趣的:(对arm体系架构和stm32的理解)