EABI与关于通用计算机的ABI的主要区别是应用程序代码中允许使用特权指令,不需要动态链接(有时是禁止的),和更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM. 二、gnueabi相关的两个交叉编译器: gnueabi和gnueabihf 在debian源里这两个交叉编译器的定义如下: gcc-arm-Linux-gnueabi – The GNU C comp...
softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。 hard : armhf架构(对应的编译器gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省...
softfp:armel架构(对应的编译器为arm-linux-gnueabi-gcc)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。 hard:armhf架构(对应的编译器arm-linux-gnueabihf-gcc)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转...
gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture 可见这两个交叉编译器适用于armel和armhf两个不同的架构, armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)。
hf是hard float的意思,它会把浮点数计算编译成浮点处理器专门的指令 写一个测试函数float fun(float f1, float f2){return f1 + f2;} 非hf:ldrr1, [fp, #-12]@ float;普通load指令 ldrr0, [fp, #-8]@ float bl__aeabi_fadd;调用一个函数实现浮点+ hf vldr.32s14, [r7, #4];...
==两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。== arm-linux-gnueabi-gcc 和 arm-linux-gnueabihf-gcc 两个交叉编译器分别适用于 armel 和 armhf 两个不同的架构,armel 和 armhf 这两种架构在对待浮点运算采取了不同的策略(有 fpu 的 arm 才能支持这两种浮点运算策略)。
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别,arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
命名规则交叉编译工具链的命名规则为:体系架构,如,工具链提供商目标操作系统嵌入式应用二进制接口根据对操作系统的支持与否,可分为支持和不支持操作系统,如:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如。他使用的是这个专
最后,arm-linux-gnueabi-gcc和arm-linux-gnueabihf-gcc是针对不同架构(armel和armhf)的交叉编译器。armel架构使用arm-linux-gnueabi-gcc,它采用softfp模式,即使有fpu也不使用,而是使用软件模式进行浮点计算。armhf架构使用arm-linux-gnueabihf-gcc,采用hard模式,使用fpu进行浮点计算,提供最佳性能,但...