您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xAreSemaphoreTasksStillRunning函数代码示例

51自学网 2021-06-03 10:13:48
  C++
这篇教程C++ xAreSemaphoreTasksStillRunning函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中xAreSemaphoreTasksStillRunning函数的典型用法代码示例。如果您正苦于以下问题:C++ xAreSemaphoreTasksStillRunning函数的具体用法?C++ xAreSemaphoreTasksStillRunning怎么用?C++ xAreSemaphoreTasksStillRunning使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了xAreSemaphoreTasksStillRunning函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){static long lChangedTimerPeriodAlready = pdFALSE;static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;/* Buffer into which the high frequency timer count is written as a string. */static char cStringBuffer[ mainMAX_STRING_LENGTH ];/* The count of the high frequency timer interrupts. */extern unsigned long ulHighFrequencyTimerInterrupts;static xLCDMessage xMessage = { ( 200 / portTICK_PERIOD_MS ), cStringBuffer };	/* Check that the register test 1 task is still running. */	if( ulLastRegTest1Value == ulRegTest1Cycles )	{		xMessage.pcMessage = "Error: Reg test2";	}	ulLastRegTest1Value = ulRegTest1Cycles;	/* Check that the register test 2 task is still running. */	if( ulLastRegTest2Value == ulRegTest2Cycles )	{		xMessage.pcMessage = "Error: Reg test3";	}	ulLastRegTest2Value = ulRegTest2Cycles;	/* Have any of the standard demo tasks detected an error in their	operation? */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		xMessage.pcMessage = "Error: Gen Q";	}	else if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		xMessage.pcMessage = "Error: Q Peek";	}	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		xMessage.pcMessage = "Error: Blck time";	}	else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		xMessage.pcMessage = "Error: Sem test";	}	else if( xAreIntQueueTasksStillRunning() != pdTRUE )	{		xMessage.pcMessage = "Error: Int queue";	}	#if !defined(__32MX795F512L__)		else if( xAreComTestTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "Error: COM test";		}	#endif	if( xMessage.pcMessage != cStringBuffer )	{		/* An error string has been logged.  If the timer period has not yet		been changed it should be changed now.  Increasing the frequency of the		LED gives visual feedback of the error status (although it is written		to the LCD too!). */		if( lChangedTimerPeriodAlready == pdFALSE )		{			lChangedTimerPeriodAlready = pdTRUE;			/* This call to xTimerChangePeriod() uses a zero block time.			Functions called from inside of a timer callback function must			*never* attempt	to block as to do so could impact other software			timers. */			xTimerChangePeriod( xTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );		}	}	else	{		/* Write the ulHighFrequencyTimerInterrupts value to the string		buffer.  It will only be displayed if no errors have been detected. */		sprintf( cStringBuffer, "Pass %u", ( unsigned int ) ulHighFrequencyTimerInterrupts );	}	/* Send the status message to the LCD task for display on the LCD.  This is	a timer callback function, so the queue send function *must not* block. */	xQueueSend( xLCDQueue, &xMessage, mainDONT_BLOCK );	vParTestToggleLED( mainCHECK_LED );}
开发者ID:granthuu,项目名称:fsm_software,代码行数:86,


示例2: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){static long lChangedTimerPeriodAlready = pdFALSE;	/* Check the standard demo tasks are running without error.   Latch the	latest reported error in the pcStatusMessage character pointer.  The latched	string can be viewed using the embedded web server - it is displayed at	the bottom of the served "task stats" page. */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: GenQueue";	}	if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: QueuePeek/n";	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockQueue/n";	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockTime/n";	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: SemTest/n";	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: Death/n";	}	if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: RecMutex/n";	}	if( xAreTimerDemoTasksStillRunning( ( mainCHECK_TIMER_PERIOD_MS ) ) != pdTRUE )	{		pcStatusMessage = "Error: TimerDemo/n";	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: PollQueue/n";	}	if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: CountSem/n";	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: DynamicPriority/n";	}	/* Toggle the check LED to give an indication of the system status.  If	the LED toggles every mainCHECK_TIMER_PERIOD_MS milliseconds then	everything is ok.  A faster toggle indicates an error. */	vParTestToggleLED( mainCHECK_LED );	/* Have any errors been latch in pcStatusMessage?  If so, shorten the	period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds.	This will result in an increase in the rate at which mainCHECK_LED	toggles. */	if( pcStatusMessage != NULL )	{		if( lChangedTimerPeriodAlready == pdFALSE )		{			lChangedTimerPeriodAlready = pdTRUE;			/* This call to xTimerChangePeriod() uses a zero block time.			Functions called from inside of a timer callback function must			*never* attempt	to block. */			xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );		}	}}
开发者ID:Eclo,项目名称:FreeRTOS,代码行数:85,


示例3: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){static long lChangedTimerPeriodAlready = pdFALSE;static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;unsigned long ulErrorOccurred = pdFALSE;	/* Avoid compiler warnings. */	( void ) xTimer;	/* Have any of the standard demo tasks detected an error in their	operation? */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 3UL );	}	else if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 4UL );	}	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 5UL );	}	else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 6UL );	}	else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 8UL );	}	else if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 9UL );	}	else if( xIsQueueOverwriteTaskStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 10UL );	}	else if( xAreQueueSetTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 11UL );	}	else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 12UL );	}	else if( xAreEventGroupTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 13UL );	}	else if( xAreTaskNotificationTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 14UL );	}	else if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 15UL );	}	else if( xAreTimerDemoTasksStillRunning( mainCHECK_TIMER_PERIOD_MS ) != pdTRUE )	{		ulErrorOccurred |= 1UL << 16UL;	}		else if( xAreIntQueueTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= 1UL << 17UL;	}		/* Check that the register test 1 task is still running. */	if( ulLastRegTest1Value == ulRegTest1LoopCounter )	{		ulErrorOccurred |= 1UL << 18UL;	}	ulLastRegTest1Value = ulRegTest1LoopCounter;	/* Check that the register test 2 task is still running. */	if( ulLastRegTest2Value == ulRegTest2LoopCounter )	{		ulErrorOccurred |= 1UL << 19UL;	}	ulLastRegTest2Value = ulRegTest2LoopCounter;	if( ulErrorOccurred != pdFALSE )	{		/* An error occurred.  Increase the frequency at which the check timer		toggles its LED to give visual feedback of the potential error		condition. */		if( lChangedTimerPeriodAlready == pdFALSE )		{			lChangedTimerPeriodAlready = pdTRUE;			/* This call to xTimerChangePeriod() uses a zero block time.			Functions called from inside of a timer callback function must			*never* attempt	to block as to do so could impact other software			timers. */			xTimerChangePeriod( xTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );		}	}//.........这里部分代码省略.........
开发者ID:granthuu,项目名称:fsm_software,代码行数:101,


