bf0_hal_epic.h

Header file of EPIC HAL module.

Author

Sifli software development team

Attention

Defines

EPIC_SUPPORT_MASK
EPIC_SUPPORT_MONOCHROME_LAYER
EPIC_SUPPORT_A4
EPIC_SUPPORT_A8
EPIC_SUPPORT_L8
EPIC_SUPPORT_YUV
EPIC_SUPPORT_DITHER
EPIC_DEBUG
MAX_EPIC_LAYER
EPIC_COLOR_RGB565

RGB565 color format

EPIC_COLOR_ARGB8565

ARGB8565 color format

EPIC_COLOR_RGB888

RGB888 color format

EPIC_COLOR_ARGB8888

ARGB8888 color format

EPIC_COLOR_L8

L8 color format

EPIC_COLOR_A8

A8 color format

EPIC_COLOR_A4

A4 color format

EPIC_COLOR_A2

A2 color format

EPIC_COLOR_MONO

Monochrome color format

EPIC_COLOR_EZIP_FLAG

EZIP color format flag, supported after A0

EPIC_COLOR_EZIP

EZIP color format

EPIC_COLOR_YUV_FLAG

YUV format example:

  1. YUV422_PACKED_YUYV: YUYV_YUYV_YUYV_…_YUYV

  2. YUV420_PLANAR(YUV420P): YYYY_YYYY_YYYY_…_YYYY U_U_U_…_U V_V_V_…_V

  3. YUV420_SEMI_PLANAR(YUV420SP): YYYY_YYYY_YYYY_…_YYYY UV_UV_UV_…_UV

EPIC_COLOR_YUV422_PACKED_YUYV

YUYV

EPIC_COLOR_YUV422_PACKED_UYVY

UYUV

EPIC_COLOR_YUV420_PLANAR

iYUV

EPIC_OUTPUT_RGB565

RGB565 EPIC output color mode

EPIC_OUTPUT_ARGB8565

ARGB8565 EPIC output color mode

EPIC_OUTPUT_RGB888

RGB888 EPIC output color mode

EPIC_OUTPUT_ARGB8888

ARGB8888 EPIC output color mode

EPIC_SUPPROT_OUT_FORMAT(cf)
EPIC_INPUT_RGB565

RGB565 input color mode

EPIC_INPUT_ARGB8565

ARGB8565 input color mode

EPIC_INPUT_RGB888

RGB888 input color mode

EPIC_INPUT_ARGB8888

ARGB8888 input color mode

EPIC_INPUT_L8

L8 color format

EPIC_INPUT_A8

A8 color format

EPIC_INPUT_A4

A4 color format

EPIC_INPUT_A2

A2 color format

EPIC_INPUT_EZIP

EZIP color format

EPIC_INPUT_YUV422_PACKED_YUYV

YUYV

EPIC_INPUT_YUV422_PACKED_UYVY

UYUV

EPIC_INPUT_YUV420_PLANAR

iYUV

EPIC_INPUT_MONO
EPIC_LAYER_OPAQUE
EPIC_MAX_LOOKUP_TABLE_CNT

Maximum lookup table color numbers

EPIC_LOOKUP_TABLE_SIZE

In bytes

EPIC_LOOKUP_TABLES
EPIC_IS_EZIP_COLOR_MODE(c)
EPIC_IS_YUV_COLOR_MODE(c)
EPIC_TO_INT32_COORD(INT16, FRAC16)
EPIC_INT32_COORD_GET_INT16(_INT32_)
EPIC_INT32_COORD_GET_FRAC16(_INT32_)
EPIC_INPUT_SCALE_FRAC_SIZE
EPIC_INPUT_SCALE_NONE
EPIC_COORDINATES_MAX
EPIC_SIN_COS_FRAC_BIT
EPIC_OP_HIST_DEPTH

Typedefs

typedef int16_t (*EPIC_TransPath)(int16_t cur, EPIC_LayerConfigTypeDef *pTransLayer, void *user_data)
typedef struct __EPIC_HandleTypeDef EPIC_HandleTypeDef

EPIC handle structure definition

typedef void (*EPIC_CpltCallback)(EPIC_HandleTypeDef *epic)

Enums

enum HAL_EPIC_StateTypeDef

HAL EPIC State structures definition.

Values:

enumerator HAL_EPIC_STATE_RESET

EPIC not yet initialized or disabled

enumerator HAL_EPIC_STATE_READY

Peripheral Initialized and ready for use

