我正在为Frescale的Arm Cortex A9处理器工作。操作系统为Linux。它的运行时库已经通过-mfloat-abi=softfp为armv5架构进行了编译。我想运行一个可以为armv7-a arch编译的应用程序,甚至可以在编译时启用硬浮动选项(-mfloat-abi= hard )。
我应该期望应用程序在ARM上运行良好吗?显然,我并不期望对运行时库的访问是在“硬件”中执行的,但是我的一些代码可以与“硬”浮点一起工作吗?
相反的也是可能的吗?也就是说,如果这些库是在所有硬件加速的情况下针对特定处理器编译的,我(然后)是否可以使用softfp ABI编译一个简单的应用程序,并期望它在ARM开发板上运行良好?
谢谢你的帮助
发布于 2013-03-01 04:11:17
ARM浮动ABI正如其首字母缩写所暗示的那样,是二进制接口。如果您有两个二进制文件,例如一个可执行文件和一个共享对象(动态库),则它们需要具有相同的ABI,否则它们无法正常通信。
例如,hard和softfp ABI之间的区别在于,softfp函数期望在常规寄存器中使用浮点参数,而在硬约定中,函数期望在浮点寄存器中使用浮点参数。
https://stackoverflow.com/questions/15140572
复制相似问题