关于ARM架构的一些知识

关于ARM架构的一些知识,第1张

[TOC]

ARMv7 含16位和32位两个指令集;

ARMv8 含32位和64位两个指令集,ARM没有64位技术,它是在 MIPS64 架构上增加了ARMv7架构的技术;

ARM64 其实只是 ARMv8的一半,只含64位指令集;

A53 开始之后,都是ARM64。

ARMv8指令集分为Aarch64和Aarch32。后者与ARMv7基本相同,但是多了一些vfp的指令,或者以前的软件模拟实现改为硬件支持,可以说是靠着后者实现对Aarch32的向前兼容。

arm7版本可以安装在armv7架构的设备上【支持32位和16位指令集的设备】;

arm8版本可以安装在armv8架构的设备上【支持64位和32位指令集的设备】;

arm64版本只能安装在纯64位的arm架构的设备上。

出于低功耗、封装限制等种种原因,以前的一些ARM处理器没有独立的硬件浮点运算单元,需要手写软件来实现浮点运算。有与没有之间产生了两个不同的嵌入式应用程序二进制接口(EABI):软浮点与矢量浮点(VFP)。但是软浮点(soft float)和硬浮点(hard float)之间有向前兼容却没有向后兼容的能力,也就是软浮点的二进制接口(EABI)仍然可以用于有硬浮点计算单元的ARM处理器。

在ARM体系架构内核中,有些有浮点运算单元(fpu),有些没有,在有fpu的情况下,就可以通过gcc编译的选项-mfloat-abi来指定使用哪种,有如下三种值:

brook_linux_arm5

brook_linux_arm6

brook_linux_arm7

brook_linux_arm64

brook_linux_mips

brook_linux_mips_softfloat

brook_linux_mipsle

brook_linux_mipsle_softfloat

brook_linux_mips64

brook_linux_mips64_softfloat

brook_linux_mips64le

brook_linux_mips64le_softfloat

ARM体系结构 : https://blog.csdn.net/MyArrow/article/details/8559573?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

ARM的Cortex-A8,是由ARM控股的采用ARMv7指令集架构的处理器核心设计。

主要是ARM7上面没有MMU,跑不起来Linux,而ucLinux则是Linux改版,主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。


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

原文地址: http://outofmemory.cn/yw/6246785.html

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

发表评论

登录后才能评论

评论列表(0条)

保存