CC26xx Driver Library
flash.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <inc/hw_types.h>
#include <inc/hw_flash.h>
#include <inc/hw_memmap.h>
#include <inc/hw_ints.h>
#include <inc/hw_aon_sysctl.h>
#include <inc/hw_fcfg1.h>
#include <driverlib/interrupt.h>
#include <driverlib/debug.h>

Go to the source code of this file.

Macros

#define FAPI_STATUS_SUCCESS   0x00000000
 
#define FAPI_STATUS_FSM_BUSY   0x00000001
 
#define FAPI_STATUS_FSM_READY   0x00000002
 
#define FAPI_STATUS_INCORRECT_DATABUFFER_LENGTH   0x00000003
 
#define FAPI_STATUS_FSM_ERROR   0x00000004
 
#define FLASH_INT_FSM_DONE   0x00400000
 
#define FLASH_INT_RV   0x00010000
 
#define FLASH_PWR_ACTIVE_MODE   0x00000000
 
#define FLASH_PWR_OFF_MODE   0x00000001
 
#define FLASH_PWR_DEEP_STDBY_MODE   0x00000002
 
#define FLASH_NO_PROTECT   0x00000000
 
#define FLASH_WRITE_PROTECT   0x00000001
 
#define ADDR_OFFSET   (0x1F800000 - FLASHMEM_BASE)
 
#define FCFG1_OFFSET   0x1000
 
#define FLASH_MODULE_CLK_FREQ   48
 
#define FSM_REG_WRT_ENABLE   5
 
#define FSM_REG_WRT_DISABLE   2
 
#define FBFALLBACK_SLEEP   0
 
#define FBFALLBACK_DEEP_STDBY   1
 
#define FBFALLBACK_ACTIVE   3
 
#define FLASH_BAGP   0x14
 
#define FLASH_PAGP   0x14
 
#define PATTERN_BITS   0x20
 
#define FW_WRT_TRIMMED   0x00000001
 
#define FWPWRITE_BYTE_ADDRESS   ((tFwpWriteByte *)((FLASH_BASE + FLASH_O_FWPWRITE0)))
 
#define DUMPWORD_INSTR   0x04
 
#define FLASH_CMD_EXEC   0x15
 
#define CCFG_OFFSET_SECURITY   0x00000FD8
 
#define CCFG_OFFSET_SECT_PROT   0x00000FF0
 
#define CCFG_SIZE_SECURITY   0x00000014
 
#define CCFG_SIZE_SECT_PROT   0x00000004
 

Typedefs

typedef volatile uint8_t tFwpWriteByte
 

Enumerations

enum  tFlashStateCommandsType {
  FAPI_PROGRAM_DATA = 0x0002, FAPI_ERASE_SECTOR = 0x0006, FAPI_ERASE_BANK = 0x0008, FAPI_VALIDATE_SECTOR = 0x000E,
  FAPI_CLEAR_STATUS = 0x0010, FAPI_PROGRAM_RESUME = 0x0014, FAPI_ERASE_RESUME = 0x0016, FAPI_CLEAR_MORE = 0x0018,
  FAPI_PROGRAM_SECTOR = 0x0020, FAPI_ERASE_OTP = 0x0030
}
 Defined values for Flash State Machine commands. More...
 

Functions

static uint32_t FlashSectorSizeGet (void)
 Get size of a flash sector in number of bytes. More...
 
static uint32_t FlashSizeGet (void)
 Get the size of the flash. More...
 
void FlashPowerModeSet (uint32_t ui32PowerMode, uint32_t ui32BankGracePeriode, uint32_t ui32PumpGracePeriode)
 Set power mode. More...
 
uint32_t FlashPowerModeGet (void)
 Get current configured power mode. More...
 
void FlashProtectionSet (uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)
 Set sector protection. More...
 
uint32_t FlashProtectionGet (uint32_t ui32SectorAddress)
 Get sector protection. More...
 
uint32_t FlashProtectionSave (uint32_t ui32SectorAddress)
 Save sector protection to make it permanent. More...
 
static uint32_t FlashCheckFsmForError (void)
 Checks if the Flash state machine has detected an error. More...
 
static uint32_t FlashCheckFsmForReady (void)
 Checks if the Flash state machine is ready. More...
 
static void FlashIntRegister (void(*pfnHandler)(void))
 Registers an interrupt handler for the flash interrupt. More...
 
static void FlashIntUnregister (void)
 Unregisters the interrupt handler for the flash interrupt. More...
 
static void FlashIntEnable (uint32_t ui32IntFlags)
 Enables flash controller interrupt sources. More...
 
static void FlashIntDisable (uint32_t ui32IntFlags)
 Disables individual flash controller interrupt sources. More...
 
static uint32_t FlashIntStatus (void)
 Gets the current interrupt status. More...
 
static void FlashIntClear (uint32_t ui32IntFlags)
 Clears flash controller interrupt source. More...
 
uint32_t FlashSectorErase (uint32_t ui32SectorAddress)
 Erase a flash sector. More...
 
uint32_t FlashProgram (uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count)
 Programs unprotected main bank flash sectors. More...
 
bool FlashEfuseReadRow (uint32_t *pui32EfuseData, uint32_t ui32RowAddress)
 Reads efuse data from specified row. More...
 
void FlashDisableSectorsForWrite (void)
 Disables all sectors for erase and programming on the active bank. More...