Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

#2401 closed defect (fixed)

ARMv7M: Default exception handler doesn't support FPU

Reported by: Martin Galvan Owned by: Sudarshan Rajagopalan <sudarshan.rajagopalan@…>
Priority: normal Milestone: 4.11.2
Component: score Version: 4.11
Severity: major Keywords:
Cc: sudarshan.rajagopalan@…, daniel.gutson@…, joel.sherrill@… Blocked By:
Blocking:

Description

On exception entry, _ARMV7M_Exception_default stores the previous Stack Pointer
in a CPU_Exception_frame. The SP can be MSP or PSP, depending on the mode
in which the exception was taken. To know this, we must check the value of LR.

Right now the code checks whether it should store MSP or PSP by comparing LR to
-3 (0xFFFFFFFD). However, this doesn't work if we're using an FPU
since the error code would be either 0xFFFFFFE9 or 0xFFFFFFED. The result is
that we always end up selecting MSP.

This bug was found by Sudarshan Rajagopalan in the RTEMS git master.

Change History (2)

comment:1 Changed on 01/26/17 at 07:16:00 by Sebastian Huber

Milestone: 4.11.14.11.2

comment:2 Changed on 02/15/17 at 13:19:20 by Sudarshan Rajagopalan <sudarshan.rajagopalan@…>

Owner: set to Sudarshan Rajagopalan <sudarshan.rajagopalan@…>
Resolution: fixed
Status: newclosed

In [changeset:"5b5ef4e479dbb437b96601e3ef4e5fc508e22dd3/rtems"]:

Fix exception handler for supporting FPU

Close #2401.

Note: See TracTickets for help on using tickets.