ARM

处理器的命名应该包含两类:指令集架构命名规则和处理器系列规则。

ARM 架构是构建每个 ARM 处理器的基础。ARM 架构随着时间的推移不断发展,其中包含的架构功能可满足不断增长的新功能、高性能需求以及新兴市场的需要。

可以先来看一张简图:
详解ARM架构和处理器系列命名规则

可见:架构的命名比较规则从ARMv1到ARMv8,数字越大越先进。x(variants) 分成四个组成部分:

ARMv -- 固定字符,即ARM Version

n -- 指令集版本号。迄今为之,ARM架构版本发布了8个系列,所以n=[1:8]。其中最新的版本是第8版,具体看ARM官方网站。

variants -- 变种。

x(variants)-- 排除x后指定的变种

但是处理器系列的命名就比较混乱了,因此接下来以架构的顺序来介绍ARM的历史:

(1) ARMv1、ARMv2 这两代没有做CPU,没有商业化;

(2)ARMv3 对应的 CPU 是 ARM6,它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU;

(3)ARMv4 首次增加 Thumb 指令集:

有符号和无符号的半字读取和写入指令。
带符号的字节读取和写入指令。

增加了处理器的系统模式(特权模式)。在该模式下,使用的是用户模式下的寄存器。

为结构定义的操作预留一些SWI(软中断指令)空间

ARMv4和ARMv4T结构的处理器得到了广泛的应用。SA-110、SA-1110等是基于ARMv4的;

对应的 CPU 有:ARM7TDMI、ARM720T、 ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。

(4) ARMv5 包括v5TE和v5TEJ ,v5TE在v5T的基础上增加了信号处理(DSP)指令集,v5TEJ除了具备v5T的功能外,还可以执行JAVA字节 代码,是在ARM上执行JAVA指令的效率提高了5-10倍,并且降低了功耗。

对应的 CPU 有:

ARMv5TE指令集:ARM9-E-S,ARM966-E-S,ARM1020-E,ARM1022-E,ARM940-T

ARMv5EJ指令集:ARM926-EJ-S,ARM7-EJ-S,ARM1026-EJ-S

(5) ARMv6 首次增加 SIMD,升级为 Thunmb-2,首次增加TrustZone;

ARMv6是2001年发布的。其目标是在有效的芯片面积上为嵌入式系统提供更高的性能。

对应 CPU 有:ARM1136-J(F)-S,ARM1156-J(F)-S,ARM1176-J(F)-S,ARM11 MPCore

ARMv6是ARM进化史上的一个重要里程碑:从那时候起,许多突破性的新技术被引进,存储器系统加入了很多的崭新的特性,单指令流多数据流(SIMD)指令也是从v6开始首次引入的。而最前卫的新技术,就是经过优化的Thumb‐2指令集,它专为低成本的单片机及汽车组件市场。

(6)ARMv7 首次增加 M(长乘法指令),NEON(DSP+SIMD),2004年发布了新的ARMv7体系结构。在这个版本中,内核架构首次从单一款式变成3种款式。

CPU 系列名字为“Cortex”,分为了3个款式:A、R、M & SC;

(6.1)A 系列,支持大型嵌入式系统,如手机;

节能:A5,A7

平衡:A8,A9

性能:A15,A17

(6.2)R 系列,Real-time 处理器,即执行一个指令段的耗时是固定时钟周期数,用于高端的嵌入式系统,尤其是那些带有实时要求的--又要快又要实时。

用于比如汽车控制,这种不允许随机执行时间的应用

功能安全:R4,R5

存储、调制解调:R7,R8

(6.3)M 系列,单片机市场,抢8051的生意;

超低的功耗、面积:M0,M0+

平衡:M3,M4,M7

(6.4)SC(SecurCore)系列,主打“安全”,面向支付、政府、SIM 卡

SC000,SC300;

(7)ARMv8 首次增加 指令集A64,可执行64位指令;可在 32位 和 64位 之间切换;是ARM公司为满足新需求而重新设计的一个架构,是近20年来,ARM架构变动最大的一次。它引入的Execution State、Exception Level、Security State等新特性,已经和我们对旧的ARM架构的认知,有很大差距了。

(7.1)A 系列,

节能:A32,A35

平衡:A53,

性能:A57,A72,A73

详解ARM架构和处理器系列命名规则

(7.2)R 系列

功能安全:R52
详解ARM架构和处理器系列命名规则

(7.3)M 系列,

超低的功耗、面积:M23

平衡:M33
详解ARM架构和处理器系列命名规则

本文简单介绍了ARM架构的一些命名规则,希望对大家有帮助。

转自:嵌入式ARM

围观 5
9

Arm宣布与美的达成战略合作关系,双方将以美的利用ArmMbed OS作为内核打造的自有物联网操作系统SmartOS为开发基础,通过一系列生态系统、标准化和安全性等方面的合作,减少重复开发工作,实现统一、安全、多样化的智能家电系统平台。

目前,物联网市场尚无统一的生态系统,碎片化较为严重。此次Arm与美的的合作将推动智能家电应用的标准化,通过统一应用Mbed技术,并以SmartOS为基础,整合相关芯片与设备,从而实现更为高效的应用与平台开发工作,构建一个统一化、标准化的智能家电系统平台。

Arm Pelion物联网平台还将为美的提供操作系统、云服务、工具和开发人员生态系统等方面的支持。Pelion平台由两套关键产品组成——基于云的安全设备管理服务和针对安全设计物联网端点和节点的设备软件。在安全至上的物联网领域中,Pelion物联网平台可提供从芯片到云的牢固的信赖基础,其搭载的Mbed OS是第一个支持兼容于平台安全架构(PSA ,Platform Security Architecture)、具有可信启动(trusted boot)、储存、以及加密技术的操作系统

PSA是Arm所提出的产业共同框架,为物联网生态系统提供强大、可扩充的安全机制,保护数以亿万计的联网装置。以此为基础,不仅推出首个威胁模型与安全分析(Threat Models and Security Analyses,TSMA)与开放源码参考固件Trusted Firmware-M,近日更推出全新API与API测试套件,持续扩充PSA方案。这都将为企业与消费者带来长远的信任。

此外,美的将从Arm取得众多安全性支持,包括采用PSA标准,并向Arm提供关于PSA的反馈,以提高连接设备抵抗攻击的能力。同时,美的还将支持Arm建立消费类设备的威胁配置文件,从而帮助Arm明确和推出针对高安全性消费类设备的配置文件。

Arm公司副总裁兼物联网设备服务业务总经理Chris Porthouse表示:“我们很荣幸能够与美的在物联网和智能家电领域达成战略合作,这将会是物联网以及智能家电领域里程碑之一。通过此次战略合作,我们能够在Mbed技术产品路线图中更全面地考虑美的等合作伙伴的实际需求,并定期开展技术与商业讨论,界定和执行有利于实现双方企业目标的合作计划。未来,我们还将在人工智能领域开展合作。”

美的物联网技术负责人毕志国表示,"全球有亿万用户正在使用美的家电,无数的智能设备连接在云端。为了进一步推进智能化的升级,希望通过与Arm的合作建立家电领域Smart OS平台,提升产品智能化支撑能力、降低智能应用的开发周期与成本。此外,我们还将在人工智能、市场营销等方面展开一系列合作,共同推动Smart OS在家电领域的应用。"

