ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
37295
avitaliy66 (15.08.2005 10:56, просмотров: 1991)
Ответ: FreeRTOS задачи выполняютяс только с одинаковым приоритетом ? :-( Это исходник (кусок DEMO FreeRTOS, см. ниже), который работал прекрасно на LPC2138. Компилировался при помощи GNUARM. Но как только я изменяю приоритет(tskIDLE_PRIORITY+1) одной задачи xTaskCreate( vMessage_0, ( const signed portCHAR * const )"Message_0", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+1, NULL ), то похоже, что другая задача "Message_1" останавливается. В любом случае я только вижу "Message_0" сообщения. Что-то странное :-( Пожалуйста подскажите в чем может быть дело. Спасибо Виталий /*-----------------------------------------------------------*/ static void vMessage_0( void *pvParameters ); static void vMessage_1( void *pvParameters ); /*-----------------------------------------------------------*/ int main( void ) { /* Setup the hardware */ Initialize(); /* Start the Message tasks - which are defined in this file. */ xTaskCreate( vMessage_0, ( const signed portCHAR * const )"Message_0", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); xTaskCreate( vMessage_1, ( const signed portCHAR * const )"Message_1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); /* Now all the tasks have been started - start the scheduler. */ vTaskStartScheduler(); /* Should never reach here! */ return 0; } /*-----------------------------------------------------------*/ // static void vMessage_0( void *pvParameters ) { long temp; /* The parameters are not used in this function. */ ( void ) pvParameters; for (;;) { taskENTER_CRITICAL(); uart0Puts("\n\r Message_0"); taskEXIT_CRITICAL(); for(temp =0; temp < 2000000;temp++); } } // static void vMessage_1( void *pvParameters ) { long temp; /* The parameters are not used in this function. */ ( void ) pvParameters; for (;;) { taskENTER_CRITICAL(); uart0Puts("\n\r Message_1"); taskEXIT_CRITICAL(); for(temp =0; temp < 2000000;temp++); } }