ARM架构应用二进制接口调用规范详解

5星 · 超过95%的资源 需积分: 10 20 下载量 79 浏览量 更新于2024-07-20 收藏 289KB PDF 举报
ARM调用规范(ProcedureCallStandard for the ARM Architecture, APCS)是ARM架构应用程序二进制接口(Application Binary Interface, ABI)的一部分,旨在提供标准的函数调用和数据布局规则。该文档,编号为ARMIHI0042F,自2003年至2015年多次更新,直至ABI release 2.10,最后修订日期为2015年11月24日。它详述了在ARM架构上编写程序时,如何正确执行函数调用,包括参数传递、返回值处理、寄存器分配以及内存管理等关键细节。 APCS定义了以下核心知识点: 1. **函数调用和调用约定**: APCS规定了函数调用的方式,包括调用者和被调用者之间的责任划分,比如参数传递的顺序、方向和大小。这涉及到是否使用堆栈、寄存器还是内存来传递数据,以及调用者如何保存现场信息以便于函数返回后恢复。 2. **数据布局**: APCS定义了全局变量、局部变量和函数参数在内存中的存储位置,这对于编译器生成的机器代码的可移植性至关重要。这可能涉及字节对齐、endianness(大端或小端)和内存区域(如栈帧、寄存器或内存区域)的选择。 3. **版本和更新**: 提醒读者检查ARM信息中心(http://infocenter.arm.com/)获取最新版本,特别是对于旧版文档。如果发现错误或问题,应报告至指定的邮箱armdoteabiatarmdotcom。 4. **许可证条款**: 文档使用的是有限的 royalty-free license,具体条款在Section 1.4(ARM合同参考LEC-ELA-00081V2.0)中详细说明。使用者在下载或使用规范时必须仔细阅读这些条款。 APCS ARM Procedure Call Standard 是一个核心的软件开发指南,为开发者在ARM平台上编写高效、可移植的程序提供了统一的规则。理解并遵循这些标准,能够确保不同硬件平台上的代码能正确地进行函数调用和数据交换,从而实现跨平台兼容性和性能优化。