围观 9
318

我们做一些操作会有一点麻烦,比方进行一个if then的判断操作。比如要比较a>b,则去调用某个函数,这就要先去比较a,b的值,然后就会跳转,跳转又会比较大小,less than,就是BLLT,然后跳转到loop,我们通过这些来实现if then的操作。循环,先定义一个loop,然后有一些语句跳转到这个语句,然后进行条件判断跳出,然后又进行if then的方式来进行判断。其实这样是很麻烦的。为了方便,引入了相当于宏。c语言里有宏的概念,引入类似于宏的方式,把复杂的有好几天指令进行跳转的完成的小功能级进行新的标签设定,这就是伪指令。

伪指令作用:我们的指令已经可以做各类操作了,但我们操作起来太麻烦了。比如我现在要设置一个值给寄存器R0,但下次我修改了寄存器R0之后又需要读出来刚才的值,那我们就要先临时保存值到SPSR,CPSR,然后不断切换。再比如,我们要做一个循环,就要用label结合BL不断进行,但如果我们要循环很多次。我们就定义了一些类似于带参数的宏的操作一样,来定义我们的伪指令,方便我们更好的实现汇编程序逻辑。伪指令只是在汇编器之前作用,汇编以后翻译为标准的汇编令集。

伪指令的类别伪指令可分为ARM汇编伪指令和GNU汇编伪指令。伪指令又类似于学c语言的时候的预处理,在预处理的时候把它定义于一堆的宏转化为真正的c语言的代码。同样,伪指令是在定义好之后的汇编,汇编的时候会把它翻译成标准指令,也许一条简单的伪指令可以翻译成很多条标准的汇编指令集,所以这就是伪指令最重要的作用。

ARM汇编伪指令是ARM公司的,GNU汇编伪指令是GNU平台的。他们有自己的汇编器,不同的汇编器的解释语法可以设成不同。汇编语言分成两块:标准指令集和非标准指令集。伪指令,我们说了,是类似于宏的东西,是为了简化工作的,所以这种非标准指令集在不同的汇编器下,支持的语法是稍微有点差别的。今天讲解ARM汇编伪指令,在工作中也常常会遇到GNU的。其实都大同小异,无非是GNU的喜欢前面加个点来表示伪指令。操作:这些都是标准指令,这个开始标识,这是一块代码区域,这个不是标准指令,只是告诉我们一个含义,这就是伪指令。同样enter也是伪指令,只是为了标识用的,包括macro,还有这些大家以前没怎么看过的都是伪指令。

ARM汇编伪指令详解

现在再看一下GNU伪指令:这个是一个裸板程序,这个裸板程序是点灯的,是板子上控制灯的程序,而且是混合编程的,有c语言和汇编的。来看一下:这个地方.globl,

ARM汇编伪指令详解

就是一个伪指令,这个得意思其实是跟刚才入口出是蛮像的。.globl是全局访问的区域段。define也是一个伪指令,去定义一些变量。这个loopl跟之前的是一样的,这里是一个伪指令,后面有一个冒号,所以大家只需简单地做一个转换就行了。 这里start的意思就是start为入口函数,相当于代表了enter加start标签。这里globl的含义是export,对外导出。这两种伪指令是有一定的差别的,今天还是学ARM的标准的汇编伪指令,GNU伪指令都是大同小异的。

原文链接:http://www.maiziedu.com/wiki/arm/directive/

围观 10
381

  •   Arm以引领安全为己任,加速自动驾驶技术在大众市场部署
  •   Arm “安全就绪”(Safety Ready)计划:协助Arm芯片合作伙伴开发车用SoC
  •   分核-锁步(Split-Lock):在应用处理器中首次搭载具有颠覆性的安全创新
  •   针对7纳米制程进行优化,Cortex-A76AE是全球第一款具有集成安全、高性能、领先效率和防护等IP选项的自动驾驶级处理器

2018年9月28日 – Arm宣布推出 “安全就绪”(Arm Safety Ready)计划,及全球首款集成功能安全的自动驾驶级处理器——专为汽车行业设计的全新产品Arm Cortex-A76AE。该处理器搭载分核-锁步(Split-Lock)技术,这也是在应用处理器中首次集成具有颠覆性的安全创新技术。

对于那些明显的技术因素,无论是控制自动驾驶系统的各个方面还是在确保乘客信赖自动驾驶方面,安全都是其中汽车主机厂考量的重中之重。如果消费者无法信任其车辆的自动驾驶系统是安全的,那么这种技术在大众市场的普及将会很缓慢。

自动驾驶要消除的正是人为因素,即驾驶员所犯的错误。考虑到所有事故中有94%是由驾驶员的失误导致,因此预计全自动驾驶将显著减少事故数量和死亡人数。这也是为什么在开发自动驾驶级SoC和系统时,安全绝不可作为发生事故之后的措施,而将其置于次要于性能、能效和防护的位置。然而不幸的是,目前致力于实现L5级的自动驾驶原型车辆通常基于高能耗和代价不菲的数据中心CPU,其中甚至连最基本的功能安全都是缺失的。

多年来,Arm一直将安全放在首位,正因如此,Arm的 IP得以在ADAS(高级驾驶员辅助系统)应用芯片中占据高达65%的市场份额。Arm的汽车生态系统可通过最新的ISO认证获得业界最广泛的功能安全IP。为进一步确保Arm的芯片合作伙伴在安全性方面领先一步,Arm宣布推出Arm“ 安全就绪”计划,该计划集中了Arm在安全领域大量投入的成果,有助于加快Arm芯片合作伙伴和整个汽车供应链的开发进度,从而将更安全的产品以更快的速度推向市场。

Arm在安全领域的领先优势并不止于整合最新的认证和标准。Arm同时推出首款集成功能安全的自动驾驶级处理器——全新产品 Arm Cortex-A76AE,专为汽车行业设计。该芯片搭载 分核-锁步(Split-Lock)技术,是一款具有颠覆性的安全创新,并首次在应用处理器中得以实现。

为更高级别的自动驾驶实现“安全就绪”

“安全就绪”计划中包括Arm现有的安全产品以及全新产品或未来产品,这些产品的开发采用严格的功能安全流程,包括支持ISO 26262和IEC 61508标准的系统流程和开发。“安全就绪”计划提供一站式软件、工具、组件、认证和标准,可为Arm合作伙伴简化并降低整合功能安全的成本。凭借“安全就绪”计划,合作伙伴和汽车主机厂可以确保其SoC和系统具有自动驾驶应用所需的最高级别功能安全。

Cortex-A76AE:全球首款集成功能安全的自动驾驶级处理器

Cortex-A76AE专为汽车行业设计,针对7纳米工艺节点进行了优化,是一款颠覆性的全新处理器。其中AE代表“汽车增强型”,任何带有AE标志的Arm IP都将包含满足车载应用的特定功能。

自动驾驶需要更高层级的处理能力,其中内在的安全性将是标配。Cortex-A76AE作为业界首款具有分核-锁步功能的高性能应用处理器,结合了自动驾驶应用所需的处理性能和高汽车安全完整性。虽然分核-锁步功能对业界而言并不陌生,但Arm率先将其引入专为高性能汽车应用而设计的处理器,例如自动驾驶。

