Skip to content

Add optional sequence execution state preservation across processor reset #166

@chillfig

Description

@chillfig

Checklist (Please check before submitting)

  • I reviewed the Contributing Guide.
  • I reviewed the README file to see if the feature is in the major future work.
  • I performed a cursory search to see if the feature request is relevant, not redundant, nor in conflict with other tickets.

Is your feature request related to a problem? Please describe.
Users of cFS have no way of resuming an ATS/RTS in the event of a processor reset. They would have to assume the fresh start of an ATS/RTS after processor reset.

Describe the solution you'd like
Preserve execution state before processor reset and restore afterwards to SC. Could likely be done with CDS and different options as to when state is copied over such as after a command is transmitted, at the end of a SC wakeup (provided that non-zero amount of commands executed that wakeup), or sometime else.

Describe alternatives you've considered
Users can configure a specific auto-start RTS for processor reset recovery, but this starts a predefined recovery sequence rather than preserving the execution state of the nominal ATS/RTS that was active before reset. It does not know which commands from the original sequence had already been transmitted or which commands remained pending.

SC/fsw/src/sc_app.c

Lines 174 to 182 in 1356713

/* Select auto-exec RTS to start during first HK request */
if (CFE_ES_GetResetType(NULL) == CFE_PSP_RST_TYPE_POWERON)
{
SC_AppData.AutoStartRTS = SC_RTS_NUM_C(RTS_ID_AUTO_POWER_ON);
}
else
{
SC_AppData.AutoStartRTS = SC_RTS_NUM_C(RTS_ID_AUTO_PROCESSOR);
}

Additional context
project DAVINCI inquired about this.

Requester Info
Justin Figueroa, Vantage Systems Inc

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions