I using Cortex-R4.
And I reading "Cortex™-R4 and Cortex-R4F Technical Reference Manual(Revision:r1p3)".
In my system, IOC flag in FPSCR register is set with unexpected processing.
What is the condition of set IOC flag in FPSCR register?
Hi,
IOC means 'Invalid Operation Cumulative exception'.
It is set if the FPU operation has some rounding errors.
In almost all cases, this bit will be set because there is a rare case which there is not rounding error.
You'd not better care the bit value.
Best regards,
Yasuhiko Koumoto.
I don't think rounding can cause invalid operation, the sorts of things that can cause it are
infinity-infinity, 0/0, infinity/infinity, 0 x infinity
conversions to integer from out of range
getting the square root of a negative number
the signalling comparisons with not a number,
operations on signalling not a number
and there's probably a few more. Software can also set it for things like the log of a negative number.
IOC is cumulative so it stays set to 1 if a floating point invalid operation occurs until it is explicitly reset to zero.
Hello daith,
thank you for that you had correct my wrong descriptions.
My explanation was not for the Invalid Opetation but for the Inexact Exception.
Best ergards,
Yes I thought something like that must have happened.
Thank you everyone answer.
I can understand condition to set IOC flag in FPSCR register.