#ifndef COMMON_CONFIG_H
#define COMMON_CONFIG_H

#include "at32f403a_407.h"

#ifdef DEBUG
#define DBG
#else
#undef DBG
#define DBG if (0)
#endif


/**
  * @brief  Версия прошивки
  */
#if defined (MDIO_88)
#define FW_VERSION                      "1.01"
#endif

#if defined (MAI_12)
#define FW_VERSION                      "1.01"
#endif

#if defined (MAI_12)
#define FW_VERSION                      "1.01"
#endif


/**
  * @brief  Калибровочные коэффициенты
  */
#define CALIBRATION_FACTOR_SECTOR       0x0801F800

/**
  * @brief  Адрес CRC калибровочных коэффициентов
  */ 	
#define CRC_FACTOR                      0x0801FFFC

/**
  * @brief  Адрес сектора настроек
  */ 	
#define SETTINGS_SECTOR                 0x08020000

/**
  * @brief  Адрес CRC настроек
  */ 	
#define CRC_ADDRESS                     0x080207FC

/**
  * @brief  Адрес сектора системных настроек
  */
#define SYS_SECTOR         		        0x08020800  

/**
  * @brief  Адрес CRC системных настроек
  */
#define SYS_CRC_ADDRESS                 0x08020FFC

/**
  * @brief  Слово для контроля целостности структуры настроек
  */ 	
#define SETTINGS_CONTROL_WORD           123456789

/**
  * @brief  Число (-1) попыток загрузки основной прошивки
  */
#define BOOT_TRY                        26

#define USER_FLASH_FIRST_PAGE_ADDRESS   0x08021000  

   
// Абсолютный адрес основоного FW 
#define FW_BEGIN_ADDRESS	            0x08021000 
    
#define FLASH_PAGE_SIZE                 0x00000800U


//#define USB_RNDIS

// -------------------------------------------------------------------------- //

// Флаг загрузчика (0, 1 - нужно обновлять FW)
#define BACKUP_IAP_LOAD_MODE            BPR_DATA1

// Число попыток загрузки FW
#define BACKUP_IAP_BOOT_TRY             BPR_DATA2

// Cтатус обновления FW для журнала событий (1 - успешно, 0 - ошибка)
#define BACKUP_UPDATE_STATUS            BPR_DATA3

//
#define BACKUP_RTC_KEY                  BPR_DATA4

//
#define BACKUP_RTC_UPDATE               BPR_DATA5

// -------------------------------------------------------------------------- //

// Флаги, статусы
    
#define IAP_UPDATE_NO                   0   // обновления не было
#define IAP_UPDATE_OK                   1
#define IAP_UPDATE_ERROR                2

      
      
#endif /* #ifndef COMMON_CONFIG_H */
