 // Файл с типами для AT45DB321D.
 // v 1.0 от 16/07/15
 // Автор: Сычев А.

#ifndef AT45DBXXX_TYP_H 
#define AT45DBXXX_TYP_H 
     #include <stdint.h>
     #include <stdbool.h>
     typedef uint8_t  __FLASH_BYTE;
     typedef uint16_t __FLASH_WORD;
     typedef uint32_t __FLASH_DWORD;

     #include "drivers\flash\common\AT45DB321D_ERR.h"         // коды ошибок

     #ifndef __SPEC_HEADER_KEYWORDS__H__
     #define __SPEC_HEADER_KEYWORDS__H__

     //------------ GLOBAL-----------------
     #ifndef pragma
     #define pragma(str)         _Pragma( #str )
     #else
     #error Конфликт имен макросов
     #endif

     #ifndef DISABLE_WARN
     #define DISABLE_WARN(code)   pragma(diag_suppress=code)
     #else
     #error Конфликт имен макросов
     #endif

     #if defined(ALIG)||defined(__ALIG8)||defined(__ALIG16)||defined(__ALIG32)
     #error Конфликт имен макросов
     #else
     //------------ ALIGNMENT -------------
     #define ALIG(bytes)    pragma(data_alignment=bytes)
     #define __ALIG8          ALIG(1)      // выравнивание  8 битной переменной - на 1 байт
     #define __ALIG16         ALIG(2)      // выравнивание 16 битной переменной - на 2 байта
     #define __ALIG32         ALIG(4)      // выравнивание 32 битной переменной - на 4 байта
     #endif

     //------------ PLACEMENT -------------
     #if defined(PLACEIN)||defined(_PLACEIN)
     #error Конфликт имен макросов
     #else
     #define PLACEIN(section)     pragma(location=#section)  // PLACEIN(.usb)
     #define _PLACEIN(section)     pragma(location=section)  // PLACEIN(".usb")
     #endif

     //------------ WRAPPING -------------  // added 16.04.19
     #define AT45_IMP_FUNC_WRAPPER_I(A,B)        A##B
     #define AT45_IMP_FUNC_WRAPPER_C(pref,value) AT45_IMP_FUNC_WRAPPER_I(pref,value)

     #endif

#endif
 
 