当前位置:首页 » 编程软件 » arm11编译器

arm11编译器

发布时间: 2022-06-01 06:46:21

❶ ttys0超级终端。linux新手,arm11开发板建立交叉编译环境,那个超级终端是啥,在linux下安装还是windows下

使用Linux,你可以不支付的牌照费,它是免费软件。不能使用windows操作系统开发ARM吗?是的,但你需要购买大量的信息。包括开发软件API。臂(芯片)和一个用户的操作系统到底是什么关系呢?硬件和软件之间的区别。 P4和XP一样。我看到深圳市英蓓特做了深圳市英蓓特IDE的使用MCU IDE,安装在Windows系统中,也可以用来做arm开发,如果这是一个IDE,安装在您的电脑上,然后双击在模拟器上,然后连接到开发板就可以了,为什么有这么多的人想使用Linux系统吗?如果有代码的WINDOS高昂的牌照费和相关故作高深的垃圾,但也是开源和Linux的基本上差不多。这是嵌入式Linux开发人员的原因。 Linux系统的IDE是什么?一般用vi或emacs更大的日食,Anjuta集成开发环境,kdeveloper ...但是,人们一般不会有大的IDE软件开发Linux。几乎是XP的超级小型机下,但方便多了。 “这句话到底是什么意思?具体怎么样?他的说法是不正确,你控制的串行的minicom的功能基本上涵盖了所有,超级终端是一个孩子的版本只。具体用法之后,你已经安装的Linux的人看看就可以了本地编译器工具集编译的代码仅适用于机(大多数PC X86)运行ARM开发需要一个本地编译器,但编译器运行的代码来生成ARM的交叉编译器工具集是一组。
因此,与机床设定的目标名称,选择不同的具体含义是非常必要的arm-linux:一个比较流行的名字,支持ELF格式的(ARMLinux标)。除了橡果用户使用老的a.out格式,臂是linuxaout,选择a.out格式,ARMLinux基本不支持它。AOUT臂,臂COFF,并推导出ARM-ELF,手臂的经验:其他格式的名称,你也可以将版本信息中,例如:armv2: ARMV2支持26位模式。armv3l armv3b:ARMV3核小字节(l)或字节(B)模式。armv4l armv4b还支持小字:ARMV4核心,如:StrongARM的,ARM7TDMI,ARM8,ARM9核,也支持小字节(l)或字节(B),armv5b模式。armv5l:(ARMV5)核,如:ARM10的XScale核心。节(l)或字节(B)模式,选择什么样的名字定制ARM交叉编译器工具集不有太大的影响,但是我们使用的名称会更好。

❷ ARM9和ARM11用的交叉编译器是否一样

arm9-linux-gcc arm11-linux-gccarm9-linux-gcc arm11-linux-gcc啊

❸ 1.ARM编译器是一款什么样的软件 2.ARM产品线包含哪些产品 3.ARM代理商目前有哪些

ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。ARM处理器的三大特点是:耗电少功能强、8位/16位/32位双指令集和市场用户广。
ARM开发工具
杭州通格信息技术有限公司是ARM公司官方授权的,浙江区全线开发工具产品代理商,提供ARM公司工具产品在国内的销售、更新、升级和技术支持等服务。
软件开发工具:DS-5、RVDS、Keil MDK-ARM、Keil C51、Keil C166、Keil C251。
仿真器:DSTREAM、RVI&RVT2、ULINK2、ULINKpro、ULINK-ME。
ARM内核FPGA开发板:ARM9、ARM11、Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A12、Cortex-A15、Cortex-A53和Cortex-A57开发板。
Keil MCU开发板:基于ARM7、ARM9、Cortex-M0、M3、M4内核的NXP、ST芯片系列开发板。
杭州通格信息技术有限公司是ARM公司在浙江区全线开发工具代理商。上海摄氏度信息科技有限公司做全国的。

❹ x86与ARM架构下的编译器的区别

ARM是简单指令集。。。 指令集长度短

❺ ARM11 680MHz 和TI OMAP3630 1GHz两个CPU谁更强悍一点!

TI OMAP3630强。TI OMAP3630是基于ARM公司的cortext a8架构。cortext a8架构是ARM11升级版本。无论执行效率还是主频都比ARM11强

❻ ARM7,ARM9,ARM11等有啥区别

简单点:
arm7没有保护模式需要MMU单元,功能上来说一般用作实时控制系统。
arm9以上都有MMU单元,功能比arm7有很大提高,采用了伪哈弗结构,指令处理速度快很多。由于有MMU,所以arm9以上就可以运行嵌入式linux和wince等操作系统。
学嵌入式,要学的东西多了,如果你一点单片机和操作系统的概念也没有,就先恶补这两个内容先吧。
linux只是一个开源的unix操作系统,与windows不同之处,是开源,谁都可以获得源代码,但是免费的东西总是没那么好使,所以才有windows的市场,windows功能以及平台支持软件比linux多多了,但是由于linux是开源的,因此容易被人们修改适合自己特定的需要,因此linux首先就成了嵌入式系统的首选。
arm是一种处理器体系,与语言无关,你用汇编、C、C++都可以开发程序,只要你能找到这样的编译器,目前通常是用C语言开发,因为这样的编译器多而且好用。而有些直接与硬件交互的编程汇编更加好使。
你一点概念都没有,还是先学学基本的吧,嵌入式涉及的面太大了,估计需要几年才能有个概念。

❼ 初学者想学ARM嵌入式,应该选ARM9还是ARM11开发板

对于ARM嵌入式的初学者,建议用ARM9开发板。
首先,从功能上来说,ARM11要比ARM9强一些,但是性能优异并不代表适合初学者。对于初学者来说ARM11的有些功能是冗余。
其次,学习ARM9或者ARM11就在所难免学习其所支持的操作系统Linux(ARM11可以支持Android)。目前,市面上ARM9的开发版的价格要比ARM11低很多,而两者都可以运行Linux操作系统。并且ARM9开发板的资料和教学视频也更多一些。jz2440+韦东山系列教学视频,mini2440+国嵌视频都是不错的选择。
最后,学习ARM9,可以按Linux应用开发、驱动开发顺序学习。如果想学习Android系统开发,可以学完ARM9再学习ARM11开发板下的安卓系统开发。因为安卓系统就是Linux内核+libc库用Java封装而成。

❽ ARM11的内核特点

ARM11处理器是为了有效的提供高性能处理能力而设计的。在这里需要强调的是,ARM并不是不能设计出运行在更高频率的处理器,而是,在处理器能提供超高性能的同时,还要保证功耗、面积的有效性。ARM11优秀的流水线设计是这些功能的重要保证。
ARM11处理器的流水线和以前的ARM内核不同,它由8级流水线组成,可以比5级流水线的ARM9达到更高的运行频率。
从通常的角度说,过长的流水线往往会削弱指令的执行效率。一方面,如果随后的指令需要用到前面指令的执行结果作为输入,它就需要等到前面指令执行完。ARM11处理器通过forwarding来避免这种流水线中的数据冲突,它可以让指令执行的结果快速进入到后面指令的流水线中。另一方面,如果指令执行的正常顺序被打断(如出现跳转指令),普通流水线处理器往往要付出更大的代价,ARM11通过实现跳转预测技术来保持最佳的流水线效率。这些特殊技术的使用,使ARM11处理器优化到更高的流水线吞吐量的同时,还能保持和5级流水线(如ARM9处理器中的流水结构)一样的有效性。 跳转指令通常都是条件执行的。问题在于那些决定是否跳转的条件要在跳转指令被译码的后3~4个周期才能就绪。如果不做特殊处理,跳转指令必须等待,这样使指令执行效率变得让人难以忍受。跳转预测就是用来帮助解决这种延迟的。ARM11处理器提供两种技术来对跳转作出预测—动态预测和静态预测。
动态预测:在ARM11处理器中包含了64个4状态跳转地址缓存器(4-state branch target address cache)来保存最近发生的跳转指令的结果。通过对这些历史纪录的查找,处理器可以预测出当前的跳转指令是否会被执行。
静态预测:当在动态预测的缓存器中无法查到和当前指令匹配的记录,ARM11处理器就从跳转的方式来判断是否执行。如果是向回跳转,大多数情况是遇到一个循环,处理器会假设这条指令被执行。如果是向前跳转,处理器会假设这条指令不被执行。
动态预测和静态预测的组合使ARM11处理器能达到85%的预测正确性,对于每一个正确的预测,给指令执行带来的是减少5个时钟周期的等待时间。 在ARM11处理器中,指令和数据可以更长时间的被保存在Cache中。一方面是由于物理地址Cache的实现,使上下文切换避免了反复重载Cache,另一方面是由于ARM11的Cache还有很多其它新颖的技术特点。
如果数据的访问引起了CacheMiss,Cache将到存储器中读取需要的数据。但是ARM11处理器的流水线并不会停止下来。只要后面的指令没有用到Cache Miss将读回来的数据,ARM11处理器就会继续执行下去。即使下一条指令还是存储器访问指令,只要数据存放在Cache中,ARM11也会允许这条指令被执行。只有这条指令又引起一次CacheMiss,处理器才会停止下来。在大多数应用中,经过编译器调配后,这种情况并不多见。 尽管ARM11是单指令发射处理器,但是在流水线的后半部分允许了极大程度的并行性。一旦指令被解码,将根据操作类型发射到不同的执行单元中。ARM11的数据通路中包含多个处理单元,允许ALU操作、乘法操作和存储器访问操作同时进行。
考虑到不同的指令需要不同的执行时间,当三类指令先后被发射到流水线中,它们就可以同时被执行。而且ARM11处理器允许指令的乱序完成,如果在指令之间没有数据的相关性,所有指令都可以不必等待前面的指令完成而结束自己的执行。 ARM11处理器将浮点运算当成一个可供用户选择的设计。用户可以在向ARM要求授权的时候选择是否包括浮点处理器的内核。在流水线上的重要区别不仅是为了达到更高的性能,还是从实现的角度来考虑的。所以,ARM11内核在运行于极高频率的同时,也能非常容易的被集成在SoC设计中。同时,ARM11处理器提供的向上兼容性,使OEM可以放心的选用任何基于ARM的产品。

