46 #ifndef ADI_FLASH_DEF_H 47 #define ADI_FLASH_DEF_H 51 #include <drivers/dma/adi_dma.h> 52 #include <adi_flash_config.h> 54 #include <drivers/flash/adi_flash.h> 57 #define ADI_FEE_NUM_INSTANCES (1u) 59 #if defined (__ADUCM4x50__) 61 #define ADI_FEE_STATUS_ERROR_MASK ( BITM_FLCC_STAT_ACCESS_MODE \ 62 | BITM_FLCC_STAT_CACHESRAMPERR \ 63 | BITM_FLCC_STAT_ECCDCODE \ 64 | BITM_FLCC_STAT_ECCINFOSIGN \ 65 | BITM_FLCC_STAT_SIGNERR \ 66 | BITM_FLCC_STAT_OVERLAP \ 67 | BITM_FLCC_STAT_ECCRDERR \ 68 | BITM_FLCC_STAT_ECCERRCMD \ 69 | BITM_FLCC_STAT_SLEEPING \ 70 | BITM_FLCC_STAT_CMDFAIL) 71 #elif defined (__ADUCM302x__) 72 #define ADI_FEE_STATUS_ERROR_MASK ( BITM_FLCC_STAT_CACHESRAMPERR \ 73 | BITM_FLCC_STAT_ECCDCODE \ 74 | BITM_FLCC_STAT_ECCINFOSIGN \ 75 | BITM_FLCC_STAT_SIGNERR \ 76 | BITM_FLCC_STAT_OVERLAP \ 77 | BITM_FLCC_STAT_ECCRDERR \ 78 | BITM_FLCC_STAT_ECCERRCMD \ 79 | BITM_FLCC_STAT_SLEEPING \ 80 | BITM_FLCC_STAT_CMDFAIL) 85 #define ALIGN4 _Pragma("align(4)") 86 #elif defined(__ICCARM__) 87 #define ALIGN _Pragma("pack()") 88 #define ALIGN4 _Pragma("pack(4)") 89 #elif defined (__GNUC__) 90 #define ALIGN _Pragma("pack()") 91 #define ALIGN4 _Pragma("pack(4)") 100 #if defined (__ADUCM4x50__) 101 #define FEE_FLASH_SIZE (0x80000u) 102 #define FEE_BLOCK_SHIFT (14u) 104 #elif defined (__ADUCM302x__) 105 #define FEE_FLASH_SIZE (0x40000u) 106 #define FEE_BLOCK_SHIFT (13u) 108 #error Flash driver is not ported to this processor 111 #define FEE_PAGE_SHIFT (11u) 112 #define FEE_MAX_NUM_PAGES (FEE_FLASH_SIZE >> FEE_PAGE_SHIFT) 113 #define FEE_MAX_NUM_BLOCKS (FEE_FLASH_SIZE >> FEE_BLOCK_SHIFT) 115 #if (ADI_FEE_CFG_ECC_START_PAGE >= FEE_MAX_NUM_PAGES) 116 #error "ADI_FEE_CFG_ECC_START_PAGE range is invalid" 135 void Flash0_Int_Handler(
void);
136 void DMA_FLASH0_Int_Handler (
void);
144 typedef struct __ADI_FEE_CONFIG {
145 uint32_t eccIrqEnables;
148 uint32_t abortEnableLo;
149 uint32_t abortEnableHi;
155 typedef struct __ADI_FEE_DEVICE_INFO {
157 ADI_FLCC_TypeDef *pDev;
160 DMA_CHANn_TypeDef dmaChanNum;
161 ADI_FEE_CONFIG *pConfig;
164 } ADI_FEE_DEVICE_INFO;
168 typedef struct __ADI_FEE_DEV_DATA_TYPE {
175 ADI_FLCC_TypeDef *pDev;
176 ADI_FEE_DEVICE_INFO *pDevInfo;
179 ADI_CALLBACK pfCallback;
185 volatile uint32_t FlashStatusCopy;
186 volatile uint32_t feeError;
188 volatile bool bTransferInProgress;
191 volatile uint32_t *pNextWriteAddress;
192 volatile uint32_t *pNextReadAddress;
193 volatile uint32_t nRemainingBytes;
197 } ADI_FEE_DEV_DATA_TYPE;
struct __ADI_FEE_DEV_DATA_TYPE * ADI_FEE_HANDLE