代码之家  ›  专栏  ›  技术社区  ›  sparklewhiskers

在PowerPC上处理外部异常时使用r1堆栈指针

  •  3
  • sparklewhiskers  · 技术社区  · 16 年前

    我正在编写一个汇编程序例程,以处理EABI嵌入式PowerPC应用程序中的0x500外部/递减器异常。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Andrew Klossner Andrew Klossner    16 年前

    嵌入式系统以两种方式做到这一点。如果您完全确信堆栈指针将始终指向有效帧,并且堆栈中有足够的空间容纳新帧,那么请继续使用它。如果堆栈指针可能并不总是有效,您应该保存旧的堆栈指针(通常在SPRG中)并设置自己的堆栈指针。

        2
  •  1
  •   Crashworks    16 年前

    我认为在堆栈上保存寄存器上下文的唯一缺点是,您可能会遇到的异常之一是堆栈溢出!

        3
  •  1
  •   Gerhard    16 年前

    我已经将当前上下文保存到当前堆栈中,没有任何问题。

    您需要区分要从中返回的异常和没有返回或堆栈不可信的“致命故障”异常。