分核-锁步功能可实现以下性能:

  •   具备以往锁步CPU部署中无法实现的灵活性
  •   SoC中的CPU群集可配置成“分核模式”以实现高性能,其中群集中的两个(或四个)独立CPU可用于各种任务和应用程序
  •   若配置成“锁步模式”下,CPU将处于锁步状态,​​在群集中创建一对(或两对)锁步的CPU,以实现更高的汽车安全完整性应用
  •   CPU集群可在硅片生产后配置为在任一模式下混合运行

凭借Arm在高能效计算领域的领导地位,选用Cortex-A76AE的汽车主机厂还可在其原型车辆中设计仅需瓦级而非千瓦级能耗的自动驾驶系统。低能耗还可以实现更加节能地使用车辆电池电量,同时结合热效率提升计算能力的封装,进而延长车辆续航能力以降低行驶成本。

正如Arm一贯的开发思路,从整体系统的角度思考,对Cortex-A76AE进行完善。Arm正向业界推出全新的汽车增强型系统IP,用于设计全面的自动驾驶级SoC。全新CoreLink GIC-600AE、CoreLink MMU-600AE和CoreLink CMN-600AE可提供高性能的中断管理、扩展虚拟化和内存管理等关键功能,以及连接多个CPU集群扩展安全多核系统的功能。这些产品旨在实现高性能系统的同时,又将汽车安全完整性从ASIL-B级别提升至ASIL-D级别,并支持分核-锁步功能和嵌入到Cortex-A76AE设计之中的功能安全系统功能。

唯有Arm汽车生态系统方能提供的可扩展性

随着自动驾驶系统的软件复杂性和运算容量急剧增加,开发成本呈指数级增长态势。根据了解到的背景,预计L5级自动驾驶车辆将需要10亿行代码,相比波音787梦想飞机(Boeing 787 Dreamliner)需要的代码仅为1400万行。Arm与其强大的汽车开发人员生态系统正致力于通过通用架构简化汽车软件堆栈的各个层面及相关开发工具,从而实现成本最优。

Arm的汽车IP路线图

Cortex-A76AE是“汽车增强型”处理器路线图中的第一款产品,它将提供业界最全面的功能安全IP产品组合。全新路线图包括“Helios-AE”和“Hercules-AE”系列,都将针对7纳米制程进行优化。随着这些产品相继推出,更多细节将会随之公布。

自1996年以来,Arm一直为汽车应用设计芯片,目前也只有Arm能够解决整车所有元件的计算需求。正因如此,全球前15大汽车芯片制造商都是Arm的授权厂商,而基于Arm架构的芯片为当今65%的ADAS应用和85%的IVI应用提供驱动。通过为行业提供高安全性、自动驾驶级别的计算解决方案,Arm及其生态系统确保安全性不再是发生事故之后的措施,并帮助汽车主机厂赢得消费者信任,推动安全与全自动驾驶车辆的全面普及。

围观 2
387

  •  Arm以引领安全为己任,加速自动驾驶技术在大众市场部署
  •  Arm “安全就绪”(Safety Ready)计划:协助Arm芯片合作伙伴开发车用SoC
  •  分核-锁步(Split-Lock):在应用处理器中首次搭载具有颠覆性的安全创新
  •  针对7纳米制程进行优化,Cortex-A76AE是全球第一款具有集成安全、高性能、领先效率和防护等IP选项的自动驾驶级处理器

Arm宣布推出 “安全就绪”(Arm Safety Ready)计划,及全球首款集成功能安全的自动驾驶级处理器——专为汽车行业设计的全新产品Arm Cortex-A76AE。该处理器搭载分核-锁步(Split-Lock)技术,这也是在应用处理器中首次集成具有颠覆性的安全创新技术。

对于那些明显的技术因素,无论是控制自动驾驶系统的各个方面还是在确保乘客信赖自动驾驶方面,安全都是其中汽车主机厂考量的重中之重。如果消费者无法信任其车辆的自动驾驶系统是安全的,那么这种技术在大众市场的普及将会很缓慢。

自动驾驶要消除的正是人为因素,即驾驶员所犯的错误。考虑到所有事故中有94%是由驾驶员的失误导致,因此预计全自动驾驶将显著减少事故数量和死亡人数。这也是为什么在开发自动驾驶级SoC和系统时,安全绝不可作为发生事故之后的措施,而将其置于次要于性能、能效和防护的位置。然而不幸的是,目前致力于实现L5级的自动驾驶原型车辆通常基于高能耗和代价不菲的数据中心CPU,其中甚至连最基本的功能安全都是缺失的。

多年来,Arm一直将安全放在首位,正因如此,Arm的 IP得以在ADAS(高级驾驶员辅助系统)应用芯片中占据高达65%的市场份额。Arm的汽车生态系统可通过最新的ISO认证获得业界最广泛的功能安全IP。为进一步确保Arm的芯片合作伙伴在安全性方面领先一步,Arm宣布推出Arm“安全就绪”计划,该计划集中了Arm在安全领域大量投入的成果,有助于加快Arm芯片合作伙伴和整个汽车供应链的开发进度,从而将更安全的产品以更快的速度推向市场。

Arm在安全领域的领先优势并不止于整合最新的认证和标准。Arm同时推出首款集成功能安全的自动驾驶级处理器——全新产品Arm Cortex-A76AE,专为汽车行业设计。该芯片搭载分核-锁步(Split-Lock)技术,是一款具有颠覆性的安全创新,并首次在应用处理器中得以实现。

为更高级别的自动驾驶实现“安全就绪”

“安全就绪”计划中包括Arm现有的安全产品以及全新产品或未来产品,这些产品的开发采用严格的功能安全流程,包括支持ISO 26262和IEC 61508标准的系统流程和开发。“安全就绪”计划提供一站式软件、工具、组件、认证和标准,可为Arm合作伙伴简化并降低整合功能安全的成本。凭借“安全就绪”计划,合作伙伴和汽车主机厂可以确保其SoC和系统具有自动驾驶应用所需的最高级别功能安全。

Cortex-A76AE:全球首款集成功能安全的自动驾驶级处理器

Cortex-A76AE专为汽车行业设计,针对7纳米工艺节点进行了优化,是一款颠覆性的全新处理器。其中AE代表“汽车增强型”,任何带有AE标志的Arm IP都将包含满足车载应用的特定功能。

自动驾驶需要更高层级的处理能力,其中内在的安全性将是标配。Cortex-A76AE作为业界首款具有分核-锁步功能的高性能应用处理器,结合了自动驾驶应用所需的处理性能和高汽车安全完整性。虽然分核-锁步功能对业界而言并不陌生,但Arm率先将其引入专为高性能汽车应用而设计的处理器,例如自动驾驶。

分核-锁步功能可实现以下性能:

  •  具备以往锁步CPU部署中无法实现的灵活性

  •  SoC中的CPU群集可配置成“分核模式”以实现高性能,其中群集中的两个(或四个)独立CPU可用于各种任务和应用程序

  •  若配置成“锁步模式”下,CPU将处于锁步状态,​​在群集中创建一对(或两对)锁步的CPU,以实现更高的汽车安全完整性应用

  •  CPU集群可在硅片生产后配置为在任一模式下混合运行

