ARM架构过程调用标准详解

需积分: 5 7 下载量 39 浏览量 更新于2024-07-09 1 收藏 593KB PDF 举报
"该文档是ARM架构的过程调用标准,详细阐述了在ARM体系结构下进行函数调用的规范和方法。" ARM架构的过程调用标准(S32)是为ARM处理器定义的一种函数调用约定,它规定了如何在不同程序之间传递参数、保存和恢复上下文以及返回函数结果的一系列规则。这份文档由ARM Limited发布,适用于2020年第二季度的版本,旨在确保跨多个实现的一致性和兼容性。 文档首先介绍了前言部分,包括抽象、关键词、获取最新版本的途径、许可协议和非保密专有通知。其中,许可协议明确了用户对这份规格说明书的使用权,而非保密专有通知则警告了对内容的使用限制。 关于文档本身,它包含了变更控制,即如何跟踪和管理规范的更新;参考文献,列出了相关的技术资料;术语和缩写,确保读者对专业术语的理解;以及用户的许可证条款,详细规定了用户使用这份文档的权利。 文档的范围部分定义了标准适用的领域,而介绍部分明确了设计目标和符合性要求。设计目标可能包括提高性能、减少代码大小或优化内存使用等。符合性部分则指定了实现必须遵循的标准。 数据类型和对齐章节详细讨论了基本数据类型,如整型、浮点型等,以及端ianness和字节顺序的影响。此外,还涵盖了复合类型的处理。这些信息对于理解参数如何在内存中表示和传递至关重要。 基过程调用标准部分(Base Procedure Call Standard)深入到机器寄存器的使用、进程、内存和堆栈的管理,以及子例程调用的流程。这部分详细说明了如何保存和恢复调用者的状态,以及如何通过调用者清理或被调用者清理策略来处理子例程的返回。 参数传递和结果返回章节详细描述了如何将参数从调用者传递给被调用者,以及如何返回函数的结果。这涉及到寄存器使用、堆栈操作和数据对齐等细节。 在涉及Interworking的部分,文档解释了如何在不同指令集(如ARM和Thumb)之间进行切换和交互,这对于多指令集架构的兼容性至关重要。 最后,文档列出了标准变体,如VFP(Vector Floating Point)和SIMD(Single Instruction Multiple Data)向量寄存器参数,以及ARM的替代格式,比如处理半精度浮点数的方式。 总结来说,"ARM架构过程调用标准S32"是开发者和编译器设计师理解ARM平台上的函数调用机制的重要参考资料,它确保了软件的可移植性和效率。