第1部分- Linux ARM汇编-ARM技术变迁演进和ARMv8-a架构

第1部分- Linux ARM汇编ARM技术变迁

关于ARM版本

先来看下ARM版本如下图:

http://p9.qhimg.com/t01651a79d1c8d4db44.png

Tips:Cortex-A53同样是采取了ARMv8-A架构,能够支持32位的ARMv7代码和64位代码的AArch64执行状态。

ARM Cortex内核系列提供非常广泛的具有可扩展性的性能选项,设计人员有机会在多种选项中选择最适合自身应用的内核,而非千篇一律的采用同一方案。Cortex系列组合大体上分为三种类别:

  • Cortex-A—面向性能密集型系统的应用处理器内核
  • Cortex-R—面向实时应用的高性能内核
  • Cortex-M—面向各类嵌入式应用的微控制器内核

In 2009 the ARM7 accounted for 55% of the processor shipments, with

all Cortex processors contributing only 1%.

By 2012 the ARM7 shipments had dropped to 36%, with the Cortex-M family shipments contributing 22%

每个核使用的ARM体系结构的版本如下图:

不同的体系结构有不同的指令集变化,但是都保持了向上兼容。每个体系结构有包含了不同的处理器型号,例如ARM7可能跨越不同的体系结构。

ARM技术变迁

ARMv8-A架构

  • 新增一套64位的指令集,称作A64
  • 支持现场32位指令集,成为A32和T32,就是以前的ARM和Thumb指令集
  • 定义AArch64和AArch32两套运行环境,分别指向64位和32位指令集,软件可以在需要的时候进行切换。
  • 在ARMv7安全扩展的基础上,新增了安全模型。
  • 在ARMv7虚拟化扩展的基础上提供了完整的虚拟化框架,从硬件上支持虚拟化

典型嵌入式系统

编译器

目前常用的ARM编译环境有2种:

ARMASM: ARM公司的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照ARM的规定,类似在X86中Intel的汇编编译器。

GNU: GNU工具的ARM版本,与ARMASM略有不同;

arm公司出的ARM编译器,包括以下几个:

  • armclang:  编译 c ,c++, GNU assembly language的源代码,不能编译ARM汇编代码
  • armasm: 只能编译 arm汇编代码
  • armlink:  链接器,用来将目标代码,链接成可执行程序
  • armar:  打包,将目标代码打包成一个库
  • fromelf: 将可执行程序,转换为其他的镜像文件

字节新约定

字(Word):在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。

半字(Half-Word):在ARM体系结构中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。

字节(Byte):在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。

 

ARM 采用的是32位架构.

ARM 约定:

Byte : 8 bits

Halfword :16 bits (2 byte)

Word : 32 bits (4 byte)

 

异常等级

软件运行异常级别:

EL0: 普通用户应用程序

EL1: 操作系统内核通常被描述为特权

EL2: 管理程序

EL3: 低级固件,包括安全监视器

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值