Experimental Physics and
| |||||||||||||||
|
We're getting a floating point exception running iocInit() on a mips hkbaja47 with 3.14.8.2 exampleApp. Specifically this is the "timerQueue" task. Tracking this down it points to epicsEventWaitWithTimeout() inside base-3.14.8.2/src/libCom/osi/os/vxWorks/osdEvent.c The double timeOut passed in is DBL_MAX size (1.79769e+308) and used to calculate a semTake timeout. Basically, semTake and wait a very long time: int ticks = timeOut*sysClkRateGet(); status = semTake((SEM_ID)id,ticks); The mips can't seem to handle the double to int conversion and ends up with an FPE and I think it's FPE_INVALID_OP. It can handle this when ticks is clipped to LONG_MAX*1.0. LONG_MAX*1.1 fails. We're wondering if there's any other gotchas if we do this for our mips targets? Of course it would be better if we could all run the same code. :-) Maybe we need to disable some FPE's for the mips? Does EPICS rely on disabling FPE's for all tasks?
FPE Exception Exception Program Counter: 0x80d3c22c Status Register: 0x30006701 Cause Register: 0x0000003c Task: 0x80f20870 "timerQueue" iocInit: All initialization complete
-> ti 0x80f20870 NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY ---------- ------------ -------- --- ---------- -------- -------- ------- ----- timerQueue 80d3c028 80f20870 129 SUSPEND 80d3c22c 80f205b8 0 0 stack: base 0x80f20870 end 0x80f1d990 size 11840 high 1464 margin 10376 options: 0xc VX_DEALLOC_STACK VX_FP_TASK $0 = 0 at = ffffffff80d60000 v0 = 3c v1 = ffffffff80f20870 a0 = ffffffff80f28c90 a1 = 0 a2 = 7fefffff a3 = ffffffffffffffff t0 = 30006701 t1 = 30006700 t2 = 4 t3 = 0 t4 = 0 t5 = 0 t6 = 0 t7 = 0 s0 = ffffffff80f28c90 s1 = ffffffff80f20870 s2 = ffffffff80f28e6c s3 = ffffffff80d34080 s4 = 0 s5 = 0 s6 = 0 s7 = 0 t8 = 0 t9 = 0 k0 = 8007823ceeeeeeee k1 = 0 gp = ffffffff80119dd8 sp = ffffffff80f205b8 s8 = 0 ra = ffffffff80d3c21c sr = 30006701 pc = 80d3c22c
FPE Exception Exception Program Counter: 0xvalue = 80d3c22c0 Status Register: 0x = 0x30006701 Cause Register: 0x00000003c
| ||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |