7.2.1 子程序调用机制 在嵌入式系统、实时操作系统(RTOS)、裸机固件乃至现代CPU微架构的底层世界里,“子程序调用”从来不是一句 就能轻轻带过的语法糖。它是一场精密的时空契约——调用者与被调用者之间,在毫秒甚至纳秒尺度上,就寄存器归属、栈帧布局、返回地址归属、异常可重入性、缓存一致性乃至内存屏障语义达成的一致性约定。当我们在调试一个因 后PC跳飞而崩溃的ARM Cortex-M4固件,或在分析一段被编译器内联失败导致栈溢出的FreeRTOS任务函数时,真正卡住我们的,往往不是算法逻辑,而是那几行看似平凡的子程序入口与退出代码背后,层层嵌套的实现细节。 我们今天要深入的,正是这个被教科书轻描淡写为“保存现场、跳转执行、恢复现场、返回”的机制:7.2.1 子程序调用机制。