首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成SPARC HW陷阱(trap类型tt < 128)

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

Stack Overflow用户
提问于 2018-07-12 14:04:07
回答 1查看 225关注 0票数 1

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

SPARC提供了256个陷阱,每个陷阱都与陷阱类型tt不同,其中第一个128是HW陷阱,而128到255是软件陷阱。SPARC指令集文档表示执行

代码语言:javascript
复制
ta N    ; trap always, n = 0..127

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

是否有一种方法可以编程地导致HW陷阱,而无需编写显示每个HW陷阱条件的代码,如窗口下流、未对齐访问等?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 11:22:10

是否有一种方法可以编程地导致HW陷阱,而无需编写显示每个HW陷阱条件的代码,如窗口下流、未对齐访问等?

不,没有办法以编程的方式复制由硬件陷阱引起的所有影响。例如,一个真正的硬陷阱在TBR寄存器中设置tt (trap类型字段),以指示陷阱的类型。此字段不能由程序员通过写入TBR寄存器来修改。如果这个字段是在陷阱处理程序中读取的(无论出于什么原因),您可能无法人为地设置它。但是,正如注释所提到的,如果您的处理器实现提供了调试接口,则可能会导致硬件陷阱。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51307713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档