浮点异常情况(VX_FP_TASK) .

 

总结:

    在生成任务时,如果在任务中使用浮点计算,一定需要将任务的标志VX_FP_TASK设置,否则将会出错,主要是在其他任务中出现0/0错误

产生原因:

      当没有设置浮点计算标识VX_FP_TASK时,在进入任务时没有保存浮点寄存器值,这样在任务中进行浮点运算将破坏了浮点寄存器的内容,而在任务退出后,浮点寄存器不能恢复,造成其他任务在进行浮点计算时出现浮点运算错误

     通常,任务选项里面用得最多的是VX_FP_TASK选项,这是为代码里面包含有浮点运算的任务弄的一个选项,选用这个选项VxWorks进行任务切换的时候,就会进行保存和恢复硬件浮点寄存器的操作(或是软件模拟的浮点库的操作),通常为了可靠起见,应用程序类任务(非驱动)都使用这个选项(当然,具体用不用自己要评估,如果自己很清楚里面不包含浮点运算,就没有必要了)。

 

修改办法:

    在创建任务时,设置VX_FP_TASK标识

 

2、在从硬件或者其他软件任务获取浮点数值时,一定需要确认入口的数值合法,否则如果一些非法数值将造成浮点计算溢出,从而产生浮点溢出错误;

产生原因:

      输入的浮点数非法范围,进行浮点计算将溢出;

规避办法:

      在进行浮点数入口出进行数值合法性判断,对于非法值进行预处理;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值