久久精品国产精品国产一区,少妇扒开毛毛自慰喷水,国产精品无码电影在线观看 ,久久天天躁夜夜躁狠狠85麻豆

思澈科技軟件開發(fā)工具包  2.20
EZIP

HAL EZIP 模塊提供抽象的軟件接口操作硬件EZIP模塊,EZIP模塊支持對(duì)ezip格式的數(shù)據(jù)進(jìn)行解壓縮。 支持的特性有:

  • AHB和EPIC輸出模式,AHB模式指解壓后的數(shù)據(jù)保存到指定memory地址,EPIC模式指解壓后的數(shù)據(jù)送入EPIC模塊, 使得EPIC可讀取ezip格式圖像數(shù)據(jù)實(shí)現(xiàn)混疊和縮放操作(不支持ezip格式數(shù)據(jù)的旋轉(zhuǎn)), 對(duì)于EPIC輸出模式,用戶可使用HAL EPIC接口配置EPIC讀取ezip格式數(shù)據(jù),HAL EPIC會(huì)配置EZIP進(jìn)入EPIC輸出模式,用戶不必調(diào)用HAL EZIP接口
  • 可指定圖形的部分區(qū)域解壓輸出
  • 支持中斷和輪詢模式
  • AHB模式下支持LZ4和GZIP4的解壓
  • 除了SF32LB55X,其他芯片系列支持EZIPA動(dòng)畫數(shù)據(jù)的解壓縮,中間件的ezipa_dec模塊基于EPIC和EZIP驅(qū)動(dòng)提供了更上層的軟件支持,使用方法參考ezipa_dec模塊的頭文件

詳細(xì)的API說明參考 EZIP .

使用HAL EZIP

首先調(diào)用 HAL_EZIP_Init 初始化HAL_EZIP, 需要在 EZIP_HandleTypeDef 中指定使用的EZIP硬件模塊(即EZIP實(shí)例),芯片只有一個(gè)EZIP實(shí)例,由 hwp_ezip 表示。 初始化只需做一次,之后就可以調(diào)用 HAL_EZIP_DecodeHAL_EZIP_Decode_IT 解壓數(shù)據(jù)。

Note
源和目的地址需要保證4字節(jié)對(duì)齊

例如,

static EZIP_HandleTypeDef ezip_handle;
void init_ezip(void)
{ // Initialize driver and enable EZIP IRQ
HAL_NVIC_SetPriority(EZIP_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(EZIP_IRQn);
ezip_handle.instance = hwp_ezip ;
HAL_EZIP_Init(&ezip_handle);
}

AHB output (polling mode)

void example_ahb(void)
{
uint16_t width = 68;
uint16_t height = 37;
/* image size if 68*37, color format is ARGB565A, output entire image, output region is (0,0,)~(67,36) */
config.input = (uint8_t *)img;
config.output = malloc(width * height * 3);
memset(config.output, 0, width * height * 3);
config.start_x = 0;
config.start_y = 0;
config.width = 68;
config.height = 37;
res = HAL_EZIP_Decode(&ezip_handle, &config);
/* image size if 68*37, color format is ARGB565A, output partial image, output region is (10,20)~(39,31) */
config.input = (uint8_t *)img;
config.output = malloc(width * height * 3);
memset(config.output, 0, width * height * 3);
config.start_x = 10;
config.start_y = 20;
config.width = 30;
config.height = 12;
res = HAL_EZIP_Decode(&ezip_handle, &config);
}

AHB output (interrupt mode)

/* EZIP IRQ ISR in vector table */
void EZIP_IRQHandler(void)
{
HAL_EZIP_IRQHandler(ezip_handle);
}
static uint8_t ezip_done_flag;
static void ezip_done(EZIP_HandleTypeDef *ezip)
{
ezip_done_flag = 1;
}
void example_ahb_it(void)
{
ZIP_DecodeConfigTypeDef config;
uint16_t width = 68;
uint16_t height = 37;
/* image size if 68*37, color format is ARGB565A, output entire image, output region is (0,0,)~(67,36) */
config.input = (uint8_t *)img;
config.output = malloc(width * height * 3);
memset(config.output, 0, width * height * 3);
config.start_x = 0;
config.start_y = 0;
config.width = 68;
config.height = 37;
config.work_mode = HAL_EZIP_MODE_EZIP;
config.output_mode = HAL_EZIP_OUTPUT_AHB;
ezip_done_flag = 0;
ezip->CpltCallback = ezip_done;
res = HAL_EZIP_Decode_IT(&ezip_handle, &config);
/* wait for interrupt, ezip_done_flag is changed to 1 in ezip_done */
while (0 == ezip_done_flag)
{
}
}
HAL_EZIP_Init
HAL_StatusTypeDef HAL_EZIP_Init(EZIP_HandleTypeDef *ezip)
EZIP Init.
HAL_EZIP_MODE_EZIP
@ HAL_EZIP_MODE_EZIP
Definition: bf0_hal_ezip.h:106
HAL_EZIP_OUTPUT_AHB
@ HAL_EZIP_OUTPUT_AHB
Definition: bf0_hal_ezip.h:122
EZIP_DecodeConfigTypeDef::start_x
uint16_t start_x
Definition: bf0_hal_ezip.h:159
EZIP_DecodeConfigTypeDef::start_y
uint16_t start_y
Definition: bf0_hal_ezip.h:164
__EZIP_HandleTypeDef
Definition: bf0_hal_ezip.h:197
EZIP_DecodeConfigTypeDef::input
uint8_t * input
Definition: bf0_hal_ezip.h:145
EZIP_DecodeConfigTypeDef
Definition: bf0_hal_ezip.h:143
HAL_EZIP_IRQHandler
HAL_StatusTypeDef HAL_EZIP_IRQHandler(EZIP_HandleTypeDef *ezip)
EZIP IRQ Handler.
EZIP_DecodeConfigTypeDef::output_mode
EZIP_OutputModeTypeDef output_mode
Definition: bf0_hal_ezip.h:154
HAL_EZIP_Decode
HAL_StatusTypeDef HAL_EZIP_Decode(EZIP_HandleTypeDef *ezip, EZIP_DecodeConfigTypeDef *config)
Start decoding in polling mode.
HAL_EZIP_Decode_IT
HAL_StatusTypeDef HAL_EZIP_Decode_IT(EZIP_HandleTypeDef *ezip, EZIP_DecodeConfigTypeDef *config)
Start decoding in interrupt mode.
HAL_NVIC_SetPriority
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
Set the priority of an interrupt.
HAL_StatusTypeDef
HAL_StatusTypeDef
HAL Status structures definition.
Definition: bf0_hal_def.h:74
HAL_NVIC_EnableIRQ
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
Enable a device specific interrupt in the NVIC interrupt controller.
EZIP_DecodeConfigTypeDef::width
int16_t width
Definition: bf0_hal_ezip.h:169
hwp_ezip
#define hwp_ezip
Definition: register.h:556
EZIP_DecodeConfigTypeDef::height
int16_t height
Definition: bf0_hal_ezip.h:174
EZIP_DecodeConfigTypeDef::work_mode
EZIP_WorkModeTypeDef work_mode
Definition: bf0_hal_ezip.h:152
EZIP_DecodeConfigTypeDef::output
uint8_t * output
Definition: bf0_hal_ezip.h:150