示例4: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){	/* Check the standard demo tasks are running without error.   Latch the	latest reported error in the pcStatusMessage character pointer. */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: GenQueue";	}	if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: QueuePeek/r/n";	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockQueue/r/n";	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockTime/r/n";	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: SemTest/r/n";	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: Death/r/n";	}	if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: RecMutex/r/n";	}	if( xAreTimerDemoTasksStillRunning( ( mainCHECK_TIMER_PERIOD_MS ) ) != pdTRUE )	{		pcStatusMessage = "Error: TimerDemo";	}	/* Toggle the check LED to give an indication of the system status.  If	the LED toggles every mainCHECK_TIMER_PERIOD_MS milliseconds then	everything is ok.  A faster toggle indicates an error. */	vParTestToggleLED( mainCHECK_LED );	/* Have any errors been latch in pcStatusMessage?  If so, shorten the	period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds.	This will result in an increase in the rate at which mainCHECK_LED	toggles. */	if( pcStatusMessage != NULL )	{		/* This call to xTimerChangePeriod() uses a zero block time.  Functions		called from inside of a timer callback function must *never* attempt		to block. */		xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );	}}
开发者ID:wugsh,项目名称:wgs,代码行数:61,


示例5: prvCheckTask

static void prvCheckTask( void *pvParameters ){static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;extern void vSetupHighFrequencyTimer( void );	/* If this is being executed then the kernel has been started.  Start the high	frequency timer test as described at the top of this file.  This is only	included in the optimised build configuration - otherwise it takes up too much	CPU time. */	#ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST		vSetupHighFrequencyTimer();	#endif	/* Initialise xNextWakeTime - this only needs to be done once. */	xNextWakeTime = xTaskGetTickCount();	for( ;; )	{		/* Place this task in the blocked state until it is time to run again. */		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );		/* Check the standard demo tasks are running without error. */		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{						pcStatusMessage = "Error: GenQueue";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: QueuePeek/r/n";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: BlockQueue/r/n";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: BlockTime/r/n";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: SemTest/r/n";	    }	    else if( xArePollingQueuesStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: PollQueue/r/n";	    }	    else if( xIsCreateTaskStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: Death/r/n";	    }	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: IntMath/r/n";	    }	    else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: RecMutex/r/n";	    }		else if( xAreIntQueueTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: IntQueue/r/n";		}		else if( xAreMathsTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Flop/r/n";		}		/* Check the reg test tasks are still cycling.  They will stop incrementing		their loop counters if they encounter an error. */		if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )		{			pcStatusMessage = "Error: RegTest1/r/n";		}		if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )		{			pcStatusMessage = "Error: RegTest2/r/n";		}		ulLastRegTest1CycleCount = ulRegTest1CycleCount;		ulLastRegTest2CycleCount = ulRegTest2CycleCount;		/* Toggle the check LED to give an indication of the system status.  If		the LED toggles every 5 seconds then everything is ok.  A faster toggle		indicates an error. */		vParTestToggleLED( mainCHECK_LED );		/* Ensure the LED toggles at a faster rate if an error has occurred. */		if( pcStatusMessage != NULL )		{			/* Increase the rate at which this task cycles, which will increase the			rate at which mainCHECK_LED flashes to give visual feedback that an error			has occurred. */			xCycleFrequency = mainERROR_CYCLE_TIME;		}	}}
开发者ID:InSoonPark,项目名称:FreeRTOS,代码行数:98,


示例6: vErrorChecks

/* * See the documentation at the top of this file.  */static void vErrorChecks( void *pvParameters ){portBASE_TYPE xErrorHasOccurred = pdFALSE;		/* Just to prevent compiler warnings. */	( void ) pvParameters;		/* Cycle for ever, delaying then checking all the other tasks are still	operating without error.   The delay period depends on whether an error	has ever been detected. */	for( ;; )	{		if( xLatchedError == pdFALSE )		{					/* No errors have been detected so delay for a longer period.  The			on board LED will get toggled every mainNO_ERROR_FLASH_PERIOD ms. */			vTaskDelay( mainNO_ERROR_FLASH_PERIOD );		}		else		{			/* We have at some time recognised an error in one of the demo			application tasks, delay for a shorter period.  The on board LED			will get toggled every mainERROR_FLASH_PERIOD ms. */			vTaskDelay( mainERROR_FLASH_PERIOD );		}						/* Check the demo application tasks for errors. */		if( xAreIntegerMathsTaskStillRunning() != pdTRUE )		{			xErrorHasOccurred = pdTRUE;		}		if( xArePollingQueuesStillRunning() != pdTRUE )		{			xErrorHasOccurred = pdTRUE;		}		if( xAreComTestTasksStillRunning() != pdTRUE )		{			xErrorHasOccurred = pdTRUE;		}		if( xAreSemaphoreTasksStillRunning() != pdTRUE )		{			xErrorHasOccurred = pdTRUE;		}		/* If an error has occurred, latch it to cause the LED flash rate to 		increase. */		if( xErrorHasOccurred == pdTRUE )		{			xLatchedError = pdTRUE;		}		/* Toggle the LED to indicate the completion of a check cycle.  The		frequency of check cycles is dependent on whether or not we have 		latched an error. */		prvToggleOnBoardLED();	}}
开发者ID:ammarkham,项目名称:freertos-moo,代码行数:66,


示例7: vApplicationTickHook

void vApplicationTickHook( void ){static xOLEDMessage xMessage = { "PASS" };static unsigned long ulTicksSinceLastDisplay = 0;portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;	/* Called from every tick interrupt.  Have enough ticks passed to make it	time to perform our health status check again? */	ulTicksSinceLastDisplay++;	if( ulTicksSinceLastDisplay >= mainCHECK_DELAY )	{		ulTicksSinceLastDisplay = 0;		/* Has an error been found in any task? */		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN GEN Q";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN PEEK Q";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN BLOCK Q";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN BLOCK TIME";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN SEMAPHORE";	    }	    else if( xArePollingQueuesStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN POLL Q";	    }	    else if( xIsCreateTaskStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN CREATE";	    }	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN MATH";	    }	    else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	    {	    	xMessage.pcMessage = "ERROR IN REC MUTEX";	    }		else if( ulIdleError != pdFALSE )		{			xMessage.pcMessage = "ERROR IN HOOK";		}		else if( xAreIntQueueTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN INT QUEUE";		}		/* Send the message to the OLED gatekeeper for display. */		xHigherPriorityTaskWoken = pdFALSE;		xQueueSendFromISR( xOLEDQueue, &xMessage, &xHigherPriorityTaskWoken );	}}
开发者ID:EnglishArcher,项目名称:Code,代码行数:65,


示例8: vCheckTask

void vCheckTask( void *pvParameters ){unsigned long ulRow = 0;portTickType xDelay = 0;unsigned short usErrorCode = 0;unsigned long ulIteration = 0;extern unsigned portSHORT usMaxJitter;	/* Intialise the sleeper. */	xDelay = xTaskGetTickCount();		for( ;; )	{		/* Perform this check every mainCHECK_DELAY milliseconds. */		vTaskDelayUntil( &xDelay, mainCHECK_DELAY );				/* Check that all of the Demo tasks are still running. */		if( pdTRUE != xAreBlockingQueuesStillRunning() )		{			usErrorCode |= 0x1;		}				if( pdTRUE != xAreBlockTimeTestTasksStillRunning() )		{			usErrorCode |= 0x2;		}				if( pdTRUE != xAreCountingSemaphoreTasksStillRunning() )		{			usErrorCode |= 0x4;		}				if( pdTRUE != xIsCreateTaskStillRunning() )		{			usErrorCode |= 0x8;		}				if( pdTRUE != xAreDynamicPriorityTasksStillRunning() )		{			usErrorCode |= 0x10;		}				if( pdTRUE != xAreMathsTaskStillRunning() )		{			usErrorCode |= 0x20;		}				if( pdTRUE != xAreGenericQueueTasksStillRunning() )		{			usErrorCode |= 0x40;		}				if( pdTRUE != xAreIntegerMathsTaskStillRunning() )		{			usErrorCode |= 0x80;		}				if( pdTRUE != xArePollingQueuesStillRunning() )		{			usErrorCode |= 0x100;		}				if( pdTRUE != xAreQueuePeekTasksStillRunning() )		{			usErrorCode |= 0x200;		}						if( pdTRUE != xAreSemaphoreTasksStillRunning() )		{			usErrorCode |= 0x400;		}				if( pdTRUE != xAreComTestTasksStillRunning() )		{			usErrorCode |= 0x800;		}				if( pdTRUE != xAreIntQueueTasksStillRunning() )		{			usErrorCode |= 0x1000;		}		/* Clear the display. */		LCD_Character_Display_ClearDisplay();		if( 0 == usErrorCode )		{			LCD_Character_Display_Position( ( ulRow ) & 0x1, 0);			LCD_Character_Display_PrintString( "Pass: " );			LCD_Character_Display_PrintNumber( ulIteration++ );			LCD_Character_Display_Position( ( ++ulRow ) & 0x1, 0 );			LCD_Character_Display_PrintString( "Jitter(ns):" );			LCD_Character_Display_PrintNumber( ( usMaxJitter * mainNS_PER_CLOCK ) );		}		else		{			/* Do something to indicate the failure. */			LCD_Character_Display_Position( ( ulRow ) & 0x1, 0 );			LCD_Character_Display_PrintString( "Fail at: " );			LCD_Character_Display_PrintNumber( ulIteration );			LCD_Character_Display_Position( ( ++ulRow ) & 0x1, 0 );//.........这里部分代码省略.........
开发者ID:denal05,项目名称:STM32L152-EVAL,代码行数:101,


示例9: prvCheckTask

static void prvCheckTask( void *pvParameters ){unsigned portLONG ulLastRegTest1Value = 0, ulLastRegTest2Value = 0, ulTicksToWait = mainNO_ERROR_PERIOD;portTickType xLastExecutionTime;/* Buffer into which the high frequency timer count is written as a string. */static portCHAR cStringBuffer[ mainMAX_STRING_LENGTH ];/* The count of the high frequency timer interrupts. */extern unsigned portLONG ulHighFrequencyTimerInterrupts;xLCDMessage xMessage = { ( 200 / portTICK_RATE_MS ), cStringBuffer };	/* Setup the high frequency, high priority, timer test.  It is setup here	to ensure it does not fire before the scheduler is started. */	vSetupTimerTest( mainTEST_INTERRUPT_FREQUENCY );	/* Initialise the variable used to control our iteration rate prior to	its first use. */	xLastExecutionTime = xTaskGetTickCount();	for( ;; )	{		/* Wait until it is time to run the tests again. */		vTaskDelayUntil( &xLastExecutionTime, ulTicksToWait );		/* Has either register check 1 or 2 task discovered an error? */		if( ulStatus1 != pdPASS )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Reg test1";		}		/* Check that the register test 1 task is still running. */		if( ulLastRegTest1Value == ulRegTest1Cycles )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Reg test2";		}		ulLastRegTest1Value = ulRegTest1Cycles;				/* Check that the register test 2 task is still running. */		if( ulLastRegTest2Value == ulRegTest2Cycles )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Reg test3";		}		ulLastRegTest2Value = ulRegTest2Cycles;				/* Have any of the standard demo tasks detected an error in their 		operation? */		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Gen Q";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Q Peek";		}		else if( xAreComTestTasksStillRunning() != pdTRUE )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: COM test";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Blck time";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {	        ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Sem test";	    }		else if( xAreIntQueueTasksStillRunning() != pdTRUE )		{			ulTicksToWait = mainERROR_PERIOD;			xMessage.pcMessage = "Error: Int queue";		}		/* Write the ulHighFrequencyTimerInterrupts value to the string 		buffer.  It will only be displayed if no errors have been detected. */		sprintf( cStringBuffer, "Pass %u", ( unsigned int ) ulHighFrequencyTimerInterrupts );		xQueueSend( xLCDQueue, &xMessage, mainDONT_WAIT );		vParTestToggleLED( mainCHECK_LED );	}}
开发者ID:Hermis,项目名称:FreeRTOS_OR1200,代码行数:91,


示例10: prvCheckOtherTasksAreStillRunning

/*-----------------------------------------------------------*/static portSHORT prvCheckOtherTasksAreStillRunning( void ){	static portSHORT	sNoErrorFound = pdTRUE;	/* The demo tasks maintain a count that increments every cycle of the task	provided that the task has never encountered an error.  This function 	checks the counts maintained by the tasks to ensure they are still being	incremented.  A count remaining at the same value between calls therefore	indicates that an error has been detected.  Only tasks that do not flash	an LED are checked. */	#if ( INCLUDE_StartIntegerMathTasks == 1 )	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_AltStartComTestTasks == 1 )	if( xAreComTestTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartPolledQueueTasks == 1 )	if( xArePollingQueuesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartSemaphoreTasks == 1 )	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartBlockingQueueTasks == 1 )	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartDynamicPriorityTasks == 1 )	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartMathTasks == 1 )	if( xAreMathsTaskStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartFlashCoRoutines == 1 )	if( xAreFlashCoRoutinesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartHookCoRoutines == 1 )	if( xAreHookCoRoutinesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartGenericQueueTasks == 1 )	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_StartQueuePeekTasks == 1 )	if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_CreateBlockTimeTasks == 1 )	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#endif	#if ( INCLUDE_CreateSuicidalTasks == 1 )	if( xIsCreateTaskStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}//.........这里部分代码省略.........
开发者ID:svn2github,项目名称:freertos,代码行数:101,


示例11: prvCheckOtherTasksAreStillRunning

static short prvCheckOtherTasksAreStillRunning( void ){	static short	sNoErrorFound = pdTRUE;	/* The demo tasks maintain a count that increments every cycle of the task	provided that the task has never encountered an error.  This function	checks the counts maintained by the tasks to ensure they are still being	incremented.  A count remaining at the same value between calls therefore	indicates that an error has been detected.  Only tasks that do not flash	an LED are checked. */	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreFlashCoRoutinesStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		sNoErrorFound = pdFALSE;	}	#if INCLUDE_TraceListTasks == 0	{		if( xAreComTestTasksStillRunning() != pdTRUE )		{			sNoErrorFound = pdFALSE;		}	}	#endif	return sNoErrorFound;}
开发者ID:DanielKristofKiss,项目名称:FreeRTOS,代码行数:66,


示例12: vCheckTask

static void vCheckTask( void *pvParameters ){portBASE_TYPE xErrorOccurred = pdFALSE;portTickType xLastExecutionTime;const char * const pcPassMessage = "PASS/n";const char * const pcFailMessage = "FAIL/n";	/* Just to remove compiler warnings. */	( void ) pvParameters;	/* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()	works correctly. */	xLastExecutionTime = xTaskGetTickCount();	for( ;; )	{		/* Perform this check every mainCHECK_DELAY milliseconds. */		vTaskDelayUntil( &xLastExecutionTime, mainCHECK_DELAY );		/* Has an error been found in any task? */		if( xAreIntegerMathsTaskStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		if( xArePollingQueuesStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		if( xAreSemaphoreTasksStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		#if configUSE_PREEMPTION == 1		{			/* The timing of console output when not using the preemptive			scheduler causes the block time tests to detect a timing problem. */			if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )			{				xErrorOccurred = pdTRUE;			}		}		#endif		if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		/* Send either a pass or fail message.  If an error is found it is		never cleared again. */		if( xErrorOccurred == pdTRUE )		{			xLED_Delay = mainERROR_LED_DELAY;			xQueueSend( xPrintQueue, &pcFailMessage, portMAX_DELAY );		}		else		{			xQueueSend( xPrintQueue, &pcPassMessage, portMAX_DELAY );		}	}}
开发者ID:DonjetaE,项目名称:FreeRTOS,代码行数:75,


示例13: prvCheckTask

static void prvCheckTask( void * pvParameters ){portTickType xNextWakeTime, xPeriod = mainNO_ERROR_PERIOD;static volatile unsigned long ulErrorCode = 0UL;	/* Just to remove the compiler warning. */	( void ) pvParameters;	/* Initialise xNextWakeTime prior to its first use.  From this point on	the value of the variable is handled automatically by the kernel. */	xNextWakeTime = xTaskGetTickCount();		for( ;; )	{		/* Delay until it is time for this task to execute again. */		vTaskDelayUntil( &xNextWakeTime, xPeriod );				/* Check all the other tasks in the system - latch any reported errors		into the ulErrorCode variable. */		if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			ulErrorCode |= 0x01UL;		}		if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x02UL;		}		if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x04UL;		}		if( xIsCreateTaskStillRunning() != pdTRUE )		{			ulErrorCode |= 0x08UL;		}		if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x10UL;		}		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x20UL;		}		if( xAreIntegerMathsTaskStillRunning() != pdTRUE )		{			ulErrorCode |= 0x40UL;		}		if( xArePollingQueuesStillRunning() != pdTRUE )		{			ulErrorCode |= 0x80UL;		}		if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x100UL;		}		if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x200UL;		}		if( xAreSemaphoreTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x400UL;		}				if( xAreComTestTasksStillRunning() != pdTRUE )		{			ulErrorCode |= 0x800UL;		}				/* Reduce the block period and in so doing increase the frequency at		which this task executes if any errors have been latched.  The increased		frequency causes the LED toggle rate to increase and so gives some		visual feedback that an error has occurred. */		if( ulErrorCode != 0x00 )		{			xPeriod = mainERROR_PERIOD;		}				/* Finally toggle the LED. */		vParTestToggleLED( LED_POWER );	}}
开发者ID:ammarkham,项目名称:freertos-moo,代码行数:92,


示例14: prvCheckTimerCallback

static void prvCheckTimerCallback( xTimerHandle xTimer ){static long lChangedTimerPeriodAlready = pdFALSE;static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;unsigned long ulErrorFound = pdFALSE;	/* Check all the demo tasks (other than the flash tasks) to ensure	that they are all still running, and that none have detected an error. */	if( xAreMathsTaskStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 0UL;	}	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 1UL;	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 2UL;	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 3UL;	}	if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 4UL;	}	if ( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 5UL;	}	if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 6UL;	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 7UL;	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 8UL;	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorFound |= 0x01UL << 9UL;	}		/* Check that the register test 1 task is still running. */	if( ulLastRegTest1Value == ulRegTest1LoopCounter )	{		ulErrorFound |= 0x01UL << 10UL;	}	ulLastRegTest1Value = ulRegTest1LoopCounter;	/* Check that the register test 2 task is still running. */	if( ulLastRegTest2Value == ulRegTest2LoopCounter )	{		ulErrorFound |= 0x01UL << 11UL;	}	ulLastRegTest2Value = ulRegTest2LoopCounter;	/* Toggle the check LED to give an indication of the system status.  If	the LED toggles every mainCHECK_TIMER_PERIOD_MS milliseconds then	everything is ok.  A faster toggle indicates an error. */	vParTestToggleLED( mainCHECK_LED );			/* Have any errors been latch in ulErrorFound?  If so, shorten the	period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds.	This will result in an increase in the rate at which mainCHECK_LED	toggles. */	if( ulErrorFound != pdFALSE )	{		if( lChangedTimerPeriodAlready == pdFALSE )		{			lChangedTimerPeriodAlready = pdTRUE;						/* This call to xTimerChangePeriod() uses a zero block time.			Functions called from inside of a timer callback function must			*never* attempt	to block. */			xTimerChangePeriod( xTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );		}	}}
开发者ID:anoopcdac,项目名称:freertos-moo,代码行数:95,


示例15: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){	/* Check the standard demo tasks are running without error.   Latch the	latest reported error in the pcStatusMessage character pointer. */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: GenQueue";	}	if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: QueuePeek/r/n";	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockQueue/r/n";	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: BlockTime/r/n";	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: SemTest/r/n";	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: Death/r/n";	}	if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: RecMutex/r/n";	}	if( xAreComTestTasksStillRunning() != pdPASS )	{		pcStatusMessage = "Error: ComTest/r/n";	}	if( xAreTimerDemoTasksStillRunning( ( mainCHECK_TIMER_PERIOD_MS ) ) != pdTRUE )	{		pcStatusMessage = "Error: TimerDemo";	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: PollQueue";	}	if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: CountSem";	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		pcStatusMessage = "Error: DynamicPriority";	}	/* Toggle the check LED to give an indication of the system status.  If	the LED toggles every mainCHECK_TIMER_PERIOD_MS milliseconds then	everything is ok.  A faster toggle indicates an error.  vParTestToggleLED()	is not used to toggle this particular LED as it is on a different IP port	to to the LEDs controlled by ParTest.c.  A critical section is not required	as the only other place this port is accessed is from another timer - and	only one timer can be running at any one time. */	if( ( FM3_GPIO->PDOR3 & mainCHECK_LED ) != 0 )	{		FM3_GPIO->PDOR3 &= ~mainCHECK_LED;	}	else	{		FM3_GPIO->PDOR3 |= mainCHECK_LED;	}	/* Have any errors been latch in pcStatusMessage?  If so, shorten the	period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds.	This will result in an increase in the rate at which mainCHECK_LED	toggles. */	if( pcStatusMessage != NULL )	{		/* This call to xTimerChangePeriod() uses a zero block time.  Functions		called from inside of a timer callback function must *never* attempt		to block. */		xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );	}}
开发者ID:vmandrews,项目名称:CSDC-OBC-Software,代码行数:92,


