Experimental Physics and
| |||||||||||||||
|
I have some driver software that contains double scan_period; scan_period = 0.05; The function is executed from startup script, i.e. the executing task is a floating point task. However, sometimes when booting R3.13.2, the ioc crashes with "floating point underflow" while executing printf ("init_record_generic: scan_period=%f\n", scan_period); I couldn't even look at the registers, because ti also crashes when it tries to print the register containing scan_period. According to the bitpattern, scan_period is not 0.05, but some denormalized value. Even more astonishing is that the error only happens sometimes! In rare cases, everything is OK. When I boot R3.13.5, also everything is OK. I have compared the driver library compiled for both EPICS versions. It is exactly the same object code. We load the driver library in the startup script. Maybe there is something wrong with the ld command, corrupting constants? But how can this depend on the EPICS release? Maybe the code is loaded to another location, but does the location matter? Why does this only happen with one driver? Any ideas or solutions? Dirk -- Dr. Dirk Zimoch Swiss Light Source Paul Scherrer Institut Computing and Controls phone +41 56 310 5182 fax +41 56 310 4413
| ||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |