Chinaunix首页 | 论坛 | 博客
  • 博客访问: 416051
  • 博文数量: 67
  • 博客积分: 2468
  • 博客等级: 上尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-05 01:21
文章分类

全部博文(67)

文章存档

2013年(1)

2012年(65)

2011年(1)

分类: 嵌入式

2012-06-03 22:17:20

下载Linux-2.6.32.2后,安装《Mini2440 Linux移植开发实战指南》的指导,到3.5.4 编译测试 时,会有以下错误提示:

点击(此处)折叠或打开

  1. [root@localhost torvalds-linux-v2.6.32-0]# make zImage
  2. scripts/kconfig/conf -s arch/arm/Kconfig
  3.   CHK include/linux/version.h
  4. make[1]: “include/asm-arm/mach-types.h”是最新的。
  5.   CHK include/linux/utsrelease.h
  6.   SYMLINK include/asm -> include/asm-arm
  7.   CC kernel/bounds.s
  8. cc1: error: invalid option `abi=aapcs-linux'
  9. make[1]: *** [kernel/bounds.s] 错误 1
  10. make: *** [prepare0] 错误 2
原来是arch/arm/configs/mini2440_defconfig配置文档选中了Kernel Features----> Use the ARM EABI to compile the kernel ,去掉即可。
(可是后面编译打了yaffs2补丁的内核时,可能会产生问题。因此,内核的版本,编译器的版本,yaffs2的版本选择要恰当。)


原文链接:
1. 什么是 ABI
ABI,application binary interface (ABI),应用程序二进制接口。
既然是 接口,那就是某两种东西之间的沟通桥梁,此处有这些种情况:
A。应用程序 <-> 操作系统;
B。应用程序 <-> (应用程序所用到的)库
C 。应用程序各个组件之间
类似于 API 的作用是使得程序的代码间的兼容,ABI 目的是使得程序的二进制(级别)
的兼容。

2. 什么是 OABI 和 EABI
OABI 中的O,表示“Old”,“Lagacy”,旧的,过时的,OABI 就是旧的/老的ABI。
EABI 中的E,表示“Embedded”,是一种新的ABI。
EABI 有时候也叫做GNU EABI。
OABI 和EABI 都是专门针对ARM 的CPU 来说的。

3. EABI 的好处/为何要用EABI
A. 支持软件浮点和硬件实现浮点功能混用
B. 系统调用的效率更高
C. 后今后的工具更兼容
D. 软件浮点的情况下,EABI 的软件浮点的效率要比OABI 高很多。

4. OABI 和EABI 的区别
两种 ABI 在如下方面有区别:
A.调用规则(包括参数如何传递及如何获得返回值)
B.系统调用的数目以及应用程序应该如何去做系统调用
C.目标文件的二进制格式,程序库等
D.结构体中的填充(padding/packing)和对齐

参考文档:
Mini2440 Linux移植开发实战指南
阅读(843) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~