CUBE IDE与FREERTOS(CMSIS_V2)用于Nucleo STM32 F401 RE上 当我在-O 0优化中使用osDelayUntil时,在osDelayUntil执行之后,程序转到HardFault。 这个问题在其他级别的优化时不会出现。 ****** in main ****** const osThreadAttr_t defaultTask_attributes = { .name = "defaultTask", .priority = (osPriority_t) osPriorityNormal, .stack_size = 128 }; defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes); void StartDefaultTask(void *argument) { /* USER CODE BEGIN 5 */ uint32_t tick; tick = osKernelGetTickCount(); /* Infinite loop */ for(;;) { tick += 1000U; // delay 1000 ticks periodically osDelayUntil(tick); HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); } /* USER CODE END 5 */ }
|