Part Number: MSP432P4111
Other Parts Discussed in Thread: SYSBIOS
G'Day all,
FYI - SimpleLink 3.40.0.005, Compiler 18.12.7
We are having some problem with floating point operations. In particular we notice that very occasionally floating point comparisons are plainly wrong, similar to what has been seen in some other threads (though admittedly the context of those other threads is rather different to mine).
After some digging around we've found a possible culprit. Our code enables Lazy Stacking for floating point at the start of main() but it seems all stacking of floating point registers gets turned off when BIOS_start() runs (FPCCR.ASPEN = 0, FPCCR.LSPEN = 0). It turns out, some floating point operations have crept into our HWI/ZLIs so, with all stacking off, maybe the floating point registers are being corrupted.
This leads us to some questions on how best to progress
- How can we prove that the floating point registers are being corrupted? We are struggling to come up with an effective debug technique here.
- Can we turn on lazy stacking once SYSBIOS is running? I think the comment here says we can't, but I'd appreciate the clarification.
- Can we turn on full stacking once SYSBIOS is running?
- Is it at all possible to do floating point operations in a SYSBIOS HWI/ZLI context? If yes, what is the right way to go about it? If no, does that mean the we absolutely must remove all floating point operations from HWIs/ZLIs (should not be a problem)?
- How do SWIs play into all this - what is their context as far as floating point operations go? We have lots of floating point operations in SWIs, changing that is not really an option.
- Are there any other microcontroller features like this that SYSBIOS turns off as it starts??
Cheers
Julian