enumerator HAL_EPIC_STATE_BUSY

An internal process is ongoing

enumerator HAL_EPIC_STATE_TIMEOUT

Timeout state

enumerator HAL_EPIC_STATE_ERROR

EPIC state error

enumerator HAL_EPIC_STATE_SUSPEND

EPIC process is suspended

enum Alpha_BlendTypeDef

The blending behaviors of EPIC A4/A8 layer.

Values:

enumerator ALPHA_BLEND_INVALID

Invalid

enumerator ALPHA_BLEND_RGBCOLOR

Append a fixed RGB color to be an ARGB layer

enumerator ALPHA_BLEND_MASK

Alpha mask - Multiply with background’s alpha

enumerator ALPHA_BLEND_OVERWRITE

Replace the background’s alpha

enum EPIC_OpTypeDef

Values:

enumerator EPIC_OP_ROTATION
enumerator EPIC_OP_BLENDING
enumerator EPIC_OP_FILLING
enumerator EPIC_OP_FillGrad
enumerator EPIC_OP_BLENDING_EX
enumerator EPIC_OP_COPY
enumerator EPIC_OP_CONT_BLENDING
enumerator EPIC_OP_CONT_BLENDING_REPEAT
enumerator EPIC_OP_TRANSFORM
enum EPIC_ApiEnumType

Values:

enumerator EPIC_API_NORMAL
enumerator EPIC_API_CONTINUE

Continues mode

enumerator EPIC_API_TRANSFORM

Functions

HAL_StatusTypeDef HAL_EPIC_Init(EPIC_HandleTypeDef *epic)

EPIC Init.

参数:
  • epic[in] EPIC handle

返回值:

HAL – status

void HAL_EPIC_BlendDataInit(EPIC_BlendingDataType *layer)

Init an epic blend struct to default vaules.

参数:
  • [layer] – EPIC layer

返回值:

None

HAL_StatusTypeDef HAL_EPIC_BlendStart(EPIC_HandleTypeDef *epic, EPIC_BlendingDataType *fg, EPIC_BlendingDataType *bg, EPIC_BlendingDataType *dst, uint8_t alpha)

Start blending in polling mode.

参数:
  • epic[in] EPIC handle

  • fg[in] foreground layer configuration

  • bg[in] background layer configuration

  • dst[in] output layer configuration

  • alpha[in] alpha value

返回值:

HAL – status

HAL_StatusTypeDef HAL_EPIC_BlendStart_IT(EPIC_HandleTypeDef *epic, EPIC_BlendingDataType *fg, EPIC_BlendingDataType *bg, EPIC_BlendingDataType *dst, uint8_t alpha)

Start blending in interrupt mode.

参数:
  • epic[in] EPIC handle

  • fg[in] foreground layer configuration

  • bg[in] background layer configuration

  • dst[in] output layer configuration

  • alpha[in] alpha value

返回值:

HAL – status

void HAL_EPIC_RotDataInit(EPIC_TransformCfgTypeDef *rot_cfg)

Init an epic rotate cfg struct to default vaules.

参数:
  • rot_cfg – EPIC rotation configuration parameter

返回值:

None

HAL_StatusTypeDef HAL_EPIC_Rotate(EPIC_HandleTypeDef *epic, EPIC_TransformCfgTypeDef *rot_cfg, EPIC_BlendingDataType *fg, EPIC_BlendingDataType *bg, EPIC_BlendingDataType *dst, uint8_t alpha)

Rotate and scale src1 based on the image center, blend with bg and output to dst in polling mode.

备注

fields in fg, bg and dst would be modified

参数:
  • epic[in] EPIC handle

  • rot_cfg[in] rotation configuration

  • fg[in] configuration of foreground layer that’s to be rotated

  • bg[in] background layer configuration

  • dst[in] output layer configuration

  • alpha[in] alpha value for the fg.

返回值:

HAL – status

HAL_StatusTypeDef HAL_EPIC_Rotate_IT(EPIC_HandleTypeDef *epic, EPIC_TransformCfgTypeDef *rot_cfg, EPIC_BlendingDataType *fg, EPIC_BlendingDataType *bg, EPIC_BlendingDataType *dst, uint8_t alpha)

Rotate and scale src1 based on the image center, blend with bg and output to dst in interrupt mode.

备注

fields in fg, bg and dst would be modified

参数:
  • epic[in] EPIC handle

  • rot_cfg[in] rotation configuration

  • fg[in] configuration of foreground layer that’s to be rotated

  • bg[in] background layer configuration

  • dst[in] output layer configuration

  • alpha[in] alpha value

