【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试

时间:2023-03-08 16:07:50

实验现象:

【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试

核心代码:

int main(void)
{ /* USER CODE BEGIN 1 */
int i,j;
int res;
float time[];
static int error_flag = ;
/* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */
SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART6_UART_Init();
MX_TIM3_Init(); /* USER CODE BEGIN 2 */
usart6.initialize();
usart6.printf("\x0c"); //ÇåÆÁ
usart6.printf("\033[1;32;40m"); //ÉèÖÃÖÕ¶Ë×ÖÌåΪÂÌÉ«
usart6.printf("Hello, I am iCore4!\r\n\r\n");
usart6.printf("DSP BasicMath TEST......\r\n");
/* USER CODE END 2 */ /* Infinite loop */
/* USER CODE BEGIN WHILE */
while ()
{
/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */
timeout = ;
__HAL_TIM_SET_COUNTER(&htim3,);
for(j = ;j < ;j++){
for(i = ;i < MAX_BLOCKSIZE;i ++){
res = SinCos_Test(testInput_f32[i],);
if(res != )error_flag ++;
}
}
time[] = __HAL_TIM_GET_COUNTER(&htim3)+ timeout*; timeout = ;
__HAL_TIM_SET_COUNTER(&htim3,);
for(j = ;j < ;j++){
for(i = ;i < MAX_BLOCKSIZE;i ++){
res = SinCos_Test(testInput_f32[i],);
if(res != )error_flag ++;
}
}
time[] = __HAL_TIM_GET_COUNTER(&htim3)+ timeout*; if(error_flag == ){
usart6.printf("*NO DSP MATHLIB runtime:%0.1fms *USE DSP MATHLIB runtime:%0.1fms\r",time[] / , time[] / );
LED_GREEN_ON;
LED_RED_OFF;
LED_BLUE_OFF;
}
else{
usart6.printf("Error\r");
LED_GREEN_OFF;
LED_RED_ON;
LED_BLUE_OFF;
}
}
/* USER CODE END 3 */ }

源代码下载链接:

链接:http://pan.baidu.com/s/1cq9WSI 密码:hyc2

iCore4链接:

【iCore4 双核心板_ARM】例程三十八:DSP MATH库测试