凭借Arm在高能效计算领域的领导地位,选用Cortex-A76AE的汽车主机厂还可在其原型车辆中设计仅需瓦级而非千瓦级能耗的自动驾驶系统。低能耗还可以实现更加节能地使用车辆电池电量,同时结合热效率提升计算能力的封装,进而延长车辆续航能力以降低行驶成本。

正如Arm一贯的开发思路,从整体系统的角度思考,对Cortex-A76AE进行完善。Arm正向业界推出全新的汽车增强型系统IP,用于设计全面的自动驾驶级SoC。全新CoreLink GIC-600AE、CoreLink MMU-600AE和CoreLink CMN-600AE可提供高性能的中断管理、扩展虚拟化和内存管理等关键功能,以及连接多个CPU集群扩展安全多核系统的功能。这些产品旨在实现高性能系统的同时,又将汽车安全完整性从ASIL-B级别提升至ASIL-D级别,并支持分核-锁步功能和嵌入到Cortex-A76AE设计之中的功能安全系统功能。

唯有Arm汽车生态系统方能提供的可扩展性

随着自动驾驶系统的软件复杂性和运算容量急剧增加,开发成本呈指数级增长态势。根据了解到的背景,预计L5级自动驾驶车辆将需要10亿行代码,相比波音787梦想飞机(Boeing 787 Dreamliner)需要的代码仅为1400万行。Arm与其强大的汽车开发人员生态系统正致力于通过通用架构简化汽车软件堆栈的各个层面及相关开发工具,从而实现成本最优。

Arm的汽车IP路线图

Cortex-A76AE是“汽车增强型”处理器路线图中的第一款产品,它将提供业界最全面的功能安全IP产品组合。全新路线图包括“Helios-AE”和“Hercules-AE”系列,都将针对7纳米制程进行优化。随着这些产品相继推出,更多细节将会随之公布。

自1996年以来,Arm一直为汽车应用设计芯片,目前也只有Arm能够解决整车所有元件的计算需求。正因如此,全球前15大汽车芯片制造商都是Arm的授权厂商,而基于Arm架构的芯片为当今65%的ADAS应用和85%的IVI应用提供驱动。通过为行业提供高安全性、自动驾驶级别的计算解决方案,Arm及其生态系统确保安全性不再是发生事故之后的措施,并帮助汽车主机厂赢得消费者信任,推动安全与全自动驾驶车辆的全面普及。

围观 7
491

据IC Insights市场研究报告统计,受物联网、汽车电子、人工智能等行业应用带动,微控制器(MCU)销售规模预计将从2016年的166亿美元上升至2020年的209亿美元,年均增长率为5.5%。Arm嵌入式与汽车事业部市场营销高级总监Rhonda Dirvin日前接受了《电子工程专辑》的采访,不但畅谈了Arm在人工智能、先进工艺、异构处理方面的最新进展,也对与RISC-V架构的竞争做出了回应。

MCU喜迎AI新机遇,但先进工艺恐成“拦路虎”?看看Arm怎么说
Arm嵌入式与汽车事业部市场营销高级总监Rhonda Dirvin

电子工程专辑:自2017年以来,包括MCU在内的很多电子元器件、分立器件都传出缺货消息。您对2018年MCU市场需求状况是如何看待的?MCU价格走势是否会发生较大变化?

Rhonda Dirvin:据ICInsights预测,2018年全球电子系统市场将增长5%,至16220亿美元,而今年全球半导体市场预计将飙升14%,至5091亿美元,首次超过5000亿美元的水平。如果2018年的预测实现,每个电子系统中的半导体产品平均占比将达到31.4%,打破2017年创下的28.8%的历史记录。

Arm预计MCU市场在未来十年将会有巨大增长,尤其是在物联网的推动下。然而,其中许多芯片的成本将非常低,而这将不可避免地导致芯片的平均价格下降。

为了帮助芯片创新企业降低初期财务支出、风险并加快上市时间,Arm DesignStart提供了一条无需预付授权费即可获取嵌入式IP的途径。对于那些希望快速生产定制SoC的团队来说,这是一个理想的起点,因为它包括CPU和系统IP、免费的软件工具试用版,以及可获取广泛的Arm生态系统和知识库资源。

我们看到越来越多的Cortex-A处理器被应用于深度嵌入式应用程序,如果将这些Cortex-A设备视为MCU类,可能会增加MCU的平均价格。

电子工程专辑:人工智能、智能制造、自动驾驶是当前最为热门的应用领域,MCU在其中扮演着怎样的角色?

Rhonda Dirvin:工业自动化、机器人和自动驾驶汽车无疑为更加智能的微控制器提供了契机。AI芯片如果想取代传统芯片,需要具备更强的能力。例如,电机控制器可带有附加传感器来检测振动或噪声,以收集正在运行的电机的信息,然后使用机器学习算法进行电机的自动调节,提高电机运行效率。

目前来看,这些新兴应用尚处于起步阶段,规模并不大。但是,AI功能可以集成到每个MCU中。人工智能的一个子集是机器学习(ML),机器学习技术正被广泛应用于所有市场。有一个明显的趋势是,机器学习推理向“边缘”移动,甚至向最小的嵌入式设备移动,有时也被称为“远边缘”。用于Cortex-M CPU的CMSIS-NN软件库在M级设备上提供了优化的机器学习性能。这使得在“永久在线”的使用情况下,能够高效地执行机器学习应用程序,例如关键词检索和图像对象检测。

而自动驾驶需要不同类型的处理过程。某些部件需要确定性的实时响应和最高水平的系统性功能,以实现功能安全,基于Cortex-R和Cortex-M的部件可以提供这种功能组合;在一些解决方案中需要有不同安全级别的相关软件,Arm不仅提供了经过认证的工具链,许多实时操作系统也经过了认证,比如已经发布的Compiler 6和Keil RTX安全认证版本,以及平台安全架构(PSA),通过提供安全的基本构建模块,包括可信固件和示例案例分析,让安全实施变得更容易。

电子工程专辑:Arm如何将自己无可比拟的低功耗技术优势与人工智能应用相结合?

Rhonda Dirvin:AI本身也是可以节能的。例如,电机控制器可以通过附加传感器检测振动或噪声,以收集正在运行的电机的信息,然后使用机器学习算法进行电机的自动调节,提高电机运行效率。电机节省的功耗将比处理器使用的功耗大许多倍。

为了降低处理器消耗的功率,Arm拥有多种不同性能的处理器。一些用于低成本微控制器的Arm嵌入式处理器具有附加功能,用来加速机器学习算法中使用的数学函数,这可以减少其它芯片的面积和功耗。

大多数MCU都是使用较旧的节点工艺(55nm甚至更大)制造的,在这种情况下静态功耗基本不是问题。但当走向更小节点时,静态功耗就变成一个越发重要的因素。Arm的处理器与物理IP配合使用,可降低动态和静态功耗,这包括关闭当前未运行的功能块和降低电压,从而降低运行处理器所需的功耗。Arm为其Cortex-M微处理器及其神经网络处理器分别引入了优化的物理IP库,分别为POP和机器学习POP。