返回值:

HAL – status

void HAL_EPIC_FillDataInit(EPIC_FillingCfgTypeDef *param)

Init an epic fill cfg struct to default vaules.

参数:
  • param – EPIC fill configuration parameter

返回值:

None

HAL_StatusTypeDef HAL_EPIC_FillStart_IT(EPIC_HandleTypeDef *epic, EPIC_FillingCfgTypeDef *param)

Fill the region with given color in interrupt mode.

if alpha is used, filling color would be blended with original color in the buffer output_color = alpha * filling_color + (255 - alpha) * original_color

参数:
  • epic[in] EPIC handle

  • param[in] filling region configuration

返回值:

HAL – status

HAL_StatusTypeDef HAL_EPIC_FillStart(EPIC_HandleTypeDef *epic, EPIC_FillingCfgTypeDef *param)

Fill the region with given color in polling mode.

if alpha is used, filling color would be blended with original color in the buffer output_color = alpha * filling_color + (255 - alpha) * original_color

参数:
  • epic[in] EPIC handle

  • param[in] filling region configuration

返回值:

HAL – status

HAL_StatusTypeDef HAL_EPIC_Copy_IT(EPIC_HandleTypeDef *epic, EPIC_BlendingDataType *src, EPIC_BlendingDataType *dst)

Copy src data buffer to dst.

参数:
  • epic[in] EPIC handle

  • src[in] src layer configuration

  • dst[in] dst layer configuration

返回值:

HAL – status

void HAL_EPIC_FillGradDataInit(EPIC_GradCfgTypeDef *param)

Init an epic fill grad cfg struct to default vaules.

参数:
  • param – EPIC fill grad configuration parameter

返回值:

None

HAL_StatusTypeDef HAL_EPIC_FillGrad_IT(EPIC_HandleTypeDef *epic, EPIC_GradCfgTypeDef *param)
HAL_StatusTypeDef HAL_EPIC_FillGrad(EPIC_HandleTypeDef *epic, EPIC_GradCfgTypeDef *param)
void HAL_EPIC_LayerConfigInit(EPIC_LayerConfigTypeDef *layer)

Init an epic layer config struct to default values.

参数:
  • layer – EPIC layer

返回值:

None

HAL_StatusTypeDef HAL_EPIC_BlendStartEx(EPIC_HandleTypeDef *epic, EPIC_LayerConfigTypeDef *input_layer, uint8_t input_layer_num, EPIC_LayerConfigTypeDef *output_layer)

input_layer[0]: bottom layer, input_layer[1] is on top of input_layer[0] input_layer[2] is on top of input_layer[1], …

and mask layer will apply to the layer(1 layer only) under it.

HAL_StatusTypeDef HAL_EPIC_BlendStartEx_IT(EPIC_HandleTypeDef *epic, EPIC_LayerConfigTypeDef *input_layer, uint8_t input_layer_num, EPIC_LayerConfigTypeDef *output_layer)

input_layer[0]: bottom layer, input_layer[1] is on top of input_layer[0] input_layer[2] is on top of input_layer[1], …

and mask layer will apply to the layer(1 layer only) under it.

void HAL_EPIC_IRQHandler(EPIC_HandleTypeDef *epic)

EPIC IRQ Handler.

参数:
  • epic – EPIC handle

返回值:

None

