HT32SX Monarch Scan
Monarch Scan application for HT32SX
nvm_api.h File Reference

NVM handler. More...

#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  NVM_ConfigType
 NVM API configuration structure. More...
 
struct  NVM_RecurrentDataType
 Record for Sigfox recurrent data, like messages counter. More...
 
struct  NVM_BoardDataType
 Record for board data. More...
 

Enumerations

enum  NVM_TYPE { NVM_TYPE_EEPROM = 0, NVM_TYPE_FLASH = 1 }
 Describes NVM Type. Possible values reference FLASH or EEPROM memory. More...
 
enum  NVM_WRITE_MODE { NVM_WRITE_MODE_WRITEOVER = 0, NVM_WRITE_MODE_ERASE = 1 }
 Describes write mode operation. More...
 
enum  NVM_RW_RESULTS {
  NVM_RW_OK = 0, NVM_WRITE_ERROR, NVM_READ_ERROR, NVM_WRITE_RECORD_ERROR,
  NVM_READ_RECORD_ERROR, NVM_WRITE_HEADER_ERROR, NVM_NO_RECORDS
}
 Return values for NVM Read/Write functions. More...
 
enum  NVM_UPDATE_OFFSET { NVM_FREQ_OFFSET = 0, NVM_RSSI_OFFSET = 1, NVM_LBT_OFFSET = 2 }
 Board Data update modes. More...
 

Functions

void SetNVMInitial (NVM_ConfigType *config)
 Initialize NVM API. More...
 
NVM_TYPE GetNVMType (void)
 Returns the configured NVM Type. More...
 
uint32_t GetNVMBoardDataAddress (void)
 Returns the Board Data Address. More...
 
uint32_t GetNVMSigfoxDataAddress (void)
 Returns the Sigfox Data Address. More...
 
NVM_RW_RESULTS NVM_Read (uint32_t nAddress, uint8_t cNbBytes, uint8_t *pcBuffer)
 Reads data from NVM. More...
 
NVM_RW_RESULTS NVM_Write (uint32_t nAddress, uint8_t cNbBytes, uint8_t *pcBuffer, NVM_WRITE_MODE writeMode)
 Writes data to NVM. More...
 
NVM_RW_RESULTS NVM_ReadRecord (uint8_t *nvmRecord, uint32_t recordSize)
 Reads last record stored at userSpaceAddress. More...
 
NVM_RW_RESULTS NVM_WriteRecord (uint8_t *nvmRecord, uint32_t recordSize)
 Writes record in the last available slot in the userSpace page. If no space left, the page will be erased before write. More...
 
NVM_RW_RESULTS NVM_UpdateOffset (NVM_UPDATE_OFFSET updateWhat, int32_t data)
 Update Board Offsets (Frequency, RSSI and LBT offsets) More...
 

Detailed Description

NVM handler.

Author
AMG - RF Application team
Version
1.2.0
Date
February, 2019

This file defines the functions to handle EEPROM or FLASH NVM

Enumeration Type Documentation

◆ NVM_RW_RESULTS

Return values for NVM Read/Write functions.

◆ NVM_TYPE

enum NVM_TYPE

Describes NVM Type. Possible values reference FLASH or EEPROM memory.

◆ NVM_UPDATE_OFFSET

Board Data update modes.

◆ NVM_WRITE_MODE

Describes write mode operation.

@detail Flash Write can be be performed with or without erasing the page before write

Enumerator
NVM_WRITE_MODE_WRITEOVER 

Write data without erase the page

NVM_WRITE_MODE_ERASE 

Erase the page before write

Function Documentation

◆ GetNVMBoardDataAddress()

uint32_t GetNVMBoardDataAddress ( void  )

Returns the Board Data Address.

Parameters
None
Return values
BoardData Address

◆ GetNVMSigfoxDataAddress()

uint32_t GetNVMSigfoxDataAddress ( void  )

Returns the Sigfox Data Address.

Parameters
None
Return values
SigfoxData Address

◆ GetNVMType()

NVM_TYPE GetNVMType ( void  )

Returns the configured NVM Type.

Parameters
None
Return values
NVM_TYPE

◆ NVM_Read()

NVM_RW_RESULTS NVM_Read ( uint32_t  nAddress,
uint8_t  cNbBytes,
uint8_t *  pcBuffer 
)

Reads data from NVM.

Parameters
nAddressRead start address
cNbBytesNumber of bytes to read
pcBufferReturned buffer
Return values
NVM_RW_RESULTS

◆ NVM_ReadRecord()

NVM_RW_RESULTS NVM_ReadRecord ( uint8_t *  nvmRecord,
uint32_t  recordSize 
)

Reads last record stored at userSpaceAddress.

Parameters
nvmRecordReturned record
recordSizeSize of record
Return values
NVM_RW_RESULTS

◆ NVM_UpdateOffset()

NVM_RW_RESULTS NVM_UpdateOffset ( NVM_UPDATE_OFFSET  updateWhat,
int32_t  data 
)

Update Board Offsets (Frequency, RSSI and LBT offsets)

Parameters
dataOffset value
updateWhatSpecifies what kind of offset to overwrite
See also
NVM_UPDATE_OFFSET
Return values
NVM_RW_RESULTS

◆ NVM_Write()

NVM_RW_RESULTS NVM_Write ( uint32_t  nAddress,
uint8_t  cNbBytes,
uint8_t *  pcBuffer,
NVM_WRITE_MODE  writeMode 
)

Writes data to NVM.

Parameters
nAddressWrite start address
cNbBytesNumber of bytes to write
pcBufferData to write
writeModeWrite mode operation type
See also
NVM_WRITE_MODE
Return values
NVM_RW_RESULTS

◆ NVM_WriteRecord()

NVM_RW_RESULTS NVM_WriteRecord ( uint8_t *  nvmRecord,
uint32_t  recordSize 
)

Writes record in the last available slot in the userSpace page. If no space left, the page will be erased before write.

Parameters
nvmRecordRecord to write
recordSizeSize of record
Return values
NVM_RW_RESULTS

◆ SetNVMInitial()

void SetNVMInitial ( NVM_ConfigType config)

Initialize NVM API.

Parameters
configconfiguration structure.