我们也确实看到许多领先的MCU厂商正在向更小节点演进(如40纳米)。例如,目前基于40纳米的NXP iMX RT处理器包含一个运行速度高达600MHz的Arm Cortex - M7处理器;瑞萨(Renesas)在其协同微控制器中使用40纳米工艺,而意法半导体(ST)在其近期发布的基于Cortex-M的STM32芯片中同时使用40纳米和90纳米工艺;SoC供应商RDA在其基于Cortex-M4的Wi-Fi SoC中采用了40纳米工艺。因为嵌入式闪存可用性仍然是许多MCU供应商的关键要求之一,所以要采用超过40纳米的工艺可能更具挑战性。

电子工程专辑:在MCU市场,同构和异构多核技术正成为主要趋势,您对其未来的发展有何看法?

Rhonda Dirvin:考虑MCU+MCU组合也很重要——例如,恩智浦和意法半导体都提供许多基于Cortex-M的微控制器产品,它们可以跟不同的Cortex-M处理器在非对称多处理(AMP)安排下协同工作。当然,在某些情况下,MCU+DSP、DSP+FPGA或MCU+FPGA是行得通的。但是由于在学习不同类型的技术知识以及使不同的内核能够有效地协同工作方面的挑战,采用这些组合可能收效缓慢或是有限。当然也有成功的案例——例如,赛灵思Zynq系列和Intel(Altera) Arria系列都提供基于Cortex-A处理器的部件,而Arm也在与各种供应商合作,为异构多处理领域提供新的创新解决方案。

在信号处理方面,Arm提供带有可选DSP指令集的MCU处理器解决方案,提供一体化控制和数据处理解决方案。嵌入式工程师可以非常方便地使用Arm Cortex-M处理器设计信号处理功能,节省开发时间、精力和芯片面积。此外,这也意味着工程师可以获得对广泛的Cortex-M生态系统、Arm软件库和合作伙伴软件编解码器的访问权限,为涉及传感器融合、语音和音频交互等技术的应用程序创造新机遇。

电子工程专辑:RISC-V架构最近的发展势头看上去不错,Arm是否感受到了压力?

Rhonda Dirvin:一直以来都存在相互竞争的架构,尤其是在MCU市场,RISC-V也不例外。Arm多年来已经证明,我们拥有得到广泛生态系统支持的一流技术。Arm的IP产品超越了CPU,还提供安全的、系统级的解决方案、软件和开发工具,以及广泛的第三方生态系统。Arm也有不同的授权模式来支持广泛的客户。中国客户特别感兴趣的是DesignStart计划,该计划提供免预付授权金的Arm IP。在过去12个月中,在300家DesignStart Pro项目授权厂商中,有40%来自中国,这使得很多初创公司能够设计生产定制化芯片。我相信由于Arm的持续投资并提供我们的合作伙伴和行业所需的解决方案,Arm将继续在MCU市场及其他领域取得成功。

电子工程专辑:您认为中国MCU企业这两年发展情况怎么样?如何看待中国MCU未来的发展?

Rhonda Dirvin:从全球来看,8/16位MCU约占总销售额的40%,32位MCU占60%。Arm是目前32位MCU的市场领导者,我们估计占有超过80%的市场份额。在中国市场,目前Arm在中国的授权客户数量已超过150家,中国半导体公司共累计出货了140亿颗基于Arm的芯片,中国公司制造的复杂SoC中约95%是基于Arm架构的。

中国本土的MCU供应商正在不断成长。他们与OEM厂商有着密切的关系,这样OEM厂商才能帮助他们针对最相关的终端应用产品来更好地定制芯片,同时进一步改进他们的MCU产品,以便在全球范围内竞争。一个很好的例子是兆易创新(Gigadevice),他们已经出货了超过2亿颗GD32 MCU,这是Arm帮助中国MCU合作伙伴实现双赢的一个很好的例子。他们选择了Cortex-M处理器,从而在Arm广泛的生态系统中获得了广泛的选择和灵活性。

此外,在日常产品中引入智能化的需求推动了对智能传感器和智能模拟SoC的需求,这种需求推动了定制化芯片的扩张并带来了许多好处,比如降低了组件成本、增加了功能和产品差异化。

为了推动芯片领域的创新,Arm还推出了Arm DesignStart项目,努力以最快、最简单、最低风险的方式来评估定制化芯片并将其商业化。它包括两个最受欢迎的嵌入式处理器(Cortex-M0和Cortex-M3)及其相应的系统IP,以及软件工具试用版、专家支持和丰富的资源,所有这些都无需预付授权费。

本文来源:电子工程专辑
作者:邵乐峰

围观 8
481

芯片的加密,保证了芯片内部信息的安全性。有工程师会问:芯片加密后别人还能解密吗?这芯片安全吗?本文将为大家介绍几种不同类型芯片的加密方式。

随着信息技术的发展,信息的载体——芯片的使用也越来越多了,随之而来的是各个芯片厂商对芯片保密性要求越来越高,用芯片加密的方式来确保芯片内部信息的安全性。其实芯片的安全加密问题与芯片的类型有关,不同类型的芯片加密后有不一样的效果。

市面上现有的芯片种类很多,主要包括Flash,MCU,ARM,DSP,CPLD等。

一、Flash类芯片加密

Flash类芯片包含SPI Nor FLASH ,并行Nor FLASH,NAND FLASH,EMMC等,这些Flash类的芯片都没有非常牢固的加密功能,对code区进行加密后,只能进行写保护,如果有人想复制你的代码,只要读取母片即可,所以这类芯片安全性较低。

你的芯片够安全吗?

将上图所示的信息设置好写入芯片后,对应的区域即进入保护状态,不能编程,擦除,只能通过清空加密寄存器中的信息,才能从新对芯片进行擦除,编程操作。

二、MCU,ARM类芯片加密

经常会有人就MCU加密保护后能否二次使用的问题进行咨询。对于加密后的芯片能不能二次使用这个问题,得具体看是哪个类型的芯片,类似于TI 的MSP430系列芯片加密后即不可进行二次使用,这个加密为OTP(One Time Programmable)型,只能进行一次烧录。其原理是通过高压烧断熔丝,使外部设备再也无法访问芯片,这个是物理性,不可恢复,如要加密,请慎用!

但对于大部分ARM芯片来说,加密后芯片还是可以进行二次使用的。类似于NXP ARM类型芯片有3级可选的加密,即Level 1,Level 2,Level 3。其中Level 1 就是不做读保护级别,即可以读出芯片中的数据,但不能对芯片进行编程,擦除操作。如果芯片被设置为Level 2保护,这种状态下,不能读取芯片内的程序代码内容,也不能对芯片再次做存储空间的擦写或芯片调试了。而Level 3级别的保护是不可逆的,保护后即不能进行其他操作。综上,3个级别当中的Level 1和Level 2加密后还是可以通过解密的方式对芯片进行第二次操作,这种加密等级设置是比较人性化的。下图为P800系列编程器加密设置操作界面。

你的芯片够安全吗?

三、DSP类芯片加密

该类型的芯片加密形式是通过在特定的区域写入客户的密码进行加密。这种加密是可逆的,可以通过输入对的密码进行任何操作。但是有一种方式是不可逆的,即密码为全“0”。其P800系列编程器加密设置窗口如下。

你的芯片够安全吗?

四、CPLD、FPGA类芯片加密

这类芯片加密后一般都可以通过擦除方式进行解密,不能对加密的芯片进行读取操作,这种加密对芯片来说还是比较安全的。

以上便是几种常见类型芯片的加密方式以及加密后的效果,用户可以根据芯片类型选择对应的加密方式,最大程度确保芯片内部信息的安全。

你的芯片够安全吗?

转自:ZLG致远电子 研发部

围观 7
973

ARM嵌入式系统硬件设计

图1是系统硬件结构图“系统采用外部3.6864MHz的晶振产生内核所需要的18.432MHz、36.864MHz、49.152MHz或73.728MHz的时钟。

一招教你ARM嵌入式系统硬件怎么用?

以下主要针对此硬件开发平台,进行结构、储存器扩展、主要接口、显示及其外设方面设计的介绍。

1、电源部分设计

电源是系统可靠工作的保证,包括供电和复位电路部分。系统复位模块提供CS89712启动信号。系统采用nPOR信号作为复位信号,使用复位芯片产生复位信号。如图2:

一招教你ARM嵌入式系统硬件怎么用?

整个系统的外部电源输入采用直流18V-36V,系统的供电较为复杂,电压等级多,其中CS89712芯片I/0和内核分别采用3.3V.2.5V供电,而扩展的MAX125、LCD显示器采用5V供电,同时LCD对比度调节需负电压偏置(选用MAX686芯片);而模拟量采集MAX125前向通道中滤波和电压跟随电路所用运放电源电压为正、负12V。

这里采用Ericsson的DC/DC电源模块PKC2131PI,提供隔离的正负12V和+5V,同时选用MICREL公司MIC2211-2.5/3.3BML型双输出LDO提供CS89712的3.3V和2.5V。图3为CS89712双电源供电电路:

一招教你ARM嵌入式系统硬件怎么用?

2、存储器部分设计

本系统采用FLASH存储程序和参数,使用SDRAM作为程序的运行空间。数据及堆栈。CS89712内置了SDRAM控制器和内存接口。其中FLASH部分采用2片Intel公司TE28F320B3BA110,构成32位宽8MB的FLASH,SDRAM采用2片NEC公司uPD-4564163G5,构成32位宽16MB的SDRAM,如图4:

一招教你ARM嵌入式系统硬件怎么用?

3、LCD硬件扩展设计

液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻等其他显示器无法比拟的优势,目前在智能仪表仪器和低功耗电子产品中得到了广泛的应用。

CS89712内置了LCD控制器,LCD控制器就相当于嵌入式系统的显卡,接口有以下信号:DD[0:3](数据线)、FRM(帧同步信号)、CL1(行同步信号)、CL2(象素数据时钟)、M(交流偏置信号)。这里我们扩展的是一个STN的彩色LCD,该LCD显示屏提供8位数据接口。表1为CS89712和该LCD控制信号接线对应表。

一招教你ARM嵌入式系统硬件怎么用?

4、触摸屏硬件扩展设计

触摸屏输入部分由触摸屏、触摸屏控制器组成,和LCD配合可以实现完整的人机操作界面。图7为实际的触摸屏输入系统部分,采用四线电阻式触摸屏,触摸屏控制器采用T[(BB)公司的ADS7846,其可以通过SPI接口直接和CS89712相接。

一招教你ARM嵌入式系统硬件怎么用?

5、以太网接口的设计

由于CS89712内部集成了CS8900A以太网控制器其本身带有802.3MAC引擎、Buffer、串行EEP-ROM接口和10BASE-T的模拟前端。只需增加I/O隔离滤波器和RJ45接口即可。此部分电路如图8:

一招教你ARM嵌入式系统硬件怎么用?

6、数据采集硬件扩展设计

MAX125是MAXIM公司生产的高速2X4通道同步采样14位逐次比较型A/D转换芯片,其模拟输入范围为正负5V,内部具有2.5V参考电源,内置有四个采样/保持放大器(T/H)。输入分为A、B两组,通过开关的切换可以对八个通道进行采集,转换所得的数字量都存储在4X14的RAM中。

其并行接口数据访问和总线释放的定时特性与CS89712芯片总线的特性兼容,故两者可以直接相连而不需等待状态。由于MAXI25为+5V供电,在与I/O电源电压为3.3V的CS89712联接时需要使用总线电平转换芯片74LVC245A,其中采用读写控制信号控制总线转换方向,转换完成后自动申请CS89712的外部中断EINT1,读取A/D数据自动会撤消该中断。通过在前向通道加接限幅保护、电压跟随和滤波输入电路,即可完成模拟数据采集电路的设计。

税控收款机应用举例

一、基于S3C44B0的税控收款机

1、采用嵌入式CPU(S3C44B0)
2、从系统结构上改变目前收款机应用系统中出现的高端机(由PC机组成系统)成本过高与低端机(由单片机组成系统)资源不足的状况,使嵌入式系统在税控收款机上得到广泛应用。

二、税控收款机组成框图

一招教你ARM嵌入式系统硬件怎么用?

三、税控收款机硬件组成

1、CPU:S3C44B0
2、存储器:FLASH、SDRAM、NANDFLASH
3、显示器:LCD、VFD
4、触摸屏:四线电阻式触摸屏
5、PS/2外设接口:键盘、条码扫描器、磁卡扫描器
6、RS232、并行口扩展接口:用外设扩展芯片实现
7、网络扩展接口
8、电源模块:主板电源、MODEM电源、VFD电源等

四、POS机软件组成

1、操作系统
1)采用uCLinux操作系统,不需要MMU支持,内核可裁减
2)包括了完善的TCP/IP协议栈,PPP拨号网络

2、图形系统
采用MiniGUI,中国人自行开发,界面美观,移植简单

3、应用程序
1)商业功能模块
2)税控功能模块
3)报表功能模块
4)管理设置功能模块
5)其它功能模块

来自:电源网

围观 8
1016

那么A系列的处理器,会有一个相关的术语,这些术语在这里会给大家做一个介绍,大概这些术语要给大家说一下,首先是流水线,流水线就是底层架构的术语。

流水线:

流水线其实是底层架构涉及到的术语,就比如说中间是个CPU,然后外面一个转盘围绕着它在转,它们在多任务分时的处理,那么在处理的过程中,CPU会得到指令,并且处理一些指令,那么它的过程,应该先从某个地方去取指令(F),取完指令之后要译码然后在执行,也就是基于FDE,那么这个就是我们在某一个时刻它应该做的三步操作,就这三步操作我们才能完成CPU正在进行运算,因为它必须要取指令,然后这些指令是ARM指令,CPU默认的情况下不一定认可,所以就要进行一个翻译,翻译成最简单的然后再去执行,那么这个就是第一个时刻“F-D-E”,然后马上它又转到另外一个任务里面,那么就会有一段时间的延后,那么又是一个“F-D-E”的过程,后面同样的延后又会是同样的过程,这样看来就会像一个流水线,所以我们就称为流水线,这就是CPU运转的一个机制,而这样三步就称为三级流水。后来我们在这个过程中又增加一些步骤,我们可以有多级流水,所以这个就知道这是CPU在去读取指令和运行的一个机制。

DSP-数字信号处理:

还有就是DSP-数字信号处理,这个可以把它理解为一个单独的芯片,它能够专门针对数字信号,特别是多媒体是典型的语音数字信号,它可以来单独处理,因为这块数字信号处理对芯片独占性要求挺高,如果我们用主CPU去处理,别的任务就有可能不能兼顾。

Jazelle:Jazelle是ARM里面针对JAVA这块的编程模型。

ThumbEE:这个就是Thumb指令,它的全称是Thumb的环境变量,Thumb是辅助ARM指令的另外一个指令,它是十六位的,后面的Thumb-2是Thumb的延伸,认为它有一些缺陷,就又升级了,成为十六位和三十二位并存的。

TrustZone:是ARM体系里面的安全架构。

VFP:是适量的福点运算机制。

Advanced:(SIMD NEON)

LPAE(Large Physical Address Extension)有了它之后,我们将来甚至于从硬件层次,我们就可以把我们的内存虚拟为1T,当然这个也需要依赖于我们的虚拟技术。

Virtualization:虚拟技术

big.LITTLE:什么叫做大小?就是从现在越来越强大的处理器前面,ARM的架构往往就会有一个处理器和一个协处理器,处理器我们用A15,协处理器我们用A8,那么一般情况下,任务量要求比较大的时候,就是用A15去处理,在系统没有大的使用的时候,就不需要使用A15,所以我们就切换到A8的模式,就进行一个大小的切换。切换的好处就是越来越省电,所以这个模式的主要功能就是省电。据说这种方式能比一直使用主处理器省电百分之七十左右。

A系列关键技术点:

1,32位RISC处理器,有16个32位可见寄存器。

2,哈佛结构(不是普林斯顿结构)就像写程序的时候代码区和数据区如果是存在一起的就是普林斯顿结构,如果是分开为两个地址,就是哈佛结构,哈佛结构这种形式明显扩展性要好得多。(指令和数据分开存储)

3,Thumb-2指令支持。

4,VFP和NEON可选。

5,向后兼容

6 ,4GB虚拟地址空间和最小4GB物理地址(4GB寻址)

7,内存虚拟页大小4KB,64KB,1MBand16MB

8,大小端数据访问支持。

A8处理器结构图:

ARM体系结构常用术语解释

ARM体系结构常用术语解释

它会告诉我们它有很强大的RG缓存机制,各种各样的缓存,同时他在处理这个指令的时候是基于了我们说的三级流水。就是先取码,然后再译码,还有执行,那么执行完了过后,它的重点就在加载和存取方面,这个里面有很多各种各样的接口的定义,这些接口只是为了后面的芯片商所服务的。

VS A15处理器结构图:

ARM体系结构常用术语解释

这些都是一些逻辑图,相当于它的片上系统是怎么去设计的,我们只需要关心怎么去使用它。

下面我们就开始用它,那么要用到它,我们就需要一些工具,包括交叉编译念。现在我们先给大家介绍一些工具,这些工序据有些比较大有些较小。

1,QEMU:QEMU实际上就是一个虚拟机,是一个模拟器,而且是一个软件模拟器,它可以用来模拟PC硬件,它是一套由Fabrice Bellard所编写的模拟处理器的自由软件,它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性,经由kqemu这个开源的加速器。QEMU能模拟至接近真实电脑的速度。

2,BusyBox:它实际上就是用来做linux根文件系统的,简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统的自带的shell。我们知道在linux根文件系统下面有bin,sbin这些东西,当我们从零去做ROM的时候,我们要把bin里面的工具,全都从网站下载下来编好,然后放到相应的地方,这样子之后相当于把内核这块都编好之后,就把内核挂载上文件系统,就开始把整个文件夹结构全部读出来,但是这些文件夹结构内容应该要手动的去编写,这里面就有很多工具,要一个个的去编写就很麻烦,这就需要这个工具BusyBox,这个工具就很方便,能够针对不同的平台去自动的生成这里面的东西,这样整个根文件系统就建立成功了。

3,Scratchbox:其实也是一个交叉编译平台,是帮助嵌入式Linux跨平台编译工具的集合,其目的主要是使得嵌入式Linux应用程序开发更加容易,他也提供了完整的集成工具链以用来跨平台编译集成出一个Linux发布版。

4,U-Boot:是一个大名鼎鼎的开源,是遵循GPL条款的开放源码项目。

5,UEFI and Tianocore:UEFI称为统一可扩展部件接口,它的诞生是出于一个什么样的目的?

比如说现在出现的win8,他不希望人人都去装盗版,所以他就对你的硬件有了要求,会规定必须是什么体系结构,所以这就是一种统一的相当于硬件和操作系统适配的一种标准,也就是说它指定了装操作系统可以扩展哪些硬件部件这样一些接口,这样就限定了,在有的时候做ARM开发,硬件可能不是那么规范和标准,这样就会被限定,然后我们就可以通过这个工具来模拟符合它标准的硬件,然后绕过去能够把一些ARM的OS给装上去。

介绍和安装ARM软件工具链:

ARM体系结构常用术语解释

工具链就是一个集合工具链的作用过程是由C语言然后编译,包括汇编,然后编译成一个中间代码,然后中间这个目标代码在经过连接,包括集成的内库和相应的脚本连接成,可执行的镜像,这个就是它的一个工作过程。

在ARM体系里面其实推荐了两套工具链,一套是GNU Compiler开源的工具链,还有一套是ARM本身的工具链,也就是说ARM系统本身也有工具链。

GNU Toolchain:GNU工具链即可以用来开发内核也可以用来开发应用程序。

GNU就包括make,GCC,GDB,autotools等等。

怎么去安装?

ARM体系结构常用术语解释

Eabi:e就是嵌入式,a就是应用程序,b就是二进制,i就是接口,全称就是嵌入式应用程序二进制接口,所以它编译出来的就是嵌入式Linux应用程序的二进制文件。
ARM体系结构常用术语解释

来源:麦子学院
原文链接:
http://www.maiziedu.com/wiki/arm/noun/

围观 7
1070

1.ARM中一些常见英文缩写解释

MSB:最高有效位;

LSB:最低有效位;

AHB:先进的高性能总线;

VPB:连接片内外设功能的VLSI外设总线;

EMC:外部存储器控制器;

MAM:存储器加速模块;

VIC:向量中断控制器;

SPI:全双工串行接口;

CAN:控制器局域网,一种串行通讯协议;

PWM:脉宽调制器;

ETM:嵌入式跟踪宏;

CPSR:当前程序状态寄存器;

SPSR:程序保护状态寄存器;

2.MAM 使用注意事项:

答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。

对于低于 20MHz 的系统时钟,MAMTIM 设定为 001。对于 20MHz 到 40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。

3.VIC 使用注意事项

答:如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址 0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。

4. ARM启动代码设计

答:ARM启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:

中断向量表

初始化存储器系统

初始化堆栈初始化有特殊要求的端口、设备

初始化用户程序执行环境

改变处理器模式

呼叫主应用程序

5.IRQ 和 FIQ 之间的区别

答:IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于 FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了,并应该是 IRQ 而不是 FIQ。

6.ARM处理器对异常中断的响应过程

答:ARM处理器对异常中断的响应过程如下所述:

保存处理器当前状态、中断屏蔽位以及各条件标志位;

设置当前程序状态寄存器CPSR中的相应位;

将寄存器lr_mode设置成返回地址;

将程序计数器值PC,设置成该异常中断的中断向量地址,跳转到相应异常中断处执行。

7.ARM指令与Thumb指令的区别

答:在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。 Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。

8.什么是ATPCS

答:为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。这些规则包括寄存器使用规则,数据栈的使用规则,参数的传递规则等。

9.ARM程序和Thumb程序混合使用的场合

答:通常,Thumb程序比ARM程序更加紧凑,而且对于内存为8位或16位的系统,使用Thumb程序效率更高。但是,在下面一些场合下,程序必须运行在ARM状态,这时就需要混合使用ARM和Thumb程序。

强调速度的场合,应该使用ARM程序;

有些功能只能由ARM程序完成。如:使用或者禁止异常中断;

当处理器进入异常中断处理程序时,程序状态切换到ARM状态,即在异常中断处理程序入口的一些指令是ARM指令,然后根据需要程序可以切换到Thumb状态,在异常中断程序返回前,程序再切换到ARM状态。

ARM处理器总是从ARM状态开始执行。因而,如果要在调试器中运行Thumb程序,必须为该Thumb程序添加一个ARM程序头,然后再切换到Thumb状态,执行Thumb程序。

10.ARM处理器运行模式

答:ARM微处理器支持7种运行模式,分别为:

用户模式(usr):ARM处理器正常的程序执行状态;

快速中断模式(fiq):用于高速数据传输或通道管理;

外部中断模式(irq):用于通用的中断处理;

管理模式(svc):操作系统使用的保护模式;

数据访问终止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护;

系统模式(sys):运行具有特权的操作系统任务;

未定义指令中止模式(und):当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

11.ARM体系结构所支持的异常类型

答:ARM体系结构所支持的异常和具体含义如下(圈里面的数字表示优先级):

复位①:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处执行(异常向量:0x0000,0000);

未定义指令⑥:当ARM处理器或协处理器遇到不能处理的指令时,产生为定义异常。可使用该异常机制进行软件仿真(异常向量:0x0000,0004);

软件中断⑥:有执行SWI指令产生,可用于用户模式下程序调用特权操作指令。可使用该异常机制实现系统功能调用(异常向量:0x0000,0008);

指令预取中止⑤:若处理器的预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,当预取指令被执行时,才会产生指令预取中止异常(异常向量:0x0000,000C);

数据中止②:若处理器数据访问的指令的地址不存在,或该地址不允许当前指令访问,产生数据中止异常(异常向量:0x0000,0010);

IRQ④(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可以该异常请求中断服务(异常向量:0x0000,0018);

FIQ③(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常(异常向量:0x0000,001C)。

说明:其中异常向量0x0000,0014为保留的异常向量。

12.ARM体系结构的存储器格式

答:ARM体系结构的存储器格式有如下两种:

大端格式:字数据的高字节存储在低地址中,字数据的低字节存放在高地址中;

小端格式:与大端存储格式相反,高地址存放数据的高字节,低地址存放数据的低字节。

13.ARM寄存器总结:

ARM有16个32位的寄存器(r0到r15)。

r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。

ARM有一个当前程序状态寄存器:CPSR。

一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irq

ARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。

14.存储器重新映射(Remap)的原因:

使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题;

用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少;

为超过单字转移指令范围的跳转提供空间来保存常量。

ARM中的重映射是指在程序执行过程中通过写某个功能寄存器位操作达到重新分配其存储器地址空间的映射。一个典型的应用就是应用程序存储在 Flash/ROM中,初始这些存储器地址是从0开始的,但这些存储器的读时间比SRAM/DRAM长,造成其内部执行频率不高,故一般在前面一段程序将代码搬移到SRAM/DRAM中去,然后重新映射存储器空间,将相应SRAM/DRAM映射到地址0,重新执行程序可达到高速运行的目的。

15.存储异常向量表中程序跳转使用LDR指令,而不使用B指令的原因:

LDR指令可以全地址范围跳转,而B指令只能在前后32MB范围内跳转;

芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。

16.锁相环(PLL)注意要点:

PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;

PLL只能通过软件使能;

PLL在激活后必须等待其锁定,然后才能连接;

PLL如果设置不当将会导致芯片的错误操作。

17.ARM7与ARM9的区别:

ARM7内核是0.9MIPS/MHz的三级流水线和冯&S226;诺伊曼结构;ARM9内核是五级流水线,提供1.1MIPS/MHz的哈佛结构。

ARM7没有MMU,ARM720T是MMU的;ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。

ARM7TDMI提供了非常好的性能——功耗比。它包含了Thumb指令集快速乘法指令和ICE调试技术的内核。ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。

18.VIC的基本操作如下:

答:设置IRQ/FIQ中断,若是IRQ中断则可以设置为向量中断并分配中断优先级,否则为非向量IRQ。然后可以设置中断允许,以及向量中断对应地址或非向量中断默认地址。当有中断后,若是IRQ中断,则可以读取向量地址寄存器,然后跳转到相应的代码。当要退出中断时,对向量地址寄存器写0,通知VIC 中断结束。当发生中断时,处理器将会切换处理器模式,同时相关的寄存器也将会映射。

19.使用外部中断注意

把某个引脚设置为外部中断功能后,该引脚为输入模式,由于没有内部上拉电阻,所以必须外接一个上拉电阻,确保引脚不被悬空;

除了引脚连接模块的设置,还需要设置VIC模块,才能产生外部中断,否则外部中断只能反映在EXTINT寄存器中;

要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式。

20.UART0的基本操作方法

设置I/O连接到UART0;

设置串口波特率(U0DLM、U0DLL);

设置串口工作模式(U0LCR、U0FCR);

发送或接收数据(U0THR、U0RBR);

检查串口状态字或等待串口中断(U0LSR)。

21.I2C的基本操作方法

答:I2C主机基本操作方法:

设置I2C管脚连接;

设置I2C时钟速率(I2SCLH、I2SCLL);

设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);

发送从机地址(I2DAT),控制I2CONSET发送;

判断总线状态(I2STAT),进行数据传输控制;

发送结束信号(I2CONSET)。

I2C从机基本操作方法:

设置I2C管脚连接;

设置自身的从机地址(I2ADR);

使能I2C(I2CONSET的I2EN、AA位为1);

判断SI位或等待I2C中断,等待主机操作;

判断总线状态I2STAT,进行数据传输控制。

22. PWM基本操作方法:

连接PWM功能管脚输出,即设置PINSEL0、PINSEL1;

设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟;

设置比较匹配控制(PWMMCR),并设置相应比较值(PWMMRx);

设置PWM输出方式并允许PWM输出(PWMPCR)及锁存使能控制(PWMLER);

设置PWMTCR,启动定时器,使能PWM;

运行过程中要更改比较值时,更改之后要设置锁存使能。

使用双边沿PWM输出时,建议使用PWM2、PWM4、PWM6;使用单边PWM输出时,在PWM周期开始时为高电平,匹配后为低电平,使用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。

来源:博客园 - 「大魔王」

围观 13
1718

页面

订阅 RSS - ARM