示例16: prvCheckTask

static void prvCheckTask( void *pvParameters ){TickType_t xNextWakeTime;const TickType_t xCycleFrequency = 2500 / portTICK_PERIOD_MS;	/* Just to remove compiler warning. */	( void ) pvParameters;	/* Initialise xNextWakeTime - this only needs to be done once. */	xNextWakeTime = xTaskGetTickCount();	for( ;; )	{		/* Place this task in the blocked state until it is time to run again. */		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );		/* Check the standard demo tasks are running without error. */		#if( configUSE_PREEMPTION != 0 )		{			/* These tasks are only created when preemption is used. */			if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )			{				pcStatusMessage = "Error: TimerDemo";			}		}		#endif		if( xAreTaskNotificationTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error:  Notification";		}		if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: IntSem";		}		else if( xAreEventGroupTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: EventGroup";		}	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: IntMath";	    }		else if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: GenQueue";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: QueuePeek";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: BlockQueue";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: SemTest";	    }	    else if( xArePollingQueuesStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: PollQueue";	    }		else if( xAreMathsTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Flop";		}	    else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: RecMutex";		}		else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: CountSem";		}		else if( xIsCreateTaskStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: Death";		}		else if( xAreDynamicPriorityTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Dynamic";		}		else if( xAreQueueSetTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Queue set";		}		else if( xIsQueueOverwriteTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Queue overwrite";		}		/* This is the only task that uses stdout so its ok to call printf()		directly. */		printf( ( char * ) "%s - %u/r/n", pcStatusMessage, ( unsigned int ) xTaskGetTickCount() );		fflush( stdout );	}}
开发者ID:bleuelotus,项目名称:SweepRobot_Testing_Host,代码行数:99,


示例17: prvCheckTimerCallback

static void prvCheckTimerCallback( TimerHandle_t xTimer ){static long lChangedTimerPeriodAlready = pdFALSE;static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0, ulLastHighFrequencyTimerInterrupts = 0;static const unsigned long ulExpectedHighFrequencyInterrupts = ( ( mainTEST_INTERRUPT_FREQUENCY / 1000UL ) * mainCHECK_TIMER_PERIOD_MS ) - 10; /* 10 allows for a margin of error. */unsigned long ulErrorOccurred = pdFALSE;/* The count of the high frequency timer interrupts. */extern unsigned long ulHighFrequencyTimerInterrupts;	/* Avoid compiler warnings. */	( void ) xTimer;	/* Check that the register test 1 task is still running. */	if( ulLastRegTest1Value == ulRegTest1Cycles )	{		ulErrorOccurred |= ( 0x01UL << 1UL );	}	ulLastRegTest1Value = ulRegTest1Cycles;	/* Check that the register test 2 task is still running. */	if( ulLastRegTest2Value == ulRegTest2Cycles )	{		ulErrorOccurred |= ( 0x01UL << 2UL );	}	ulLastRegTest2Value = ulRegTest2Cycles;	/* Have any of the standard demo tasks detected an error in their	operation? */	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 3UL );	}	else if( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 4UL );	}	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 5UL );	}	else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 6UL );	}	else if( xAreIntQueueTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 7UL );	}	else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 8UL );	}	else if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 9UL );	}	else if( xIsQueueOverwriteTaskStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 10UL );	}	else if( xAreQueueSetTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 11UL );	}	else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 12UL );	}	else if( xAreEventGroupTasksStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 13UL );	}	else if( xAreMathsTaskStillRunning() != pdTRUE )	{		ulErrorOccurred |= ( 0x01UL << 15UL );	}	/* Ensure the expected number of high frequency interrupts have occurred. */	if( ulLastHighFrequencyTimerInterrupts != 0 )	{		if( ( ulHighFrequencyTimerInterrupts - ulLastHighFrequencyTimerInterrupts ) < ulExpectedHighFrequencyInterrupts )		{			ulErrorOccurred |= ( 0x01UL << 14UL );		}	}	ulLastHighFrequencyTimerInterrupts = ulHighFrequencyTimerInterrupts;	if( ulErrorOccurred != pdFALSE )	{		/* An error occurred.  Increase the frequency at which the check timer		toggles its LED to give visual feedback of the potential error		condition. */		if( lChangedTimerPeriodAlready == pdFALSE )		{			lChangedTimerPeriodAlready = pdTRUE;			/* This call to xTimerChangePeriod() uses a zero block time.			Functions called from inside of a timer callback function must//.........这里部分代码省略.........
开发者ID:AlexShiLucky,项目名称:freertos,代码行数:101,


示例18: prvCheckTask

static void prvCheckTask( void *pvParameters ){    TickType_t xDelayPeriod = mainNO_ERROR_CHECK_TASK_PERIOD;    TickType_t xLastExecutionTime;    static unsigned long ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;    unsigned long ulErrorFound = pdFALSE;    /* Just to stop compiler warnings. */    ( void ) pvParameters;    /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()    works correctly. */    xLastExecutionTime = xTaskGetTickCount();    /* Cycle for ever, delaying then checking all the other tasks are still    operating without error.  The onboard LED is toggled on each iteration.    If an error is detected then the delay period is decreased from    mainNO_ERROR_CHECK_TASK_PERIOD to mainERROR_CHECK_TASK_PERIOD.  This has the    effect of increasing the rate at which the onboard LED toggles, and in so    doing gives visual feedback of the system status. */    for( ;; ) {        /* Delay until it is time to execute again. */        vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );        /* Check all the demo tasks (other than the flash tasks) to ensure        that they are all still running, and that none have detected an error. */        if( xAreIntQueueTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 0UL;        }        if( xAreMathsTaskStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 1UL;        }        if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 2UL;        }        if( xAreBlockingQueuesStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 3UL;        }        if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 4UL;        }        if ( xAreGenericQueueTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 5UL;        }        if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 6UL;        }        if( xIsCreateTaskStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 7UL;        }        if( xAreSemaphoreTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 8UL;        }        if( xAreTimerDemoTasksStillRunning( ( TickType_t ) xDelayPeriod ) != pdPASS ) {            ulErrorFound = 1UL << 9UL;        }        if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE ) {            ulErrorFound = 1UL << 10UL;        }        if( xIsQueueOverwriteTaskStillRunning() != pdPASS ) {            ulErrorFound = 1UL << 11UL;        }        if( xAreEventGroupTasksStillRunning() != pdPASS ) {            ulErrorFound = 1UL << 12UL;        }        if( xAreInterruptSemaphoreTasksStillRunning() != pdPASS ) {            ulErrorFound = 1UL << 13UL;        }        if( xAreTaskNotificationTasksStillRunning() != pdPASS ) {            ulErrorFound = 1UL << 14UL;        }        /* Check that the register test 1 task is still running. */        if( ulLastRegTest1Value == ulRegTest1LoopCounter ) {            ulErrorFound = 1UL << 15UL;        }        ulLastRegTest1Value = ulRegTest1LoopCounter;        /* Check that the register test 2 task is still running. */        if( ulLastRegTest2Value == ulRegTest2LoopCounter ) {            ulErrorFound = 1UL << 16UL;        }        ulLastRegTest2Value = ulRegTest2LoopCounter;        /* Toggle the check LED to give an indication of the system status.  If        the LED toggles every mainNO_ERROR_CHECK_TASK_PERIOD milliseconds then//.........这里部分代码省略.........
开发者ID:peterliu2,项目名称:FreeRTOS,代码行数:101,


示例19: prvCheckTask

static void prvCheckTask( void *pvParameters ){portTickType xNextWakeTime;const portTickType xCycleFrequency = 1000 / portTICK_RATE_MS;char *pcStatusMessage = "OK";	/* Just to remove compiler warning. */	( void ) pvParameters;	/* Initialise xNextWakeTime - this only needs to be done once. */	xNextWakeTime = xTaskGetTickCount();	for( ;; )	{		/* Place this task in the blocked state until it is time to run again. */		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );		/* Check the standard demo tasks are running without error. */		if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )		{			pcStatusMessage = "Error: TimerDemo";		}	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: IntMath";	    }			else if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{						pcStatusMessage = "Error: GenQueue";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: QueuePeek";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: BlockQueue";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: SemTest";	    }	    else if( xArePollingQueuesStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: PollQueue";	    }		else if( xAreMathsTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Flop";		}	    else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	    {			pcStatusMessage = "Error: RecMutex";		}		else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: CountSem";		}		/* This is the only task that uses stdout so its ok to call printf() 		directly. */		printf( "%s - %d/r/n", pcStatusMessage, xTaskGetTickCount() );	}}
开发者ID:ECEEmbedded,项目名称:ARMCodeRichardMS3,代码行数:64,


