RTEMS Available -- PowerPC/virtex feedback

gregory.menke at gsfc.nasa.gov gregory.menke at gsfc.nasa.gov
Thu Aug 9 20:58:20 UTC 2007

The ppc abi allows the C compiler to use fpu registers for regular
integer stuff- basically as extra general purpose registers.  If the fpu
is not present or disabled, this causes exceptions- and is why the fp
enable bit is forced on PPC bsp's.  The alternative is to compile the
toolchain & then rtems & the user software without fp, forcing gcc to be
restricted to the usual set of general registers.  When gcc is using the
fp registers in this way you'll see them as arguments to regular integer
instructions.  Its a very insidious problem- you have to work against
gcc's default register selection algorithms.

There might be a way to convince gcc to compile RTEMS & newlib without
using fpu registers, but still implement the fpu context switch-
permitting userspace the use of the fpu (and allowing truely integer
tasks)- but I don't know how you'd tell gcc to do it.



Chris Caudle writes:
 > On Thu, August 9, 2007 3:14 pm, Joel Sherrill wrote:
 > > Exception 7 is a NOFP exception
 > More accurately it is "program exception," which is also triggered by
 > illegal opcode.  Did the tool chain change between the two RTEMS versions
 > in question?  If the newer version got compiled with an opcode which
 > doesn't exist in the 405 core by some mistake it could trigger the same
 > exception.
 > FP exception seems more likely, but just wanted to throw that out there.
 > Might be worth taking a look at the disassembly.
 > -- 
 > Chris Caudle

More information about the users mailing list