powerpc,e300的核,发生了浮点除零异常,可以恢复吗?

发布于 2022-09-12 01:48:54 字数 332 浏览 22 评论 9

问大家一个问题,powerpc,e300的核,发生了浮点除零异常,然后异常可以恢复吗,恢复到下一条指令,我的异常处理里做了处理,跳到下一条指令运行?可以吗?
我恢复了cpu的msr,然后修改了srr0为下一条指令地址,然后rfi指令,本来应该回到出错指令的下一条指令,可是发现还是会进入浮点除零异常,客户需要我们处理浮点除零异常,我试验了,对齐,非定义指令等异常都可以这样,唯独浮点除零不可以??
是需要清除fpscr等寄存器的状态吗,还是需要设置一下?
我没有用linux,自己写的一个类似uboot的程序,自己加异常处理。

客户提出要求,发生浮点除零的异常时,系统不能宕机,得继续下一条指令继续运行

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

神魇的王 2022-09-19 08:17:42

学习了.

紧拥背影 2022-09-19 06:39:06

有些指令用于修改FPSCR中的一些域,你这个可以用mtfsb0试一下。

小…楫夜泊 2022-09-18 23:48:19

嗯,大大说得有道理,呵呵,是的,是0x700的异常,Program Interrupt。
我修改了srr0,使得加了4,是出错指令的下一条指令。手册里说:ZX Floating-point zero divide exception. This is a sticky bit. 是sticky位,感觉不能清除,我不能清掉FPSCR[ZE],因为我本身就要捕获这个异常,linux比较牛逼,居然没有使能这个异常,所以也不会报错!!!

呢古 2022-09-18 19:41:14

如果是除零,你说的是不是Program Interrupt?再次进入异常,你有没有检查SRR0是不是还是原来的值而不是你修改之后的?

你可以返回之前清除FPSCR[ZX]试一下,或一启动就把FPSCR[ZE]清掉,禁止Zero Divide Exception呢?很可能和这个寄存器有关,在Programming Environment中的描述比E300手册中更详细一些,你可以参考一下。

对你而言 2022-09-17 21:02:19

我恢复了cpu的msr,然后修改了srr0为下一条指令地址,然后rfi
发现还是会进入浮点除零异常
客户需要我们处理浮点除零异常
我试验了,对齐,非定义指令等异常都可以这样,唯独浮点除零不可以
我设置了srr0,人工修改了srr0的值,加了个4,但回来后又进入了异常。
我用仿真器抓srr0了,返回的时候是加了4的地址,难道我异常里面修改srr0没有成功?
但是我执行rfi后,按道理,应该是执行srr0的地址啊,类似于arm的pc指针

雪落纷纷 2022-09-17 05:35:58

The rfi instruction has one syntax form and does not affect Condition Register Field 0 or the Fixed-Point Exception Register.

岁月流歌 2022-09-16 18:27:21

cjaizss好久不见~呵呵
FEX Floating-point enabled exception summary. Signals the occurrence of any enabled exception conditions. It
is the logical OR of all the floating-point exception bits masked by their respective enable bits (FEX = (VX &
VE) ^ (OX & OE) ^ (UX & UE) ^ (ZX & ZE) ^ (XX & XE)). The mcrfs, mtfsf, mtfsfi, mtfsb0, and mtfsb1
instructions cannot alter FPSCR[FEX] explicitly. This is not a sticky bit.

踏月而来 2022-09-14 16:49:11

当然有了,呵呵,fpscr可以初始很多异常的~

晨与橙与城 2022-09-14 02:16:04

浮点除零有异常吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文