❾ arm11开发环境是什么

我在ubuntu 10的系统下运行vim gcc进行编译s3c6410
不一定要在ubuntu 只要是linux平台就行 类似的还有小红帽等等

❿ 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟…..
一. 什么是ABI和EABI
1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)
在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.
ABI涵盖了各种细节,如:
数据类型的大小、布局和对齐;
调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;
系统调用的编码和一个应用如何向操作系统进行系统调用;
以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。
一个完整的ABI,像Intel二进制兼容标准 (iBCS) ,允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。
ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
2) EABI: 嵌入式ABI
嵌入式应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。
开发者使用自己的汇编语言也可以使用EABI作为与兼容的编译器生成的汇编语言的接口。
支持EABI的编译器创建的目标文件可以和使用类似编译器产生的代码兼容,这样允许开发者链接一个由不同编译器产生的库。
EABI与关于通用计算机的ABI的主要区别是应用程序代码中允许使用特权指令,不需要动态链接(有时是禁止的),和更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM.
二. gnueabi相关的两个交叉编译器: gnueabi和gnueabihf
在debian源里这两个交叉编译器的定义如下:
gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture
gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture
可见这两个交叉编译器适用于armel和armhf两个不同的架构, armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)
其实这两个交叉编译器只不过是gcc的选项-mfloat-abi的默认值不同. gcc的选项-mfloat-abi有三种值soft,softfp,hard(其中后两者都要求arm里有fpu浮点运算单元,soft与后两者是兼容的,但softfp和hard两种模式互不兼容):
soft : 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。
softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。
hard : armhf架构(对应的编译器gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换, 性能最好,但是中断负荷高。
把以下测试使用的c文件内容保存成mfloat.c:
#include <stdio.h>
int main(void)
{
double a,b,c;
a = 23.543;
b = 323.234;
c = b/a;
printf(“the 13/2 = %f\n”, c);
printf(“hello world !\n”);
return 0;
}
1)使用arm-linux-gnueabihf-gcc编译,使用“-v”选项以获取更详细的信息:
# arm-linux-gnueabihf-gcc -v mfloat.c
COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=hard’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
-mfloat-abi=hard,可看出使用hard硬件浮点模式。
2)使用arm-linux-gnueabi-gcc编译:
# arm-linux-gnueabi-gcc -v mfloat.c
COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=softfp’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
-mfloat-abi=softfp,可看出使用softfp模式。
三. 拓展阅读
下文阐述了ARM代码编译时的软浮点(soft-float)和硬浮点(hard-float)的编译以及链接实现时的不同。从VFP浮点单元的引入到软浮点(soft-float)和硬浮点(hard-float)的概念
VFP (vector floating-point)
从ARMv5开始,就有可选的 Vector Floating Point (VFP) 模块,当然最新的如 Cortex-A8, Cortex-A9 和 Cortex-A5 可以配置成不带VFP的模式供芯片厂商选择。
VFP经过若干年的发展,有VFPv2 (一些 ARM9 / ARM11)、 VFPv3-D16(只使用16个浮点寄存器,默认为32个)和VFPv3+NEON (如大多数的Cortex-A8芯片) 。对于包含NEON的ARM芯片,NEON一般和VFP公用寄存器。
硬浮点Hard-float
编译器将代码直接编译成发射给硬件浮点协处理器(浮点运算单元FPU)去执行。FPU通常有一套额外的寄存器来完成浮点参数传递和运算。
使用实际的硬件浮点运算单元FPU当然会带来性能的提升。因为往往一个浮点的函数调用需要几个或者几十个时钟周期。
软浮点 Soft-float
编译器把浮点运算转换成浮点运算的函数调用和库函数调用,没有FPU的指令调用,也没有浮点寄存器的参数传递。浮点参数的传递也是通过ARM寄存器或者堆栈完成。
现在的Linux系统默认编译选择使用hard-float,即使系统没有任何浮点处理器单元,这就会产生非法指令和异常。因而一般的系统镜像都采用软浮点以兼容没有VFP的处理器。
armel ABI和armhf ABI
在armel中,关于浮点数计算的约定有三种。以gcc为例,对应的-mfloat-abi参数值有三个:soft,softfp,hard。
soft是指所有浮点运算全部在软件层实现,效率当然不高,会存在不必要的浮点到整数、整数到浮点的转换,只适合于早期没有浮点计算单元的ARM处理器;
softfp是目前armel的默认设置,它将浮点计算交给FPU处理,但函数参数的传递使用通用的整型寄存器而不是FPU寄存器;
hard则使用FPU浮点寄存器将函数参数传递给FPU处理。
需要注意的是,在兼容性上,soft与后两者是兼容的,但softfp和hard两种模式不兼容。
默认情况下,armel使用softfp,因此将hard模式的armel单独作为一个abi,称之为armhf。
而使用hard模式,在每次浮点相关函数调用时,平均能节省20个CPU周期。对ARM这样每个周期都很重要的体系结构来说,这样的提升无疑是巨大的。
在完全不改变源码和配置的情况下,在一些应用程序上,使用armhf能得到20%——25%的性能提升。对一些严重依赖于浮点运算的程序,更是可以达到300%的性能提升。
Soft-float和hard-float的编译选项
在CodeSourcery gcc的编译参数上,使用-mfloat-abi=name来指定浮点运算处理方式。-mfpu=name来指定浮点协处理的类型。
可选类型如fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp16,vfpv3-d16,vfpv3-d16-fp16,vfpv3xd,vfpv3xd-fp16,neon,neon-fp16,vfpv4,vfpv4-d16,fpv4-sp-d16,neon-vfpv4等。
使用-mfloat-abi=hard (等价于-mhard-float) -mfpu=vfp来选择编译成硬浮点。使用-mfloat-abi=softfp就能兼容带VFP的硬件以及soft-float的软件实现,运行时的连接器ld.so会在执行浮点运算时对于运算单元的选择,
是直接的硬件调用还是库函数调用,是执行/lib还是/lib/vfp下的libm。-mfloat-abi=soft (等价于-msoft-float)直接调用软浮点实现库。
在ARM RVCT工具链下,定义fpu模式:
–fpu softvfp
–fpu softvfp+vfpv2
–fpu softvfp+vfpv3
–fpu softvfp+vfpv_fp16
–fpu softvfp+vfpv_d16
–fpu softvfp+vfpv_d16_fp16.
定义浮点运算类型
–fpmode ieee_full : 所有单精度float和双精度double的精度都要和IEEE标准一致,具体的模式可以在运行时动态指定;
–fpmode ieee_fixed : 舍入到最接近的实现的IEEE标准,不带不精确的异常;
–fpmode ieee_no_fenv :舍入到最接近的实现的IEEE标准,不带异常;
–fpmode std :非规格数flush到0、舍入到最接近的实现的IEEE标准,不带异常;
–fpmode fast : 更积极的优化,可能会有一点精度损失。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:645
制作脚本网站 发布:2025-10-20 08:17:34 浏览:936
python中的init方法 发布:2025-10-20 08:17:33 浏览:632
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:821
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:731
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1066
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:299
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:160
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:852
python股票数据获取 发布:2025-10-20 07:39:44 浏览:763