aarch架构怎么看系统

aarch架构怎么看系统,第1张

本节来讲讲 ARM 的 AArch64 体系结构,扩展一下视野。
看看什么是 AArch64 体系,然后分析一下 AArch64 体系有什么特点,最后了解一下 AArch64 体系下运行程序的基础,包括 AArch64 体系下的寄存器、运行模式、异常与中断处理,以及 AArch64 体系的地址空间与内存模型。
什么是AArch64体系
ARM 架构在不断发展,现在它在各个领域都得到了非常广泛地应用。
自从 Acorn 公司于 1983 年开始发布第一个版本,到目前为止,有九个主要版本,版本号由 1 到 9 表示。2011 年,Acorn 公司发布了 ARMv8 版本。
ARMv8 是首款支持 64 位指令集的 ARM 处理器架构,它兼容了 ARMv7 与之前处理器的技术基础,同样它也兼容现有的 A32(ARM 32bit)指令集,还扩充了基于 64bit 的 AArch64 架构。
下面我们一起来看看 ARMv8 一共定义了哪几种架构,一共有三种。
1、ARMv8-A(Application)架构,支持基于内存管理的虚拟内存系统体系结构(VMSA),支持A64、A32和T32指令集,主打高性能,在我们的移动智能设备中广泛应用。
2、RMv8-R(Real-time)架构,支持基于内存保护的受保护内存系统架构(PMSA),支持 A32 和 T32 指令集,一般用于实时计算系统。
3、ARMv8-M(Microcontroller 架构),是一个压缩成本的嵌入式架构,而且需要极低延迟中断处理。它支持 T32 指令集的变体,主打低功耗,一般用于物联网设备。
今天我们要讨论的 AArch64,它只是 ARMv8-A 架构下的一种执行状态,“64”表示内存或者数据都保存在 64 位的寄存器中,并且它的基本指令集可以用 64 位寄存器进行数据运算处理。
AArch64 体系的寄存器
一款处理器要运行程序和处理数据,必须要有一定数量的寄存器。特别是基于 RISC(精简指令集)架构的 ARM 处理器,寄存器数量非常之多,因为大量的指令 *** 作的就是寄存器。
ARMv8-AArch64 体系下的寄存器简单可以分为以下几类。
通用寄存器
特殊寄存器
系统寄存器
下面我们分别来看看这三类寄存器。
通用寄存器 R0-R30
首先来看通用寄存器(general-purpose registers),通用寄存器一共为 31 个,从 R0 到 R30,这个 31 个寄存器可以作为全 64 位使用,也可以只使用其中的低 32 位。
全 64 位的寄存器以 x0 到 x30 名称进行引用,用于 32 位或者 64 位的整数运算或者 64 位的寻址;低 32 位寄存器以 W0 到 W30 名称进行引用,只能用于 32 位的整数运算或者 32 位的寻址。为了帮你理解,我还在后面画了示意图。
register_common:

通用寄存器中还有 32 个向量寄存器(SIMD),编号从 V0 到 V31。因为向量计算依然是数据运算类的,所以要把它们归纳到通用寄存器中。每个向量寄存器都是 128 位的,但是它们可以单独使用其中的 8 位、16 位、32 位、64 位,它们的访问方式和索引名称如下所示。
Q0 到 Q31 为一个 128-bit 的向量寄存器 ;
D0 到 D31 为一个 64-bit 的向量寄存器;
S0 到 S31 为一个 32-bit 的向量寄存器;
H0 到 H31 为一个 16-bit 的向量寄存器;
B0 到 B31 为一个 8-bit 的向量寄存器;
register_simd:

特殊寄存器
特殊寄存器(spseical registers)比通用寄存器稍微复杂一些,它还可以细分,包括程序计数寄存器(PC),栈指针寄存器(SP),异常链接寄存器(ELR_ELx),程序状态寄存器(PSTATE、SPSR_ELx)等。
special_register

嵌入式的话首先把单片机玩顺了,从最简单的8位51单片机,到16位的MSP430,到32位的STM32这类都要比较熟悉。
同时也要熟悉单片机外围电路,这里用到模电数电知识。
可以利用单片机与各类模块(物联网常用蓝牙、WIFI、ZIGBEE等通信模块)搭配完成几个小项目这样掌握的更扎实一些。
接下来可以接触ARM,学LINUX,通过 *** 作系统来开发项目。

今天这篇文章,我们来认识下其多核系列(CX20x2)及CX2000嵌入式控制器的扩展模块。
多核系列嵌入式控制器包括CX2042、CX2062和CX2072,均采用英特尔至强(Intel Xeon)处理器。其中:
CX2042采用英特尔至强(Intel Xeon)D-1527四核处理器,主频22 GHz;
CX2062采用英特尔至强(Intel Xeon)D-1548八核处理器,主频20 GHz;
CX2072采用英特尔至强(Intel Xeon)D-1567十二核处理器,主频21 GHz;
除此之外,多核系列嵌入式控制器的其它配置都相同,包括:
集成了2 GB的AMD GDDR5图像处理内存;
集成了8 GB的DDR4内存,最大可扩展到32GB;
集成了128KB的非易失存储器,在没有UPS的情况下可用于数据的永久保存;
集成了4个USB 30接口和2个10GB以太网口;
1个DVI-I视频接口和一个可选通信接口;
与CX2000系列模块兼容,可使用CX2100-0014或者CX2100-0904供电;
采用Windows10 64位物联网企业版(2016 LTSB,长期服务版);
使用TwinCAT3编程;

1、集成在keil中,没有所谓移植概念。针对任何MCU都可以一键添加(试想一下,如果你将来用的不是STM32,那么移植OS是不是还是那么容易);
2、占用资源极小。大约5kB,而且针对cortex系列ARM官方优化,效率不言自明;
3、组件丰富。常用中间件USB/network/GUI/文件系统等,ARM官方已经准备好,只需要在keil中一键添加,同样没有移植概念;
4、仿真非常方便。在keil的debug模式中,轻松查看任务的CPU、内存占用,还有各任务的运行时间、运行状态,各任务之间如何抢占,非常直观,不需要像其他RTOS那样调用专用的查看函数;
5、CMSIS RTOS是ARM现在热推的物联网 *** 作系统mbedOS的基础,搞懂这个RTOS API,mbedOS更容易上手,物联网是大势所趋,ARM的在这个浪潮中的地位众所周知(软银收购ARM的核心原因),物联网以后估计会产生大量的相关工作机会;
6、使用极简单。再次提醒,CMSIS RTOS只是一套API,有兴趣的可以去研究它封装OS源码,没兴趣的,看看API拿来就用;
7、免费!这点和freeRTOS一样,比uc/oS更有潜力,不过freeRTOS是个人开源项目,后续升级维护缺乏商业模式,而ARM刚从软银那里搞来大笔钱,估计后续发展推广更为强劲,话说回来,如果freeRTOS真的非常优秀,ARM也可以对它进行封装。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/10567170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存