我在rza2m_drp_simple_isp_sample1_freertos_gcc的基础上添加转换灰度图的功能,所以将ISP的功能转换成函数的形式。但是转换后,在显示屏上的图像很卡顿,就是显示屏上的图像比实际的动作慢一些。转换函数是参照手势识别的形式。有什么办法解决吗?
int32_t drp_isp(uint8_t * p_input_bufadr,uint8_t * p_output_bufadr){ int32_t ret_val; /******************************/ /* Load DRP Library */ /* +-----------------+ */ /* tile 0 |IspLibrary | */ /* | | */ /* tile 1 | | */ /* | | */ /* tile 2 | | */ /* | | */ /* tile 3 | | */ /* | | */ /* tile 4 | | */ /* | | */ /* tile 5 | | */ /* +-----------------+ */ /******************************/ ret_val = R_DK2_Load(&g_drp_simple_isp_colcal_3dnr_6[0], R_DK2_TILE_0, R_DK2_TILE_PATTERN_6, NULL, &cb_drp_finish, &drp_lib_id[0]); DRP_DRV_ASSERT(ret_val); /************************/ /* Activate DRP Library */ /************************/ ret_val = R_DK2_Activate(drp_lib_id[TILE_0], 0); DRP_DRV_ASSERT(ret_val);
/* convert to physical address */ R_MMU_VAtoPA((uint32_t)p_input_bufadr, &(param_isp.src)); /* Convert pointer to uint32_t */ R_MMU_VAtoPA((uint32_t)p_output_bufadr, &(param_isp.dst)); /* Convert pointer to uint32_t */
/* Initialize variables to be used in termination judgment of the DRP library */ drp_lib_status[TILE_0] = DRP_NOT_FINISH;
/*********************/ /* Start DRP Library */ /*********************/ ret_val = R_DK2_Start(drp_lib_id[TILE_0], (void *)¶m_isp, sizeof(r_drp_simple_isp_colcal_3dnr_t)); DRP_DRV_ASSERT(ret_val);
/***************************************/ /* Wait until DRP processing is finish */ /***************************************/ while (drp_lib_status[TILE_0] == DRP_NOT_FINISH) { ; } ret_val = R_DK2_Unload(drp_lib_id[TILE_0], &drp_lib_id[TILE_0]); DRP_DRV_ASSERT(ret_val); return ret_val;}