示例20: prvCheckTask

static void prvCheckTask( void *pvParameters ){TickType_t xDelayPeriod = mainNO_ERROR_DELAY, xLastWakeTime;unsigned portBASE_TYPE uxLEDToUse = 0;	/* Ensure parameter is passed in correctly. */	if( pvParameters != mainCHECK_PARAMETER )	{		xDelayPeriod = mainERROR_DELAY;	}		/* Initialise xLastWakeTime before it is used.  After this point it is not	written to directly. */	xLastWakeTime = xTaskGetTickCount();		/* Cycle for ever, delaying then checking all the other tasks are still	operating without error. */	for( ;; )	{		/* Wait until it is time to check all the other tasks again. */		vTaskDelayUntil( &xLastWakeTime, xDelayPeriod );				if( lRegTestStatus != pdPASS )		{			xDelayPeriod = mainERROR_DELAY;		}				if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			xDelayPeriod = mainERROR_DELAY;		}		if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			xDelayPeriod = mainERROR_DELAY;		}		if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {	    	xDelayPeriod = mainERROR_DELAY;	    }		if( xIsCreateTaskStillRunning() != pdTRUE )	    {	    	xDelayPeriod = mainERROR_DELAY;	    }		/* The Fx3 runs more tasks, so more checks are performed. */				#ifdef __IAR_V850ES_Fx3__		{			if( xAreComTestTasksStillRunning() != pdTRUE )			{				xDelayPeriod = mainERROR_DELAY;			}						if( xArePollingQueuesStillRunning() != pdTRUE )			{				xDelayPeriod = mainERROR_DELAY;			}			if( xAreBlockingQueuesStillRunning() != pdTRUE )			{				xDelayPeriod = mainERROR_DELAY;			}						if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )			{				xDelayPeriod = mainERROR_DELAY;			}								/* The application board has more LEDs and uses the flash tasks			so the check task instead uses LED3 as LED3 is still spare. */			uxLEDToUse = 3;		}		#endif		/* Toggle the LED.  The toggle rate will depend on whether or not an		error has been found in any tasks. */		vParTestToggleLED( uxLEDToUse );	}}
开发者ID:jbalcerz,项目名称:Stm32Discovery_FreeRTOS,代码行数:81,


