Skip to content

Tables pass initial verification however are never loaded from file #79

@mafoste3

Description

@mafoste3

Checklist (Please check before submitting)

  • I reviewed the Contributing Guide.
  • I performed a cursory search to see if the bug report is relevant, not redundant, nor in conflict with other tickets.

Describe the bug
If the critical data store is not used to recover the memory dwell tables and the tables are loaded directly from the filesystem, the MD app will pass initialization verification however will fail to process the tables when memory dwell is started with the MD_START_DWELL_CC command.

To Reproduce
Steps to reproduce the behavior:

  1. Add valid memory dwell entries to memory dwell table(s)
  2. Build cFS with MD app
  3. Start cFS on target system
  4. Send MD_START_DWELL_CC to start dwelling on configured table(s)
  5. See error:
...
EVS Port1 1970-012-14:03:23.47792 66/1/MD 52: MD Dwell Tbl verify results: good = 25, bad = 0, unused = 0
EVS Port1 1970-012-14:03:23.47984 66/1/MD 52: MD Dwell Tbl verify results: good = 25, bad = 0, unused = 0
EVS Port1 1970-012-14:03:23.48211 66/1/MD 52: MD Dwell Tbl verify results: good = 25, bad = 0, unused = 0
EVS Port1 1970-012-14:03:23.49252 66/1/MD 52: MD Dwell Tbl verify results: good = 25, bad = 0, unused = 0
EVS Port1 1970-012-14:03:23.49328 66/1/MD 7: Dwell Tables Recovered: 0, Dwell Tables Initialized: 4
...
EVS Port1 1970-012-14:03:23.49365 66/1/MD 1: MD Initialized.  Version 2.4.99.0
EVS Port1 1970-012-14:03:33.70231 66/1/MD 51: Dwell Table 1 is enabled with a delay of zero so no processing will occur
EVS Port1 1970-012-14:03:33.70327 66/1/MD 51: Dwell Table 2 is enabled with a delay of zero so no processing will occur
EVS Port1 1970-012-14:03:33.70414 66/1/MD 51: Dwell Table 3 is enabled with a delay of zero so no processing will occur
EVS Port1 1970-012-14:03:33.70491 66/1/MD 51: Dwell Table 4 is enabled with a delay of zero so no processing will occur
EVS Port1 1970-012-14:03:33.70532 66/1/MD 12: Start Dwell Table command processed successfully for table mask 0x000F

Expected behavior
Expected behavior is for the MD app to process the requested table(s) when commanded.

Code snips
If tables aren't recovered from CDS, then the CFE MD App Tables need to be copied to the MD_AppData.MD_DwellTables[] structures. As the tables currently aren't being copied in this configuration the calculated delay time will always be 0 and which will fail table processing. See below, for possible resolution.

FROM:

MD/fsw/src/md_app.c

Lines 450 to 461 in 7c7a544

/*
** Load initial values if needed
*/
if ((RecoveredValidTable == false) && (TableInitValidFlag == true))
{
Status =
CFE_TBL_Load(MD_AppData.MD_TableHandle[TblIndex], CFE_TBL_SRC_FILE, /* following ptr is memory ptr */
(const void *)TblFileName); /* Pointer to data to be loaded */
MD_AppData.MD_DwellTables[TblIndex].Enabled = MD_DWELL_STREAM_DISABLED;
if (Status != CFE_SUCCESS)

TO:

        /*
        ** Load initial values if needed
        */
        if ((RecoveredValidTable == false) && (TableInitValidFlag == true))
        {
            Status =
                CFE_TBL_Load(MD_AppData.MD_TableHandle[TblIndex], CFE_TBL_SRC_FILE, /*  following ptr is memory ptr */
                             (const void *)TblFileName);                            /* Pointer to data to be loaded */

            GetAddressResult = CFE_TBL_GetAddress((void *)&MD_LoadTablePtr, MD_AppData.MD_TableHandle[TblIndex]);
            MD_CopyUpdatedTbl(MD_LoadTablePtr, TblIndex);

            MD_AppData.MD_DwellTables[TblIndex].Enabled = MD_DWELL_STREAM_DISABLED;

            if (Status != CFE_SUCCESS)
        }

System observed on:

Reporter Info
Mark Foster
NASA / Johnson Space Center / ER6

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions