#ifndef __CONFIG_H
#define __CONFIG_H

#include "stm32g4xx_hal.h"


#define FW_VERSION          "1.0"

#define SETTINGS_ADDR       0x08000000 + (63 * 2048)  //0x01F7FF

// Ключ для контроля сектора настроек
#define SETTINGS_KEY            123456789

// Страница настроек
#define SETTINGS_PAGE           63

// Возвращает адрес страницы по номеру страницы
#define GET_PAGE_ADDR(x)            ((uint32_t)(0x08000000 + 0x800 * (x)))

// Возвращает адрес настроек по номеру страницы
#define GET_SETTINGS_ADDR(x)        (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 4)

// Возвращает адрес ключа настроек по номеру страницы
#define GET_SETTINGS_KEY_ADDR(x)    (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 16)

// Возвращает адрес CRC структуры настроек во флеш памяти по номеру страницы
#define GET_SETTINGS_CRC_ADDR(x) (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 8)



/* @note All the executable code is mapped in SRAM1 area */
#define FLASH_USER_START_ADDR   ADDR_FLASH_PAGE_0   /* Start @ of user Flash area */
#define FLASH_USER_END_ADDR     (ADDR_FLASH_PAGE_63 + FLASH_PAGE_SIZE - 1)   /* End @ of user Flash area */


#endif /* #ifndef __CONFIG_H */