Загрузка данных


int32_t LMM_Boot_core(uint32_t lmid)
{
    int32_t status;
    uint32_t mSel = s_mSel;

    //Don't call in ISR mode
    /* Default out of range mSel */
    if (mSel >= SM_LM_NUM_MSEL)
    {
        mSel = 0U;
    }
    s_bootLm = lmid;
    s_bootSkip = g_lmmConfig[lmid].bootSkip[s_mSel];
    /* Trigger SWI handler */
    SWI_Trigger();
    /* Collect status */
    status = s_bootStatus;
    /* Return status */
    return status;
}

/*--------------------------------------------------------------------------*/
/* Post-boot clean-up                                                       */
/*                                                                          */
/* Run any clean-up required after starting all LM                          */
/*--------------------------------------------------------------------------*/
int32_t LMM_PostBoot(void)
{
    uint32_t lmmInitFlags = s_lmmInitFlags;

    /* Just passthru to board/device */
    return SM_SYSTEMPOSTBOOT(s_mSel, lmmInitFlags);
}

/*--------------------------------------------------------------------------*/
/* Return LM name                                                           */
/*--------------------------------------------------------------------------*/
int32_t LMM_LmNameGet(uint32_t lmId, uint32_t lm, string *lmNameAddr,
    int32_t *len)
{
    int32_t status = SM_ERR_SUCCESS;

    /* Length requested? */
    if (len != NULL)
    {
        static int32_t s_maxLen = 0;

        /* Already known? */
        if (s_maxLen == 0)
        {
            /* Loop over array */
            for (uint32_t idx = 0U; idx < SM_NUM_LM; idx++)
            {
                /* Get max len */
                s_maxLen = MAX(s_maxLen, (int32_t)
                    DEV_SM_StrLen(g_lmmConfig[idx].name));
            }
        }

        /* Return result */
        *len = s_maxLen;
    }

    /* Return pointer to name */
    *lmNameAddr = g_lmmConfig[lm].name;

    SM_TEST_MODE_ERR(SM_TEST_MODE_LMM_LVL2, SM_ERR_TEST)

    /* Return status */
    return status;
}