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

如何生成SPARC HW陷阱(陷阱类型tt<128)

  •  1
  • Jens  · 技术社区  · 8 年前

    我正在编程一个SPARC v8(32位)系统,需要验证对硬件陷阱的响应。

    SPARC提供256个陷阱,每个陷阱的不同之处在于 陷阱型 第128到128种陷阱是哪一种 软件陷阱 .SPARC指令集文件称

    ta N    ; trap always, n = 0..127
    

    导致tt=N+128型陷阱。陷阱导致跳转到陷阱基址+tt*16。

    有没有办法通过编程导致硬件陷阱 没有 编写代码,显示每个硬件陷阱条件,例如窗口下溢、未对齐访问等?

    我正在考虑安装SW陷阱处理程序,只需跳转到陷阱处理程序(N-128)并祈祷好运。我对这个想法感到不舒服,因为硬件陷阱可能会导致其他处理器状态发生改变,而软件陷阱不会。。。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Neha Karanjkar    8 年前

    有没有一种方法可以在不写代码的情况下以编程方式导致硬件陷阱 显示每个硬件陷阱条件的代码,例如窗口 下溢、未对齐的通道等?

    不,没有一种方法可以通过编程复制硬件陷阱造成的所有影响。例如,一个真正的硬件陷阱在TBR寄存器中设置tt(陷阱类型字段),以指示陷阱的类型。程序员不能通过写入TBR寄存器来修改此字段。如果在陷阱处理程序中读取此字段(无论出于何种原因),您可能无法人为设置它。然而,正如评论中提到的,如果处理器实现提供调试接口,可能会导致硬件陷阱。

    我正在编程一个SPARC v8(32位)系统,需要验证响应 到HW陷阱。

    有没有一个特别的原因可以解释为什么你不能编写导致硬件陷阱的代码(例如窗口溢出或被零除等)?在sparc asm中编写小单元测试来测试这样的陷阱实际上是非常简单的。如果你想彻底测试对陷阱的响应,这实际上可能是必要的。另一种可能性是使用sparc V8模拟器。