bf0_hal_ezip.h

Header file of EZIP HAL module.

Author

Sifli software development team

Attention

Defines

HAL_EZIP_MODE_DATA_TYPE_MASK

low 7bit indicates EZIP data type, EZIP, GZIP or LZ4

HAL_EZIP_MODE_ADDR_TYPE_MASK

bit7 indicates EZIP data addressing type

HAL_EZIP_MODE_ADDR_CONT_TYPE

Continuous Data Addressing Mode

EZIP_PARA_OUT_EPIC
EZIP_PARA_OUT_AHB
EZIP_PARA_MOD_EZIP
EZIP_PARA_MOD_GZIP
EZIP_PARA_MOD_LZ4

Typedefs

typedef struct __FLASH_HandleTypeDef *(*EZIP_FlashHandleQueryCbTypeDef)(uint32_t addr)
typedef struct __EZIP_HandleTypeDef EZIP_HandleTypeDef

EZIP handle structure definition

Enums

enum HAL_EZIP_StateTypeDef

HAL EZIP State structures definition.

Values:

enumerator HAL_EZIP_STATE_RESET

EZIP not yet initialized or disabled

enumerator HAL_EZIP_STATE_READY

Peripheral Initialized and ready for use

enumerator HAL_EZIP_STATE_BUSY

An internal process is ongoing

enumerator HAL_EZIP_STATE_TIMEOUT

Timeout state

enumerator HAL_EZIP_STATE_ERROR

EZIP state error

enumerator HAL_EZIP_STATE_SUSPEND

EZIP process is suspended

enum EZIP_WorkModeTypeDef

EZIP Work Mode

Values:

enumerator HAL_EZIP_MODE_EZIP

EZIP continuous mode

enumerator HAL_EZIP_MODE_GZIP

GZIP mode

enumerator HAL_EZIP_MODE_LZ4

LZ4 mode

enumerator HAL_EZIP_MODE_DATA_TYPE_NUM
enum EZIP_OutputModeTypeDef

EZIP Output Mode

Values:

enumerator HAL_EZIP_OUTPUT_EPIC

output to EPIC

enumerator HAL_EZIP_OUTPUT_AHB

output to AHB bus

Functions

HAL_StatusTypeDef HAL_EZIP_Init(EZIP_HandleTypeDef *ezip)

EZIP Init.

参数:
  • ezip[in] EZIP handle

返回值:

HAL – status

HAL_StatusTypeDef HAL_EZIP_IRQHandler(EZIP_HandleTypeDef *ezip)

EZIP IRQ Handler.

参数:
  • ezip – EZIP handle

返回值:

None

HAL_StatusTypeDef HAL_EZIP_Decode(EZIP_HandleTypeDef *ezip, EZIP_DecodeConfigTypeDef *config)

Start decoding in polling mode.

参数:
  • ezip[in] EZIP handle

  • config[in] decoding configuration

返回值:

HAL – status

HAL_StatusTypeDef HAL_EZIP_Decode_IT(EZIP_HandleTypeDef *ezip, EZIP_DecodeConfigTypeDef *config)

Start decoding in interrupt mode.

CpltCallback in handle is used to notify the completion

参数:
  • ezip[in] EZIP handle

  • config[in] decoding configuration

返回值:

HAL – status

HAL_StatusTypeDef HAL_EZIP_DeInit(EZIP_HandleTypeDef *ezip)

EZIP Deinit.

参数:
  • ezip[in] EZIP handle

返回值:

HAL – status

HAL_StatusTypeDef HAL_EZIP_CheckReady(EZIP_HandleTypeDef *ezip)

Check if EZIP is idle.

参数:
  • ezip[in] EZIP handle

返回值:

HAL – status

HAL_StatusTypeDef HAL_EZIP_DecodeFast_Init(EZIP_HandleTypeDef *hezip)
HAL_StatusTypeDef HAL_EZIP_DecodeFast_IT(EZIP_HandleTypeDef *hezip)
struct EZIP_DecodeConfigTypeDef
#include <bf0_hal_ezip.h>

EZIP Decoding Configuration

Public Members

uint8_t *input

input data buffer, must be 32bit aligned, for non continuous work_mode, format is EZIP_BlockListTypeDef

uint8_t *output

output data buffer, must be 32bit aligned

used if output_mode is HAL_EZIP_OUTPUT_AHB

EZIP_WorkModeTypeDef work_mode

work mode

EZIP_OutputModeTypeDef output_mode

output mode

uint16_t start_x

topleft pixel x coordinate of the interested region

starting from 0

uint16_t start_y

topleft pixel y coordinate of the interested region

starting from 0

int16_t width

interested region width

set to -1 if all columns are needed

int16_t height

interested region height

set to -1 if all rows are needed

uint32_t input_data_size

ezip data size in bytes, only valid if data is saved in NAND

struct __EZIP_HandleTypeDef
#include <bf0_hal_ezip.h>

EZIP handle structure definition

Public Members

EZIP_TypeDef *Instance

EZIP register base address.

void (*CpltCallback)(struct __EZIP_HandleTypeDef *ezip)

EZIP processing complete callback.

HAL_EZIP_StateTypeDef State

EZIP state.

uint32_t ErrorCode

EZIP error code.

void *user_data

user_data

EZIP_FlashHandleQueryCbTypeDef flash_handle_query_cb

flash handle query callback

EZIP_TypeDef *RamInstance

EZIP register on RAM.

EZIP_TypeDef *HwInstance

Backup of EZIP register base address.

uint8_t RamInstance_used