EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
交叉编译器 ARM-linux-gnueabi 和 arm-linux-gnueabihf 的区别自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟….. 一. 什么是ABI和EABI
9 x3 ?' D4 V% W0 |1) ABI: 二进制应用程序接口(Application Binary InteRFace (ABI) for the ARM Architecture)
; H7 x, v' k; ]( X在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.
7 E1 I5 o/ J+ ^8 r5 N' \ABI涵盖了各种细节,如:
2 i L! w6 m8 p; H5 f数据类型的大小、布局和对齐;
' ?, w, r7 G% d3 B% V4 P调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;
3 j2 s- O& j8 ]# c- R : B; J+ A) s5 d/ o1 E7 E
: G% o: w6 {+ t9 e+ I
& g- [9 O( q% \( A8 T( ^# V( A8 m1 j) }+ A- n- o- D0 k- q
. q: ~+ ]/ m: {, U0 i5 B/ c8 `! B! q( A4 V: O: x- u- D
5 l! Z, w$ P! N( n8 x3 M* T5 U- `( e+ v H$ A3 j0 a
/ @/ R/ g+ w0 U
- y6 U5 Q# P: L0 V) \: Y |