Synergy Software Package User's Manual

RTOS-integrated Block Media framework for LEVELX driver. More...

Data Structures

struct  sf_block_media_on_lx_nor_cfg_t
 
struct  sf_block_media_lx_nor_instance_ctrl_t
 

Macros

#define SF_BLOCK_MEDIA_LX_NOR_ERROR_RETURN(a, err)   SSP_ERROR_RETURN((a), (err), &g_module_name[0], &g_block_media_lx_nor_version)
 
#define SF_BLOCK_MEDIA_LX_NOR_OPEN   (0x424D4C4FU)
 

Functions

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Open (sf_block_media_ctrl_t *const p_ctrl, sf_block_media_cfg_t const *const p_cfg)
 Open device for read/write and control. More...
 
ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Read (sf_block_media_ctrl_t *const p_ctrl, uint8_t *const p_dest, uint32_t const start_sector, uint32_t const sector_count)
 Read data from flash using LevelX. More...
 
ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Write (sf_block_media_ctrl_t *const p_ctrl, uint8_t const *const p_src, uint32_t const start_sector, uint32_t const sector_count)
 Write data to flash using LevelX. More...
 
ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Control (sf_block_media_ctrl_t *const p_ctrl, ssp_command_t const command, void *p_data)
 Send control commands to Block Media LevelX NOR driver. More...
 
ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Close (sf_block_media_ctrl_t *const p_ctrl)
 Close open Block Media LevelX NOR driver. More...
 
ssp_err_t SF_BLOCK_MEDIA_LX_NOR_VersionGet (ssp_version_t *const p_version)
 Get version of Block Media LevelX driver. More...
 

Variables

const sf_block_media_api_t g_sf_block_media_on_sf_block_media_lx_nor
 

Detailed Description

RTOS-integrated Block Media framework for LEVELX driver.

Macro Definition Documentation

◆ SF_BLOCK_MEDIA_LX_NOR_ERROR_RETURN

#define SF_BLOCK_MEDIA_LX_NOR_ERROR_RETURN (   a,
  err 
)    SSP_ERROR_RETURN((a), (err), &g_module_name[0], &g_block_media_lx_nor_version)

Macro for error logger.

◆ SF_BLOCK_MEDIA_LX_NOR_OPEN

#define SF_BLOCK_MEDIA_LX_NOR_OPEN   (0x424D4C4FU)

"BMLO" in ASCII, used to identify block media LevelX handle

Function Documentation

◆ SF_BLOCK_MEDIA_LX_NOR_Close()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Close ( sf_block_media_ctrl_t *const  p_ctrl)

Close open Block Media LevelX NOR driver.

Close an open Block Media LevelX NOR driver.

Return values
SSP_SUCCESSSuccessfully closed.
SSP_ERR_ASSERTIONp_ctrl or p_nor_flash is NULL.
SSP_ERR_NOT_OPENThe block media is not open.
Returns
See Common Error Codes or lower level drivers for other possible return codes. This function calls:
  • lx_nor_flash_close
  • SF_EL_LX_NOR_Close

Validate the parameters

Check whether the instance is in open state

Close the LevelX NOR flash driver.

Close underlying NOR driver, if available

Mark control block close so subsequent calls know the device is close.

◆ SF_BLOCK_MEDIA_LX_NOR_Control()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Control ( sf_block_media_ctrl_t *const  p_ctrl,
ssp_command_t const  command,
void *  p_data 
)

Send control commands to Block Media LevelX NOR driver.

Return values
SSP_SUCCESSCommand executed successfully.
SSP_ERR_ASSERTIONp_ctrl or p_data is Null.
SSP_ERR_NOT_OPENThe block media is not open.
SSP_ERR_UNSUPPORTEDThis module doesn't support requested command.
SSP_ERR_SECTOR_RELEASE_FAILEDSector release command failed.
Returns
See Common Error Codes or lower level drivers for other possible return codes. This function calls:
  • lx_nor_flash_sector_release

Validate the parameters

Check whether the instance is in open state

Get the sector count

LevelX divides each NOR flash block into 512-byte logical sectors

It's not write protected

LevelX supports sector release

Release NOR flash sector.

◆ SF_BLOCK_MEDIA_LX_NOR_Open()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Open ( sf_block_media_ctrl_t *const  p_ctrl,
sf_block_media_cfg_t const *const  p_cfg 
)

Open device for read/write and control.

Open LevelX flash device for read/write and control. This function initializes the LevelX driver and hardware the first time it is called out of reset. The underlying flash needs to either be erased or already initialized with LevelX.

Return values
SSP_SUCCESSLevelX flash is available and is now open for read, write, and control access.
SSP_ERR_ASSERTIONp_ctrl, p_cfg or an input pointer is NULL.
SSP_ERR_MEDIA_OPEN_FAILEDLevelX NOR or the underlying flash failed to open. The underlying flash needs to either be erased or already initialized with LevelX.
SSP_ERR_ALREADY_OPENThe block media LevelX NOR instance has already been opened. No configurations were changed. Call the associated Close function or use associated Control commands to reconfigure the instance.
Returns
See Common Error Codes or lower LevelX drivers for other possible return codes. This function calls:
  • lx_nor_flash_open

Validate the parameters

Check whether instance is already open

Update instance control block

Open underlying LevelX

Mark control block open so subsequent calls know the device is open.

◆ SF_BLOCK_MEDIA_LX_NOR_Read()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Read ( sf_block_media_ctrl_t *const  p_ctrl,
uint8_t *const  p_dest,
uint32_t const  start_sector,
uint32_t const  sector_count 
)

Read data from flash using LevelX.

Return values
SSP_SUCCESSData read successfully.
SSP_ERR_ASSERTIONp_ctrl or p_dest is NULL.
SSP_ERR_NOT_OPENThe block media is not open.
SSP_ERR_READ_FAILEDData read failed.
Returns
See Common Error Codes or lower level drivers for other possible return codes. This function calls:
  • lx_nor_flash_sector_read

Validate the parameters

Check whether the instance is in open state

Loop to read sectors from flash.

Read a sector from NOR flash.

◆ SF_BLOCK_MEDIA_LX_NOR_VersionGet()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_VersionGet ( ssp_version_t *const  p_version)

Get version of Block Media LevelX driver.

Return the version of the firmware and API.

Return values
SSP_ERR_ASSERTIONp_version is Pointer.
SSP_SUCCESSversion read successfully.
Returns
See Common Error Codes or lower level drivers for other possible return codes.
Note
This function is reentrant.

Validate the parameters

◆ SF_BLOCK_MEDIA_LX_NOR_Write()

ssp_err_t SF_BLOCK_MEDIA_LX_NOR_Write ( sf_block_media_ctrl_t *const  p_ctrl,
uint8_t const *const  p_src,
uint32_t const  start_sector,
uint32_t const  sector_count 
)

Write data to flash using LevelX.

Return values
SSP_SUCCESSWrite finished successfully.
SSP_ERR_ASSERTIONp_ctrl or p_src is NULL.
SSP_ERR_NOT_OPENThe block media is not open.
SSP_ERR_WRITE_FAILEDData write failed.
Returns
See Common Error Codes or lower level drivers for other possible return codes. This function calls:
  • lx_nor_flash_sector_write

Validate the parameters

Check whether the instance is in open state

Loop to write sectors into flash.

Write a sector into NOR flash.

Variable Documentation

◆ g_sf_block_media_on_sf_block_media_lx_nor

const sf_block_media_api_t g_sf_block_media_on_sf_block_media_lx_nor
Initial value:

Block Media LevelX function pointers