示例21: vApplicationTickHook

void vApplicationTickHook( void ){static xOLEDMessage xMessage = { "PASS" };static unsigned portLONG ulTicksSinceLastDisplay = 0;portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;	/* Called from every tick interrupt.  Have enough ticks passed to make it	time to perform our health status check again? */	ulTicksSinceLastDisplay++;	if( ulTicksSinceLastDisplay >= mainCHECK_DELAY )	{		ulTicksSinceLastDisplay = 0;		/* Has an error been found in any task? */		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN GEN Q";		}	    else if( xIsCreateTaskStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN CREATE";	    }	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {	        xMessage.pcMessage = "ERROR IN MATH";	    }		else if( xAreIntQueueTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN INT QUEUE";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN BLOCK Q";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN BLOCK TIME";		}		else if( xAreSemaphoreTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN SEMAPHORE";		}		else if( xArePollingQueuesStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN POLL Q";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN PEEK Q";		}		else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )		{			xMessage.pcMessage = "ERROR IN REC MUTEX";		}		else if( xAreQueueSetTasksStillRunning() != pdPASS )		{			xMessage.pcMessage = "ERROR IN Q SET";		}		configASSERT( strcmp( ( const char * ) xMessage.pcMessage, "PASS" ) == 0 );		/* Send the message to the OLED gatekeeper for display. */		xHigherPriorityTaskWoken = pdFALSE;		xQueueSendFromISR( xOLEDQueue, &xMessage, &xHigherPriorityTaskWoken );	}	/* Write to a queue that is in use as part of the queue set demo to	demonstrate using queue sets from an ISR. */	vQueueSetAccessQueueSetFromISR();}
开发者ID:InSoonPark,项目名称:FreeRTOS,代码行数:70,


