Configuration
I am using the RM48L952 and debugging with a Lauterbach Trace32 JTAG interface.
The floating-point unit is enabled by setting FPUSCR[30].
The floating-point exception signals are set to propagate by setting Secondary Auxiliary Control Register bits 13-8.
These exception settings correspond to the exception flags FPUEXC[7, 4-0].
VIM channel 47 (FPU) is enabled and set to FIQ.
Testing
Immediately upon enabling the FIQ an FIQ is fired. Reading the FIQINDEX returns 0 which indicates that no interrupts are pending. The FIQ handler returns.
Continuing execution a second FIQ occurs immediately. This time reading FIQINDEX returns 48 indicating an FPU interrupt. I would expect to see at least one of the cumulative exception flags set in FPEXC. However, all flags are cleared.
Analysis
My understanding is that all 6 of the flags from FPEXC are ORd to produce the VIM channel 47 state. Why am I seeing this unexpected behavior?
Thanks in advance,
Ryan