CMSIS-Driver_PIC32CM-JH  
Peripheral Library (PLIB) Documentation
 
Loading...
Searching...
No Matches
NVMCTRL Interface

Driver API for NVMCTRL (plib_nvmctrl.h) More...

Data Structures

struct  NVMCTRL_OBJECT
 NVMCTRL object structure. More...
 

Macros

#define NVMCTRL_PAGE_WRITE   true
 Page write supported.
 
#define MAX_WAIT_STATES   15U
 Maximum number of wait states.
 
#define NVMCTRL_CTRLB_CACHEDIS_DF_Pos   (19U)
 Data Flash cache disable bit position.
 
#define NVMCTRL_CTRLB_CACHEDIS_MAIN_Pos   (18U)
 Main array cache disable bit position.
 
#define NVMCTRL_CTRLB_CACHEDIS_DF_Msk   ((uint32_t)1U << NVMCTRL_CTRLB_CACHEDIS_DF_Pos)
 Data Flash cache disable bit mask.
 
#define NVMCTRL_CTRLB_CACHEDIS_MAIN_Msk   ((uint32_t)1U << NVMCTRL_CTRLB_CACHEDIS_MAIN_Pos)
 Main array cache disable bit mask.
 
#define NVMCTRL_FLASH_START_ADDRESS   (0U)
 Start address of main flash.
 

Typedefs

typedef void(* NVMCTRL_CALLBACK_HANDLER) (NVMCTRL_INTERRUPT int_cause)
 Callback handler type for NVMCTRL interrupts.
 

Enumerations

enum  NVMCTRL_INTERRUPT { NVMCTRL_INTERRUPT_READY = NVMCTRL_INTFLAG_READY_Msk , NVMCTRL_INTERRUPT_ERROR = NVMCTRL_INTFLAG_ERROR_Msk }
 NVMCTRL interrupt source mask. More...
 

Functions

bool NVMCTRL_IsBusy (void)
 Check if NVMCTRL is busy.
 
void NVMCTRL_Initialize (void)
 Initialize the NVMCTRL peripheral.
 
bool NVMCTRL_SetReadWaitStates (uint8_t wait_states)
 Set the number of NVMCTRL read wait states.
 
void NVMCTRL_EnableCache (void)
 Enable cache for main flash array.
 
void NVMCTRL_DisableCache (void)
 Disable cache for main flash array.
 
void NVMCTRL_SetCacheReadMode (uint32_t mode)
 Set the cache read mode.
 
void NVMCTRL_SetSleepPowerMode (uint32_t mode)
 Set the sleep power reduction mode.
 
void NVMCTRL_EnableManualWrite (void)
 Enable manual write mode.
 
void NVMCTRL_DisableManualWrite (void)
 Disable manual write mode.
 
bool NVMCTRL_Read (const uint32_t address, uint32_t *data, uint32_t length)
 Read from NVM memory.
 
uint32_t NVMCTRL_GetPageSize (void)
 Get the NVM page size.
 
bool NVMCTRL_WritePage (uint32_t address, const uint32_t *data)
 Write a page to NVM memory.
 
bool NVMCTRL_WriteRWWEEPage (uint32_t address, const uint32_t *data)
 Write a page to RWW EEPROM.
 
bool NVMCTRL_EraseRWWEERow (uint32_t address)
 Erase a row in RWW EEPROM.
 
bool NVMCTRL_EraseRow (uint32_t address)
 Erase a row in NVM memory.
 
bool NVMCTRL_WriteUserRow (const uint32_t page_address, const uint32_t *data)
 Write a page in the User Row.
 
bool NVMCTRL_EraseUserRow (uint32_t row_address)
 Erase a page in the User Row.
 
void NVMCTRL_ClearPageBuffer (void)
 Clear the NVM page buffer.
 
void NVMCTRL_LockRegion (uint32_t address)
 Lock a region in NVM memory.
 
void NVMCTRL_UnlockRegion (uint32_t address)
 Unlock a region in NVM memory.
 
void NVMCTRL_EnablePowerReduction (void)
 Enable power reduction mode.
 
void NVMCTRL_DisablePowerReduction (void)
 Disable power reduction mode.
 
void NVMCTRL_InvalidateCache (void)
 Invalidate all cache lines.
 
void NVMCTRL_SetSecurityBit (void)
 Set the Security Bit.
 
void NVMCTRL_EnableInterrupt (uint8_t source)
 Enable NVMCTRL interrupts.
 
void NVMCTRL_DisableInterrupt (uint8_t source)
 Disable NVMCTRL interrupts.
 
void NVMCTRL_ClearInterruptFlag (uint8_t source)
 Clear NVMCTRL interrupt flags.
 
void NVMCTRL_SetCallbackHandler (NVMCTRL_CALLBACK_HANDLER callback)
 Register a callback handler for NVMCTRL interrupts.
 
uint32_t NVMCTRL_GetInterruptFlag (void)
 Get the current NVMCTRL interrupt flag value.
 
uint32_t NVMCTRL_ErrorGet (void)
 Check NVMCTRL error status.
 
void NVMCTRL_ClearErrorStatus (void)
 Clear NVMCTRL error status bits.
 
bool NVMCTRL_CheckSecurityBit (void)
 Check if the Security Bit is set.
 
bool NVMCTRL_CheckPageBufferLoad (void)
 Check if the page buffer is loaded.
 
bool NVMCTRL_CheckPowerReductionMode (void)
 Check if NVMCTRL is in power reduction mode.
 

Description

Driver API for NVMCTRL (plib_nvmctrl.h)

Macro Definition Documentation

◆ MAX_WAIT_STATES

#define MAX_WAIT_STATES   15U

Maximum number of wait states.

◆ NVMCTRL_CTRLB_CACHEDIS_DF_Msk

#define NVMCTRL_CTRLB_CACHEDIS_DF_Msk   ((uint32_t)1U << NVMCTRL_CTRLB_CACHEDIS_DF_Pos)

Data Flash cache disable bit mask.

◆ NVMCTRL_CTRLB_CACHEDIS_DF_Pos

#define NVMCTRL_CTRLB_CACHEDIS_DF_Pos   (19U)

Data Flash cache disable bit position.

◆ NVMCTRL_CTRLB_CACHEDIS_MAIN_Msk

#define NVMCTRL_CTRLB_CACHEDIS_MAIN_Msk   ((uint32_t)1U << NVMCTRL_CTRLB_CACHEDIS_MAIN_Pos)

Main array cache disable bit mask.

◆ NVMCTRL_CTRLB_CACHEDIS_MAIN_Pos

#define NVMCTRL_CTRLB_CACHEDIS_MAIN_Pos   (18U)

Main array cache disable bit position.

◆ NVMCTRL_FLASH_START_ADDRESS

#define NVMCTRL_FLASH_START_ADDRESS   (0U)

Start address of main flash.

◆ NVMCTRL_PAGE_WRITE

#define NVMCTRL_PAGE_WRITE   true

Page write supported.

Typedef Documentation

◆ NVMCTRL_CALLBACK_HANDLER

typedef void(* NVMCTRL_CALLBACK_HANDLER) (NVMCTRL_INTERRUPT int_cause)

Callback handler type for NVMCTRL interrupts.

Enumeration Type Documentation

◆ NVMCTRL_INTERRUPT

NVMCTRL interrupt source mask.

Enumerator
NVMCTRL_INTERRUPT_READY 
NVMCTRL_INTERRUPT_ERROR 

Function Documentation

◆ NVMCTRL_CheckPageBufferLoad()

bool NVMCTRL_CheckPageBufferLoad ( void )

Check if the page buffer is loaded.

Parameters
voidNo parameters
Returns
true if loaded, false otherwise

◆ NVMCTRL_CheckPowerReductionMode()

bool NVMCTRL_CheckPowerReductionMode ( void )

Check if NVMCTRL is in power reduction mode.

Parameters
voidNo parameters
Returns
true if in power reduction mode, false otherwise

◆ NVMCTRL_CheckSecurityBit()

bool NVMCTRL_CheckSecurityBit ( void )

Check if the Security Bit is set.

Parameters
voidNo parameters
Returns
true if set, false otherwise

◆ NVMCTRL_ClearErrorStatus()

void NVMCTRL_ClearErrorStatus ( void )

Clear NVMCTRL error status bits.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_ClearInterruptFlag()

void NVMCTRL_ClearInterruptFlag ( uint8_t source)

Clear NVMCTRL interrupt flags.

Parameters
sourceInterrupt flag mask to clear
Returns
void

◆ NVMCTRL_ClearPageBuffer()

void NVMCTRL_ClearPageBuffer ( void )

Clear the NVM page buffer.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_DisableCache()

void NVMCTRL_DisableCache ( void )

Disable cache for main flash array.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_DisableInterrupt()

void NVMCTRL_DisableInterrupt ( uint8_t source)

Disable NVMCTRL interrupts.

Parameters
sourceInterrupt source mask to disable
Returns
void

◆ NVMCTRL_DisableManualWrite()

void NVMCTRL_DisableManualWrite ( void )

Disable manual write mode.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_DisablePowerReduction()

void NVMCTRL_DisablePowerReduction ( void )

Disable power reduction mode.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_EnableCache()

void NVMCTRL_EnableCache ( void )

Enable cache for main flash array.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_EnableInterrupt()

void NVMCTRL_EnableInterrupt ( uint8_t source)

Enable NVMCTRL interrupts.

Parameters
sourceInterrupt source mask to enable
Returns
void

◆ NVMCTRL_EnableManualWrite()

void NVMCTRL_EnableManualWrite ( void )

Enable manual write mode.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_EnablePowerReduction()

void NVMCTRL_EnablePowerReduction ( void )