HAL_StatusTypeDef HAL_EPIC_ContBlendStart(EPIC_HandleTypeDef *hepic, EPIC_LayerConfigTypeDef *input_layer, EPIC_LayerConfigTypeDef *mask_layer, EPIC_LayerConfigTypeDef *output_layer)
HAL_StatusTypeDef HAL_EPIC_ContBlendRepeat(EPIC_HandleTypeDef *hepic, EPIC_LayerConfigTypeDef *cont_layer, EPIC_LayerConfigTypeDef *mask_layer, EPIC_LayerConfigTypeDef *output_layer)
HAL_StatusTypeDef HAL_EPIC_ContBlendStop(EPIC_HandleTypeDef *hepic)
HAL_StatusTypeDef HAL_EPIC_TransStart(EPIC_HandleTypeDef *hepic, EPIC_LayerConfigTypeDef *input_layer, uint8_t input_layer_num, EPIC_LayerConfigTypeDef *output_layer, EPIC_TransPath hor_path, EPIC_TransPath ver_path, void *user_data)
bool HAL_EPIC_AreaIsIn(const EPIC_AreaTypeDef *ain_p, const EPIC_AreaTypeDef *aholder_p)
bool HAL_EPIC_AreaIntersect(EPIC_AreaTypeDef *res_p, const EPIC_AreaTypeDef *a1_p, const EPIC_AreaTypeDef *a2_p)
void HAL_EPIC_AreaMove(EPIC_AreaTypeDef *area, int16_t x, int16_t y)
static inline int16_t HAL_EPIC_AreaWidth(const EPIC_AreaTypeDef *area_p)
static inline int16_t HAL_EPIC_AreaHeight(const EPIC_AreaTypeDef *area_p)
static inline void HAL_EPIC_AreaCopy(EPIC_AreaTypeDef *area_dst_p, const EPIC_AreaTypeDef *area_src_p)
static inline bool HAL_EPIC_AreaIsValid(const EPIC_AreaTypeDef *area_p)
void HAL_EPIC_AreaJoin(EPIC_AreaTypeDef *a_res_p, const EPIC_AreaTypeDef *a1_p, const EPIC_AreaTypeDef *a2_p)
void HAL_EPIC_LayerSetDataOffset(EPIC_BlendingDataType *layer, int16_t x, int16_t y)
HAL_StatusTypeDef HAL_EPIC_BlendFastStart_Init(EPIC_HandleTypeDef *hepic_s)
HAL_StatusTypeDef HAL_EPIC_BlendFastStart_IT(EPIC_HandleTypeDef *hepic, EPIC_HandleTypeDef *hepic_s)
uint32_t HAL_EPIC_GetColorDepth(uint32_t color_mode)
struct EPIC_InitTypeDef
#include <bf0_hal_epic.h>

EPIC Init structure definition.

Public Members

uint32_t reserved
struct EPIC_AreaTypeDef

Public Members

int16_t x0
int16_t y0
int16_t x1
int16_t y1
struct EPIC_TransformCfgTypeDef

Public Members

int16_t angle

angle in 0.1 degree

int8_t h_mirror

flip left to right

int8_t v_mirror

flip up to down

int16_t pivot_x

x coordinate of pivot relative to source image topleft pixel, valid if angle!=0 or scale_x(scale_y) != EPIC_INPUT_SCALE_NONE

int16_t pivot_y

y coordinate of pivot relative to source image topleft pixel, valid if angle!=0 or scale_x(scale_y) != EPIC_INPUT_SCALE_NONE

uint32_t scale_x

scaling factor in x direction

scale_x = factor*EPIC_INPUT_SCALE_NONE, EPIC_INPUT_SCALE_NONE means no scaling, scale_x < EPIC_INPUT_SCALE_NONE means scaling up, scale_x > EPIC_INPUT_SCALE_NONE means scaling down

uint32_t scale_y

scaling factor in y direction

scale_y = factor*EPIC_INPUT_SCALE_NONE, EPIC_INPUT_SCALE_NONE means no scaling, scale_y < EPIC_INPUT_SCALE_NONE means scaling up, scale_y > EPIC_INPUT_SCALE_NONE means scaling down

struct EPIC_YUVCfgTypeDef

Public Members

uint8_t *y_buf

Y buf in planar/semi-planar mode, or YUV buf in packed mode

uint8_t *u_buf

U(Cb) buf in planar mode, or UV buf in semi-planar mode

uint8_t *v_buf

V(Cr) buf in planar mode

struct EPIC_BlendingDataType
#include <bf0_hal_epic.h>

HAL EPIC Blend layer structures definition.

         |<-------                total_width                               ----->|

         +------------------------------------------------------------------------+
         |Image buffer                                                            |
         |                                                                        |
         |                                                                        |
         |                         |<-------        width     ----->|             |
         |  (x_offset,y_offset)                                                   |
         |          |------------->+--------------------------------+   ---       |
         |        data             |EPIC layer buffer               |    ^        |
         |                         |                                |    |        |
         |                         |                                |    |        |
         |                         |                                |             |
         |                         |                                |  height     |
         |                         |                                |             |
         |                         |                                |    |        |
         |                         |                                |    |        |
         |                         |                                |    v        |
         |                         +--------------------------------+   ---       |
         |                                                                        |
         |                                                                        |
         |                                                                        |
         |                                                                        |
         +------------------------------------------------------------------------+

  NOTE:  x_offset&y_offset is NOT relative Image buffer's top-left

Public Members