示例22: prvCheckTask

static void prvCheckTask( void *pvParameters ){TickType_t xNextWakeTime;const TickType_t xCycleFrequency = pdMS_TO_TICKS( 2500UL );	/* Just to remove compiler warning. */	( void ) pvParameters;	/* Initialise xNextWakeTime - this only needs to be done once. */	xNextWakeTime = xTaskGetTickCount();	for( ;; )	{		/* Place this task in the blocked state until it is time to run again. */		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );		/* Check the standard demo tasks are running without error. */		#if( configUSE_PREEMPTION != 0 )		{			/* These tasks are only created when preemption is used. */			if( xAreTimerDemoTasksStillRunning( xCycleFrequency ) != pdTRUE )			{				pcStatusMessage = "Error: TimerDemo";			}		}		#endif		if( xAreTaskNotificationTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error:  Notification";		}		if( xAreInterruptSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: IntSem";		}		else if( xAreEventGroupTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: EventGroup";		}		else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: IntMath";		}		else if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: GenQueue";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: QueuePeek";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: BlockQueue";		}		else if( xAreSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: SemTest";		}		else if( xArePollingQueuesStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: PollQueue";		}		else if( xAreMathsTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Flop";		}		else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: RecMutex";		}		else if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: CountSem";		}		else if( xIsCreateTaskStillRunning() != pdTRUE )		{			pcStatusMessage = "Error: Death";		}		else if( xAreDynamicPriorityTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Dynamic";		}		else if( xAreQueueSetTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Queue set";		}		else if( xIsQueueOverwriteTaskStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Queue overwrite";		}		else if( xAreQueueSetPollTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Queue set polling";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdPASS )		{			pcStatusMessage = "Error: Block time";		}//.........这里部分代码省略.........
开发者ID:AlexShiLucky,项目名称:freertos,代码行数:101,


示例23: prvCheckOtherTasksAreStillRunning

static short prvCheckOtherTasksAreStillRunning( void ){portBASE_TYPE lReturn = pdPASS;	/* The demo tasks maintain a count that increments every cycle of the task	provided that the task has never encountered an error.  This function	checks the counts maintained by the tasks to ensure they are still being	incremented.  A count remaining at the same value between calls therefore	indicates that an error has been detected. */	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreComTestTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreMathsTaskStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if ( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if ( xAreQueuePeekTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	/* Have the register test tasks found any errors? */	if( ulRegTestError != pdFALSE )	{		lReturn = pdFAIL;	}	return lReturn;}
开发者ID:wugsh,项目名称:wgs,代码行数:68,


示例24: prvCheckOtherTasksAreStillRunning

static void prvCheckOtherTasksAreStillRunning( void ){static short sErrorHasOccurred = pdFALSE;static unsigned long long uxLastHookCallCount = 0, uxLastQueueSendCount = 0;	if( prvCheckMathTasksAreStillRunning() != pdTRUE )	{		vDisplayMessage( "Maths task count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreComTestTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Com test count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		vDisplayMessage( "Blocking queues count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreAltBlockingQueuesStillRunning() != pdTRUE )	{		vDisplayMessage( "Alt blocking queues count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		vDisplayMessage( "Polling queue count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreAltPollingQueuesStillRunning() != pdTRUE )	{		vDisplayMessage( "Alt polling queue count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		vDisplayMessage( "Incorrect number of tasks running!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Semaphore take count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Dynamic priority count unchanged!/r/n" );		sErrorHasOccurred = pdTRUE;	}		if( xAreMultiEventTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in multi events tasks!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreFlashCoRoutinesStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in co-routine flash tasks!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreHookCoRoutinesStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in tick hook to co-routine communications!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in block time test tasks!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreAltBlockTimeTestTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in fast block time test tasks!/r/n" );		sErrorHasOccurred = pdTRUE;	}	if( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in generic queue test task!/r/n" );		sErrorHasOccurred = pdTRUE;			}	if( xAreAltGenericQueueTasksStillRunning() != pdTRUE )	{		vDisplayMessage( "Error in fast generic queue test task!/r/n" );		sErrorHasOccurred = pdTRUE;			}//.........这里部分代码省略.........
开发者ID:ptracton,项目名称:experimental,代码行数:101,


示例25: prvCheckTask

static void prvCheckTask( void *pvParameter ){TickType_t xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;	/* Just to remove compiler warning. */	( void ) pvParameter;	/* Initialise xNextWakeTime - this only needs to be done once. */	xNextWakeTime = xTaskGetTickCount();	for( ;; )	{		/* Place this task in the blocked state until it is time to run again. */		vTaskDelayUntil( &xNextWakeTime, xCycleFrequency );				/* Inspect all the other tasks to ensure none have experienced any errors. */		if( xAreGenericQueueTasksStillRunning() != pdTRUE )		{			/* Increase the rate at which this task cycles, which will increase the			rate at which mainCHECK_LED flashes to give visual feedback that an error			has occurred. */			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in GenQ test.";		}		else if( xAreQueuePeekTasksStillRunning() != pdTRUE )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in Queue Peek test.";		}		else if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in Blocking Queue test.";		}		else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in BlockTim test.";		}	    else if( xAreSemaphoreTasksStillRunning() != pdTRUE )	    {	        xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in Semaphore test.";	    }	    else if( xArePollingQueuesStillRunning() != pdTRUE )	    {	        xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in Polling Queue test.";	    }	    else if( xIsCreateTaskStillRunning() != pdTRUE )	    {	        xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in Create test.";	    }	    else if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	    {	        xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in integer Math test.";	    }	    else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	    {	    	xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in recursive mutex test.";	    }		else if( xAreMathsTaskStillRunning() != pdTRUE )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in floating point Math test.";		}		/* Check the reg test tasks are still cycling.  They will stop incrementing		their loop counters if they encounter an error. */		if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in RegTest.";		}		if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )		{			xCycleFrequency = mainERROR_CYCLE_TIME;			pcStatusMessage = "Error in RegTest.";		}				ulLastRegTest1CycleCount = ulRegTest1CycleCount;		ulLastRegTest2CycleCount = ulRegTest2CycleCount;				/* Toggle the check LED to give an indication of the system status.  If the		LED toggles every 5 seconds then everything is ok.  A faster toggle indicates		an error. */		vParTestToggleLED( mainCHECK_LED );	}}
开发者ID:wugsh,项目名称:wgs,代码行数:94,


示例26: prvCheckOtherTasksAreStillRunning

static long prvCheckOtherTasksAreStillRunning( void ){long lReturn = pdPASS;unsigned long ulHighFrequencyTimerTaskIterations, ulExpectedIncFrequency_ms;	/* Check all the demo tasks (other than the flash tasks) to ensure	that they are all still running, and that none have detected an error. */	if( xAreIntegerMathsTaskStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreComTestTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreBlockingQueuesStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if ( xAreGenericQueueTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( prvAreRegTestTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xIsCreateTaskStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreTimerDemoTasksStillRunning( mainNO_ERROR_FLASH_PERIOD_MS ) != pdTRUE )	{		lReturn = pdFAIL;	}	if( xArePollingQueuesStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	if( xAreSemaphoreTasksStillRunning() != pdTRUE )	{		lReturn = pdFAIL;	}	/* Obtain the number of times the task associated with the high frequency	(interrupt nesting) timer test has increment since the check task last	executed, and the frequency at which it is expected to execute in ms. */	ulHighFrequencyTimerTaskIterations = ulInterruptNestingTestGetIterationCount( &ulExpectedIncFrequency_ms );	if( ( ulHighFrequencyTimerTaskIterations < ( ( mainNO_ERROR_FLASH_PERIOD_MS / ulExpectedIncFrequency_ms ) - 1 ) )		||		( ulHighFrequencyTimerTaskIterations > ( ( mainNO_ERROR_FLASH_PERIOD_MS / ulExpectedIncFrequency_ms ) +5 ) )	  )	{		/* Would have expected the high frequency timer task to have		incremented its execution count more times that reported. */		lReturn = pdFAIL;	}	return lReturn;}
开发者ID:niesteszeck,项目名称:FreeRTOS,代码行数:84,


示例27: vCheckTask

static void vCheckTask( void *pvParameters ){portBASE_TYPE xErrorOccurred = pdFALSE;TickType_t xLastExecutionTime;unsigned portBASE_TYPE uxColumn = 0;xLCDMessage xMessage;	xLastExecutionTime = xTaskGetTickCount();	xMessage.xColumn = 0;	xMessage.pcMessage = "PASS";    for( ;; )	{		/* Perform this check every mainCHECK_DELAY milliseconds. */		vTaskDelayUntil( &xLastExecutionTime, mainCHECK_DELAY );		/* Has an error been found in any task? */        if( xAreBlockingQueuesStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}		if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )		{			xErrorOccurred = pdTRUE;		}        if( xAreSemaphoreTasksStillRunning() != pdTRUE )        {            xErrorOccurred = pdTRUE;        }        if( xArePollingQueuesStillRunning() != pdTRUE )        {            xErrorOccurred = pdTRUE;        }        if( xIsCreateTaskStillRunning() != pdTRUE )        {            xErrorOccurred = pdTRUE;        }        if( xAreIntegerMathsTaskStillRunning() != pdTRUE )        {            xErrorOccurred = pdTRUE;        }        LCD_cls();        xMessage.xColumn++;        LCD_gotoxy( ( uxColumn & 0x07 ) + 1, ( uxColumn & 0x01 ) + 1 );        if( xErrorOccurred == pdTRUE )        {            xMessage.pcMessage = "FAIL";        }		/* Send the message to the LCD gatekeeper for display. */		xQueueSend( xLCDQueue, &xMessage, portMAX_DELAY );	}}
开发者ID:DanielKristofKiss,项目名称:FreeRTOS,代码行数:62,



注:本文中的xAreSemaphoreTasksStillRunning函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ xAxis函数代码示例
C++ xAreRecursiveMutexTasksStillRunning函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。