标签:物理 逻辑 abr 下载 rust 需要 使用 tools mil
那么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处理器结构图:
它会告诉我们它有很强大的RG缓存机制,各种各样的缓存,同时他在处理这个指令的时候是基于了我们说的三级流水。就是先取码,然后再译码,还有执行,那么执行完了过后,它的重点就在加载和存取方面,这个里面有很多各种各样的接口的定义,这些接口只是为了后面的芯片商所服务的。
VS A15处理器结构图:
这些都是一些逻辑图,相当于它的片上系统是怎么去设计的,我们只需要关心怎么去使用它。
下面我们就开始用它,那么要用到它,我们就需要一些工具,包括交叉编译念。现在我们先给大家介绍一些工具,这些工序据有些比较大有些较小。
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软件工具链:
工具链就是一个集合工具链的作用过程是由C语言然后编译,包括汇编,然后编译成一个中间代码,然后中间这个目标代码在经过连接,包括集成的内库和相应的脚本连接成,可执行的镜像,这个就是它的一个工作过程。
在ARM体系里面其实推荐了两套工具链,一套是GNU Compiler开源的工具链,还有一套是ARM本身的工具链,也就是说ARM系统本身也有工具链。
GNU Toolchain:GNU工具链即可以用来开发内核也可以用来开发应用程序。
GNU就包括make,GCC,GDB,autotools等等。
怎么去安装?
Eabi:e就是嵌入式,a就是应用程序,b就是二进制,i就是接口,全称就是嵌入式应用程序二进制接口,所以它编译出来的就是嵌入式Linux应用程序的二进制文件。
来源:麦子学院
原文链接:http://www.maiziedu.com/wiki/arm/noun/
标签:物理 逻辑 abr 下载 rust 需要 使用 tools mil
原文地址:http://www.cnblogs.com/maizi008/p/7601832.html