Enable power reduction mode.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_EraseRow()

bool NVMCTRL_EraseRow ( uint32_t address)

Erase a row in NVM memory.

Parameters
addressStart address of row in NVM memory (must be row-aligned)
Returns
true if row erased successfully, false if invalid

◆ NVMCTRL_EraseRWWEERow()

bool NVMCTRL_EraseRWWEERow ( uint32_t address)

Erase a row in RWW EEPROM.

Parameters
addressStart address of row in RWW EEPROM (must be row-aligned)
Returns
true if row erased successfully, false if invalid

◆ NVMCTRL_EraseUserRow()

bool NVMCTRL_EraseUserRow ( uint32_t row_address)

Erase a page in the User Row.

Parameters
row_addressUser Row address to erase
Returns
true if row erase is initiated, false if address is invalid

◆ NVMCTRL_ErrorGet()

uint32_t NVMCTRL_ErrorGet ( void )

Check NVMCTRL error status.

Parameters
voidNo parameters
Returns
Error status enum

◆ NVMCTRL_GetInterruptFlag()

uint32_t NVMCTRL_GetInterruptFlag ( void )

Get the current NVMCTRL interrupt flag value.

Parameters
voidNo parameters
Returns
Interrupt flag register value

◆ NVMCTRL_GetPageSize()

uint32_t NVMCTRL_GetPageSize ( void )

Get the NVM page size.

Parameters
voidNo parameters
Returns
Page size in bytes

◆ NVMCTRL_Initialize()

void NVMCTRL_Initialize ( void )

Initialize the NVMCTRL peripheral.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_InvalidateCache()

void NVMCTRL_InvalidateCache ( void )

Invalidate all cache lines.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_IsBusy()

bool NVMCTRL_IsBusy ( void )

Check if NVMCTRL is busy.

Parameters
voidNo parameters
Returns
true if busy, false otherwise.

◆ NVMCTRL_LockRegion()

void NVMCTRL_LockRegion ( uint32_t address)

Lock a region in NVM memory.

Parameters
addressRegion address to lock
Returns
void

◆ NVMCTRL_Read()

bool NVMCTRL_Read ( const uint32_t address,
uint32_t * data,
uint32_t length )

Read from NVM memory.

Parameters
addressStart address in NVM memory
dataPointer to destination buffer for read data
lengthNumber of bytes to read
Returns
true if read successful, false if invalid

◆ NVMCTRL_SetCacheReadMode()

void NVMCTRL_SetCacheReadMode ( uint32_t mode)

Set the cache read mode.

Parameters
modeCache read mode (NO_MISS_PENALTY, LOW_POWER, or DETERMINISTIC)
Returns
void

◆ NVMCTRL_SetCallbackHandler()

void NVMCTRL_SetCallbackHandler ( NVMCTRL_CALLBACK_HANDLER callback)

Register a callback handler for NVMCTRL interrupts.

Parameters
callbackCallback function pointer to be called on interrupt
Returns
void

◆ NVMCTRL_SetReadWaitStates()

bool NVMCTRL_SetReadWaitStates ( uint8_t wait_states)

Set the number of NVMCTRL read wait states.

Parameters
wait_statesNumber of wait states (0..15)
Returns
true if set, false if invalid

◆ NVMCTRL_SetSecurityBit()

void NVMCTRL_SetSecurityBit ( void )

Set the Security Bit.

Parameters
voidNo parameters
Returns
void

◆ NVMCTRL_SetSleepPowerMode()

void NVMCTRL_SetSleepPowerMode ( uint32_t mode)

Set the sleep power reduction mode.

Parameters
modeSleep power mode (WAKEONACCESS, WAKEUPINSTANT, or DISABLED)
Returns
void

◆ NVMCTRL_UnlockRegion()

void NVMCTRL_UnlockRegion ( uint32_t address)

Unlock a region in NVM memory.

Parameters
addressRegion address to unlock
Returns
void

◆ NVMCTRL_WritePage()

bool NVMCTRL_WritePage ( uint32_t address,
const uint32_t * data )

Write a page to NVM memory.

Parameters
addressStart address in NVM memory (must be page-aligned)
dataPointer to source data buffer containing page data
Returns
true if page written successfully, false if invalid

◆ NVMCTRL_WriteRWWEEPage()

bool NVMCTRL_WriteRWWEEPage ( uint32_t address,
const uint32_t * data )

Write a page to RWW EEPROM.

Parameters
addressStart address in RWW EEPROM (must be page-aligned)
dataPointer to source data buffer containing page data
Returns
true if page written successfully, false if invalid

◆ NVMCTRL_WriteUserRow()

bool NVMCTRL_WriteUserRow ( const uint32_t page_address,
const uint32_t * data )

Write a page in the User Row.

Parameters
page_addressUserRow page start address, Write granularity is Page
dataPointer to the data buffer to be written
Returns
true if page write is initiated, false if address is invalid