uint8_t *data

data, color format is specified by color_mode, point to the pixel data corresponding to pixel(x_offset,y_offset) Set to NULL if this layer is NOT actived

uint32_t color_mode

color mode, refer to EPIC_COLOR_RGB565, if ezip is enabled, it must be ARGB8888 for data with alpha channel or RGB888 for data without alpha channel

uint16_t width

layer width to be processed

uint16_t height

layer heigth to be processed

int16_t x_offset

topleft x coordinate of the layer

int16_t y_offset

topleft y coordinate of the layer

uint16_t x_offset_frac

x_offset ‘s fractional, has same sign as x_offset

uint16_t y_offset_frac

y_offset ‘s fractional, has same sign as y_offset

uint16_t total_width

layer total width,

e.g. data points to rectangle area (0,0)~(99,99), need to blend area (0,0)~(9,9), then width can be set to 10 while total_width is set to 100

bool color_en

Enabled color in RGB888,

  1. used as filter color by RGBxxx or ARGBxxx layer

  2. used as background color by ‘A4/A8’ color_mode layer

  3. used as background color by output layer

uint8_t color_r

Red, if color_filter_en is true, it’s filter color for rotation/scaling layer or background color for output layer

uint8_t color_g

Green

uint8_t color_b

Blue

Alpha_BlendTypeDef ax_mode

‘A4/A8’ color mode data blend mode

uint8_t *lookup_table

Lookup table for ‘L8’ mode data

uint32_t data_size

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

EPIC_YUVCfgTypeDef yuv

YUV data

uint16_t lookup_table_size

Lookup table color numbers

struct EPIC_LayerConfigTypeDef

Public Members

uint8_t *data

data, color format is specified by color_mode, point to the pixel data corresponding to pixel(x_offset,y_offset) Set to NULL if this layer is NOT actived

uint32_t color_mode

color mode, refer to EPIC_COLOR_RGB565, if ezip is enabled, it must be ARGB8888 for data with alpha channel or RGB888 for data without alpha channel

uint16_t width

layer width to be processed

uint16_t height

layer heigth to be processed

int16_t x_offset

topleft x coordinate of the layer

int16_t y_offset

topleft y coordinate of the layer

uint16_t x_offset_frac

x_offset ‘s fractional, has same sign as x_offset

uint16_t y_offset_frac

y_offset ‘s fractional, has same sign as y_offset

uint16_t total_width

layer total width,

e.g. data points to rectangle area (0,0)~(99,99), need to blend area (0,0)~(9,9), then width can be set to 10 while total_width is set to 100

bool color_en

Enabled color in RGB888,

  1. used as filter color by RGBxxx or ARGBxxx layer

  2. used as background color by ‘A4/A8’ color_mode layer

  3. used as background color by output layer

uint8_t color_r

Red, if color_filter_en is true, it’s filter color for rotation/scaling layer or background color for output layer

uint8_t color_g

Green

uint8_t color_b

Blue

Alpha_BlendTypeDef ax_mode

‘A4/A8’ color mode data blend mode

uint8_t *lookup_table

Lookup table for ‘L8’ mode data

uint32_t data_size

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

EPIC_YUVCfgTypeDef yuv

YUV data

uint16_t lookup_table_size

Lookup table color numbers, maximum is ‘EPIC_MAX_LOOKUP_TABLE_CNT’

uint8_t alpha

Layer global alpha

EPIC_TransformCfgTypeDef transform_cfg
struct EPIC_FillingCfgTypeDef

Public Members

uint8_t *start

filling start address, color format is specified by color_mode it’s the address of the first pixel which should be filled by the specifed color

uint32_t color_mode

color mode, refer to EPIC_COLOR_RGB565

uint16_t width

width of rectangle area to be filled

uint16_t height

height of rectangle area to be filled

uint16_t total_width

buffer total width,

e.g. buffer resolution is 100*200, 100 pixels each line, area (10,20)~(49, 69) needs to be filled with color red, then width is 40 and 3heigth is 50 while 3total_width is 100, after filling 40 pixels in one line, remaining 60 pixels position would be skipped and switch to start pixel of next line, start should point to the position of pixel (10,20)

uint8_t color_r

Red part of filling color, RGB888

uint8_t color_g

Green part of filling color, RGB888

uint8_t color_b

Blue part of filling color, RGB888

uint8_t alpha

alpha value, range: 0~255

union EPIC_ColorDef

Public Members

uint8_t color_b
uint8_t color_g
uint8_t color_r
uint8_t alpha
struct EPIC_ColorDef.[anonymous] ch
uint32_t full
struct EPIC_GradCfgTypeDef

Public Members

uint8_t *start

filling start address, color format is specified by color_mode it’s the address of the first pixel which should be filled by the specifed color

uint32_t color_mode

color mode, refer to EPIC_COLOR_RGB565

uint16_t width

width of rectangle area to be filled

uint16_t height

height of rectangle area to be filled

uint16_t total_width

buffer total width,

e.g. buffer resolution is 100*200, 100 pixels each line, area (10,20)~(49, 69) needs to be filled with color red, then width is 40 and 3heigth is 50 while 3total_width is 100, after filling 40 pixels in one line, remaining 60 pixels position would be skipped and switch to start pixel of next line, start should point to the position of pixel (10,20)

EPIC_ColorDef color[2][2]

color of rect area 4 pionts. [0][0] - top left [0][1] - top right [1][0] - bottom left [1][1] - bottom right

union EPIC_OpParamTypeDef

Public Members

EPIC_TransformCfgTypeDef rot_cfg
EPIC_BlendingDataType fg
EPIC_BlendingDataType bg
EPIC_BlendingDataType dst
uint8_t alpha
struct EPIC_OpParamTypeDef.[anonymous] rot_param
struct EPIC_OpParamTypeDef.[anonymous] blend_param
EPIC_FillingCfgTypeDef fill_param
EPIC_GradCfgTypeDef grad_param
uint8_t input_layer_num
EPIC_LayerConfigTypeDef input_layer[4U]
EPIC_LayerConfigTypeDef output_layer
struct EPIC_OpParamTypeDef.[anonymous] blend_ex_param
EPIC_BlendingDataType src
struct EPIC_OpParamTypeDef.[anonymous] copy_param
EPIC_LayerConfigTypeDef mask_layer
struct EPIC_OpParamTypeDef.[anonymous] cont_blend_param
struct EPIC_OpParamTypeDef.[anonymous] cont_blend_repeat_param
EPIC_TransPath hor_path
EPIC_TransPath ver_path
void *user_data
struct EPIC_OpParamTypeDef.[anonymous] transform_param
struct EPIC_OpHistItemTypeDef

Public Members

EPIC_OpTypeDef op
uint32_t start_time
EPIC_OpParamTypeDef param
struct EPIC_OpHistTypeDef

Public Members

uint8_t idx
EPIC_OpHistItemTypeDef hist[(4)]
struct EPIC_ContModeTypeDef

Public Members

uint8_t epic_layer[3]

Continues mode used EPIC layer, 0 - bg, 1 - fg, 2- mask

uint32_t color_format[3]

layer color foramt, 0 - bg, 1 - fg, 2- mask

uint32_t color_depth[3]

layer color depth, 0 - bg, 1 - fg, 2- mask

struct EPIC_TransModeTypeDef

Public Members

EPIC_TransPath hor_path
EPIC_TransPath ver_path
void *user_data
struct __EPIC_HandleTypeDef
#include <bf0_hal_epic.h>

EPIC handle structure definition

Public Members

EPIC_TypeDef *Instance

EPIC register base address.

uint32_t *LTab[2]
EPIC_InitTypeDef Init

EPIC init parameters.

void (*XferCpltCallback)(struct __EPIC_HandleTypeDef *epic)

EPIC processing complete callback.

HAL_EPIC_StateTypeDef State

EPIC state.

uint32_t ErrorCode

EPIC error code.

void (*IntXferCpltCallback)(struct __EPIC_HandleTypeDef *epic)

Internal EPIC processing complete callback. No need to set by user

EPIC_TypeDef *RamInstance

EPIC register on RAM.

EPIC_TypeDef *HwInstance

Backup of EPIC register base address.

uint8_t *RamLTab[2]
uint16_t RamLTabSize[2]
uint8_t RamInstance_used
uint32_t start_tick
uint32_t end_tick
uint32_t dither_enable
uint32_t reserved
EPIC_ApiEnumType api_type
EPIC_ContModeTypeDef cont_cfg

Continues mode configurations

EPIC_TransModeTypeDef trans_cfg
union __EPIC_HandleTypeDef.[anonymous] api_cfg
EPIC_OpHistTypeDef *op_hist
void *user_data

user data

uint32_t PerfCnt

EPIC total running cycle counter

uint32_t WaitCnt
uint32_t HalCnt