TI BLE5-Stack API Documentation  1.01.01.00
flash_interface.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  @file flash_interface
4 
5  @brief An interface that abstracts flash operations for OAD
6  this allows on-chip and off-chip OAD to use the same flash APIs
7 
8  Group: WCS, BTS
9  $Target Device: DEVICES $
10 
11  ******************************************************************************
12  $License: BSD3 2017 $
13  ******************************************************************************
14  $Release Name: PACKAGE NAME $
15  $Release Date: PACKAGE RELEASE DATE $
16  *****************************************************************************/
17 
84 #ifndef FLASH_INTERFACE
85 #define FLASH_INTERFACE
86 
87 #ifdef __cplusplus
88 extern "C"
89 {
90 #endif
91 
92 /*********************************************************************
93  * INCLUDES
94  */
95 #include <string.h>
96 #include <stdlib.h>
97 #include <stdbool.h>
98 #include <stdint.h>
99 
100 #include <ti/devices/DeviceFamily.h>
101 #include DeviceFamily_constructPath(driverlib/flash.h)
102 
103 /*********************************************************************
104  * CONSTANTS
105  */
106 
110 #define FLASH_SUCCESS 0x00
111 
115 #define FLASH_FAILURE 0xFF
116 
120 #define SPI_MAX_READ_SZ 1024
121 
122 /*********************************************************************
123  * MACROS
124  */
125 #if defined(CC26XX_R2)
126  #define FLASH_ADDRESS(page, offset) (((page) << 12) + (offset))
127  #define FLASH_PAGE(addr) (addr >> 12)
128  #define INTFLASH_PAGE_MASK 0xFFFFF000
129  #define INTFLASH_PAGE_SIZE 0x1000
130  #define MAX_ONCHIP_FLASH_PAGES 32
131  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
132 #elif defined(CC26X2) || defined(CC13X2)
133  #define FLASH_ADDRESS(page, offset) (((page) << 13) + (offset))
134  #define FLASH_PAGE(addr) (addr >> 13)
135  #define INTFLASH_PAGE_MASK 0xFFFFE000
136  #define INTFLASH_PAGE_SIZE 0x2000
137  #define MAX_ONCHIP_FLASH_PAGES 44
138  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
139 #else
140  #error
141 #endif
142 
152 #define EXT_FLASH_ADDRESS(page, offset) (((page) << 12) + (offset))
153 
158 #define EXT_FLASH_PAGE(addr) (addr >> 12)
159 
163 #define EXTFLASH_PAGE_MASK 0xFFFFF000
164 
168 #define EFL_PAGE_SIZE 0x1000
169 
173 #define EFL_FLASH_SIZE 0x100000
174 
180 extern void flash_init(void);
181 
187 extern bool flash_open(void);
188 
192 extern void flash_close(void);
193 
199 extern bool hasExternalFlash(void);
200 
211 extern uint8_t readFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
212 
224 extern uint8_t readFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
225  uint16_t len);
226 
237 extern uint8_t writeFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
238 
250 extern uint8_t writeFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
251  uint16_t len);
252 
261 extern uint8_t eraseFlashPg(uint8_t page);
262 
271 extern uint8_t eraseFlash(uint8_t page);
272 
273 /*********************************************************************
274 *********************************************************************/
275 
278 #ifdef __cplusplus
279 }
280 #endif
281 
282 #endif /* FLASH_INTERFACE */
uint8_t eraseFlashPg(uint8_t page)
uint8_t eraseFlash(uint8_t page)
uint8_t writeFlash(uint_least32_t addr, uint8_t *pBuf, size_t len)
uint8_t readFlash(uint_least32_t addr, uint8_t *pBuf, size_t len)
void flash_init(void)
void flash_close(void)
uint8_t readFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf, uint16_t len)
uint8_t writeFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf, uint16_t len)
bool flash_open(void)
bool hasExternalFlash(void)
Copyright 2018, Texas Instruments Incorporated