ZHCU876Z July 2001 – October 2023 SM320F28335-EP
C/C++ 编译器对函数调用强加了一套严格的规则。除了特殊的运行时支持函数,任何调用或被 C/C++ 函数调用的函数都必须遵循这些规则。不遵循这些规则会破坏 C/C++ 环境并导致程序失败。
有关调用惯例的详细信息,请参阅 C28x 嵌入式应用二进制接口 (EABI) 参考指南 (SPRAC71)。
图 7-1 演示了典型的函数调用。在此示例中,不能放在寄存器中的参数被传递给堆栈上的函数。该函数然后分配局部变量并调用另一个函数。此示例显示了为被调用函数分配的本地帧和参数块。没有局部变量且不需要参数块的函数不会分配本地帧。
参数块 一词是指本地帧的一部分,用于将参数传递给其他函数。采用将参数移至参数块而不是将其压入堆栈的方式来将这些参数传递给函数。本地帧和参数块同时被分配。