TI OAD API Documentation  2.02.07.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(DeviceFamily_CC26X2) || defined(DeviceFamily_CC13X2) || \
133  defined(DeviceFamily_CC26X2X7) || defined(DeviceFamily_CC13X2X7) || \
134  defined(DeviceFamily_CC26X1) || defined(DeviceFamily_CC13X1)
135  #define FLASH_ADDRESS(page, offset) (((page) << 13) + (offset))
136  #define FLASH_PAGE(addr) (addr >> 13)
137  #define INTFLASH_PAGE_MASK 0xFFFFE000
138  #define INTFLASH_PAGE_SIZE 0x2000
139  #if defined(DeviceFamily_CC26X2X7) || defined(DeviceFamily_CC13X2X7)
140  #define MAX_ONCHIP_FLASH_PAGES 88
141  #else
142  #define MAX_ONCHIP_FLASH_PAGES 44
143  #endif
144  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
145 #elif defined(DeviceFamily_CC13X4) || defined(DeviceFamily_CC26X4) || \
146  defined(DeviceFamily_CC26X3)
147  #define FLASH_ADDRESS(page, offset) (((page) << 11) + (offset))
148  #define FLASH_PAGE(addr) (addr >> 11)
149  #define INTFLASH_PAGE_MASK 0xFFFFF800
150  #define INTFLASH_PAGE_SIZE 0x800
151  #define MAX_ONCHIP_FLASH_PAGES 512
152  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
153 #else
154  #error
155 #endif
156 
166 #define EXT_FLASH_ADDRESS(page, offset) (((page) << 12) + (offset))
167 
172 #define EXT_FLASH_PAGE(addr) (addr >> 12)
173 
177 #define EXTFLASH_PAGE_MASK 0xFFFFF000
178 
182 #define EFL_PAGE_SIZE 0x1000
183 
187 #define EFL_FLASH_SIZE 0x100000
188 
194 extern void flash_init(void);
195 
201 extern bool flash_open(void);
202 
206 extern void flash_close(void);
207 
213 extern bool hasExternalFlash(void);
214 
225 extern uint8_t readFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
226 
238 extern uint8_t readFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
239  uint16_t len);
240 
251 extern uint8_t writeFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
252 
264 extern uint8_t writeFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
265  uint16_t len);
266 
275 extern uint8_t eraseFlashPg(uint8_t page);
276 
285 extern uint8_t eraseFlash(uint8_t page);
286 
287 /*********************************************************************
288 *********************************************************************/
289 
292 #ifdef __cplusplus
293 }
294 #endif
295 
296 #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 1995-2022, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale