|  | @@ -306,6 +306,10 @@ void SETTINGS_Load(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    uint32_t loadCRC;  // CRC из flash
 | 
	
		
			
				|  |  |    uint32_t newCRC;   // CRC загруженной структуры настроек
 | 
	
		
			
				|  |  | +  bool need_default = false;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  WEB_PARAMS_t sWebParamsBackup;
 | 
	
		
			
				|  |  | +  BOOT_PARAMS_t bootParamsBackup;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    SETTINGS_ReadFromFlash((uint8_t*)&sSettings, sizeof(sSettings));
 | 
	
		
			
				|  |  |    /* Считываем CRC из флеш памяти */
 | 
	
	
		
			
				|  | @@ -315,9 +319,38 @@ void SETTINGS_Load(void)
 | 
	
		
			
				|  |  |    newCRC = SETTINGS_GetCRC();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (loadCRC != newCRC) {
 | 
	
		
			
				|  |  | -	   SETTINGS_SetAllDefault();
 | 
	
		
			
				|  |  | -	   SETTINGS_Save();
 | 
	
		
			
				|  |  | -   }
 | 
	
		
			
				|  |  | +	 /*  SETTINGS_SetAllDefault();
 | 
	
		
			
				|  |  | +	   SETTINGS_Save();*/
 | 
	
		
			
				|  |  | +	  	  need_default = true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	/* CRC совпала, проверяем контрольное слово если слово не совпадает
 | 
	
		
			
				|  |  | +	   то это значит, что поплыла структура нстроек, прошиваем дефолт */
 | 
	
		
			
				|  |  | +	else if (sSettings.controlWorld != SETTINGS_CONTROL_WORD)
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		need_default = true;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* Прошиваем дефолтные настройки если нужно */
 | 
	
		
			
				|  |  | +  if (need_default) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /* Бэкапим сетевые параметры загрузчика */
 | 
	
		
			
				|  |  | +    memcpy(&sWebParamsBackup, &sSettings.sWebParams, sizeof(sWebParamsBackup));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /* Бэкапим флаги загрузчика */
 | 
	
		
			
				|  |  | +    memcpy(&bootParamsBackup, &sSettings.bootParams, sizeof(bootParamsBackup));
 | 
	
		
			
				|  |  | +    loadCRC = sSettings.CritSecCRC;
 | 
	
		
			
				|  |  | +    newCRC = SETTINGS_GetCritSecCRC();
 | 
	
		
			
				|  |  | +    SETTINGS_SetAllDefault();
 | 
	
		
			
				|  |  | +    if (loadCRC == newCRC) {
 | 
	
		
			
				|  |  | +		/* Применяем флаги загрузчика */
 | 
	
		
			
				|  |  | +		memcpy(&sSettings.bootParams, &bootParamsBackup, sizeof(sSettings.bootParams));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		/* Применяем сетевые параметры загрузчика */
 | 
	
		
			
				|  |  | +		memcpy(&sSettings.sWebParams, &sWebParamsBackup, sizeof(sSettings.sWebParams));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	SETTINGS_Save();
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 |