TI BLE-Stack for Bluetooth API Documentation  3.03.00.00
flash_interface.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  @file flash_interface
4 
5  @brief Interface API for flash access on the CC26xx. Header can be compiled
6  with a varation of implementations:
7 
8  flash_interface_interal.c - Driverlib access of CC26xx internal flash
9  flash_interface_ext_rtos.c - TI-RTOS SPI access of external SPI flash
10  flash_interface_ext_rtos.c - Driverlib SPI access of external SPI flash
11 
12  Group: WCS, BTS
13  $Target Device: DEVICES $
14 
15  ******************************************************************************
16  $License: BSD3 2017 $
17  ******************************************************************************
18  $Release Name: PACKAGE NAME $
19  $Release Date: PACKAGE RELEASE DATE $
20  *****************************************************************************/
21 
88 #ifndef FLASH_INTERFACE
89 #define FLASH_INTERFACE
90 
91 #ifdef __cplusplus
92 extern "C"
93 {
94 #endif
95 
96 /*********************************************************************
97  * INCLUDES
98  */
99 #include <string.h>
100 #include "hal_board.h"
101 #include <stdlib.h>
102 #include <stdbool.h>
103 
104 
105 /*********************************************************************
106  * CONSTANTS
107  */
108 
112 #define FLASH_SUCCESS 0x00
113 
117 #define FLASH_FAILURE 0xFF
118 
122 #define SPI_MAX_READ_SZ 1024
123 
124 /*********************************************************************
125  * MACROS
126  */
127 #if defined(CC26XX_R2)
128  #define FLASH_ADDRESS(page, offset) (((page) << 12) + (offset))
129  #define FLASH_PAGE(addr) (addr >> 12)
130  #define INTFLASH_PAGE_MASK 0xFFFFF000
131  #define INTFLASH_PAGE_SIZE 0x1000
132  #define MAX_ONCHIP_FLASH_PAGES 32
133  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
134 #elif defined(CC26X2) || defined(CC13X2) || defined(CC13X2P)
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  #define MAX_ONCHIP_FLASH_PAGES 44
140  #define MAX_OFFCHIP_METADATA_PAGES MAX_ONCHIP_FLASH_PAGES
141 #else
142  #error
143 #endif
144 
154 #define EXT_FLASH_ADDRESS(page, offset) (((page) << 12) + (offset))
155 
160 #define EXT_FLASH_PAGE(addr) (addr >> 12)
161 
165 #define EXTFLASH_PAGE_MASK 0xFFFFF000
166 
170 #define EFL_PAGE_SIZE 0x1000
171 
175 #define EFL_FLASH_SIZE 0x100000
176 
182 extern void flash_init(void);
183 
189 extern bool flash_open(void);
190 
194 extern void flash_close(void);
195 
201 extern bool hasExternalFlash(void);
202 
213 extern uint8_t readFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
214 
226 extern uint8_t readFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
227  uint16_t len);
228 
239 extern uint8_t writeFlash(uint_least32_t addr, uint8_t *pBuf, size_t len);
240 
252 extern uint8_t writeFlashPg(uint8_t page, uint32_t offset, uint8_t *pBuf,
253  uint16_t len);
254 
263 extern uint8_t eraseFlashPg(uint8_t page);
264 
265 /*********************************************************************
266 *********************************************************************/
267 
270 #ifdef __cplusplus
271 }
272 #endif
273 
274 #endif /* FLASH_INTERFACE */
uint8_t eraseFlashPg(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)
uint32_t len
Image length in bytes.
Definition: oad_image_header.h:662
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-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale