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


            /* === МОДИФИЦИРОВАННЫЙ КОД === */
            bool ddrInRetention = false;
            
            /* Если затребован кастомный режим сна без отключения DDR */
            if (sleepMode == DEV_SM_SLEEP_MODE_SUSPEND_NO_DDR)
            {
                /* Разрешаем Cortex-M7 продолжать беспрепятственный доступ к памяти */
                (void) DEV_SM_RdcDdrBlock(false);

                /* Удерживаем домен DDRMIX и контроллер памяти во включенном состоянии (ON) */
                (void) DEV_SM_PowerStateSet(DEV_SM_PD_DDR, DEV_SM_POWER_STATE_ON);

                /* Удерживаем системную шину NOCMIX включенной, чтобы M7 мог читать из DDR */
                (void) DEV_SM_PowerStateSet(DEV_SM_PD_NOC, DEV_SM_POWER_STATE_ON);
            }
            else
            {
                /* СТАНДАРТНЫЙ РЕЖИМ (Заводская логика полного гашения) */
                if (DEV_SM_RdcDdrBlock(true) == SM_ERR_SUCCESS)
                {
                    if (DEV_SM_MemDdrRetentionEnter() == SM_ERR_SUCCESS)
                    {
                        ddrInRetention = true;

                        if (DEV_SM_PowerStateSet(DEV_SM_PD_DDR, DEV_SM_POWER_STATE_OFF)
                            == SM_ERR_SUCCESS)
                        {
                            g_syslog.sysSleepRecord.mixPwrStat &=
                                (~(1UL << PWR_MIX_SLICE_IDX_DDR));
                        }
                    }
                }

                if (lpmSettingNoc <= sleepMode)
                {
                    if (DEV_SM_PowerStateSet(DEV_SM_PD_NOC, DEV_SM_POWER_STATE_OFF)
                        == SM_ERR_SUCCESS)
                    {
                        g_syslog.sysSleepRecord.mixPwrStat &=
                            (~(1UL << PWR_MIX_SLICE_IDX_NOC));
                    }
                }
            }