亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? integer.c

?? Este é um rtos free para a familia arm7
?? C
字號:
/*
	FreeRTOS V4.0.0 - Copyright (C) 2003-2006 Richard Barry.

	This file is part of the FreeRTOS distribution.

	FreeRTOS is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	FreeRTOS is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with FreeRTOS; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

	A special exception to the GPL can be applied should you wish to distribute
	a combined work that includes FreeRTOS, without being obliged to provide
	the source code for any proprietary components.  See the licensing section 
	of http://www.FreeRTOS.org for full details of how and when the exception
	can be applied.

	***************************************************************************
	See http://www.FreeRTOS.org for documentation, latest information, license 
	and contact details.  Please ensure to read the configuration and relevant 
	port sections of the online documentation.
	***************************************************************************
*/

/*
 * This version of integer. c is for use on systems that have limited stack
 * space and no display facilities.  The complete version can be found in
 * the Demo/Common/Full directory.
 *
 * As with the full version, the tasks created in this file are a good test 
 * of the scheduler context switch mechanism.  The processor has to access 
 * 32bit variables in two or four chunks (depending on the processor).  The low 
 * priority of these tasks means there is a high probability that a context 
 * switch will occur mid calculation.  See flop. c documentation for 
 * more information.
 *
 */

/*
Changes from V1.2.1

	+ The constants used in the calculations are larger to ensure the
	  optimiser does not truncate them to 16 bits.

Changes from V1.2.3

	+ uxTaskCheck is now just used as a boolean.  Instead of incrementing
	  the variable each cycle of the task, the variable is simply set to
	  true.  sAreIntegerMathsTaskStillRunning() sets it back to false and
	  expects it to have been set back to true by the time it is called
	  again.
	+ A division has been included in the calculation.
*/

#include <stdlib.h>

/* Scheduler include files. */
#include "FreeRTOS.h"
#include "task.h"

/* Demo program include files. */
#include "integer.h"

/* The constants used in the calculation. */
#define intgCONST1				( ( portLONG ) 123 )
#define intgCONST2				( ( portLONG ) 234567 )
#define intgCONST3				( ( portLONG ) -3 )
#define intgCONST4				( ( portLONG ) 7 )
#define intgEXPECTED_ANSWER		( ( ( intgCONST1 + intgCONST2 ) * intgCONST3 ) / intgCONST4 )

#define intgSTACK_SIZE			configMINIMAL_STACK_SIZE

/* As this is the minimal version, we will only create one task. */
#define intgNUMBER_OF_TASKS		( 1 )

/* The task function.  Repeatedly performs a 32 bit calculation, checking the
result against the expected result.  If the result is incorrect then the
context switch must have caused some corruption. */
static portTASK_FUNCTION_PROTO( vCompeteingIntMathTask, pvParameters );

/* Variables that are set to true within the calculation task to indicate
that the task is still executing.  The check task sets the variable back to
false, flagging an error if the variable is still false the next time it
is called. */
static volatile signed portBASE_TYPE xTaskCheck[ intgNUMBER_OF_TASKS ] = { ( signed portBASE_TYPE ) pdFALSE };

/*-----------------------------------------------------------*/

void vStartIntegerMathTasks( unsigned portBASE_TYPE uxPriority )
{
portSHORT sTask;

	for( sTask = 0; sTask < intgNUMBER_OF_TASKS; sTask++ )
	{
		xTaskCreate( vCompeteingIntMathTask, ( const signed portCHAR * const ) "IntMath", intgSTACK_SIZE, ( void * ) &( xTaskCheck[ sTask ] ), uxPriority, ( xTaskHandle * ) NULL );
	}
}
/*-----------------------------------------------------------*/

static portTASK_FUNCTION( vCompeteingIntMathTask, pvParameters )
{
/* These variables are all effectively set to constants so they are volatile to
ensure the compiler does not just get rid of them. */
volatile portLONG lValue;
portSHORT sError = pdFALSE;
volatile signed portBASE_TYPE *pxTaskHasExecuted;

	/* Set a pointer to the variable we are going to set to true each
	iteration.  This is also a good test of the parameter passing mechanism
	within each port. */
	pxTaskHasExecuted = ( volatile signed portBASE_TYPE * ) pvParameters;

	/* Keep performing a calculation and checking the result against a constant. */
	for( ;; )
	{
		/* Perform the calculation.  This will store partial value in
		registers, resulting in a good test of the context switch mechanism. */
		lValue = intgCONST1;
		lValue += intgCONST2;

		/* Yield in case cooperative scheduling is being used. */
		#if configUSE_PREEMPTION == 0
		{
			taskYIELD();
		}
		#endif

		/* Finish off the calculation. */
		lValue *= intgCONST3;
		lValue /= intgCONST4;

		/* If the calculation is found to be incorrect we stop setting the 
		TaskHasExecuted variable so the check task can see an error has 
		occurred. */
		if( lValue != intgEXPECTED_ANSWER ) /*lint !e774 volatile used to prevent this being optimised out. */
		{
			sError = pdTRUE;
		}

		if( sError == pdFALSE )
		{
			/* We have not encountered any errors, so set the flag that show
			we are still executing.  This will be periodically cleared by
			the check task. */
			portENTER_CRITICAL();
				*pxTaskHasExecuted = pdTRUE;
			portEXIT_CRITICAL();
		}

		/* Yield in case cooperative scheduling is being used. */
		#if configUSE_PREEMPTION == 0
		{
			taskYIELD();
		}
		#endif
	}
}
/*-----------------------------------------------------------*/

/* This is called to check that all the created tasks are still running. */
portBASE_TYPE xAreIntegerMathsTaskStillRunning( void )
{
portBASE_TYPE xReturn = pdTRUE;
portSHORT sTask;

	/* Check the maths tasks are still running by ensuring their check variables 
	are still being set to true. */
	for( sTask = 0; sTask < intgNUMBER_OF_TASKS; sTask++ )
	{
		if( xTaskCheck[ sTask ] == pdFALSE )
		{
			/* The check has not incremented so an error exists. */
			xReturn = pdFALSE;
		}

		/* Reset the check variable so we can tell if it has been set by
		the next time around. */
		xTaskCheck[ sTask ] = pdFALSE;
	}

	return xReturn;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡一区二区| 久久久91精品国产一区二区精品 | 亚洲男人的天堂在线aⅴ视频| 在线观看国产一区二区| 狠狠狠色丁香婷婷综合久久五月| 国产精品福利影院| 日韩一区二区精品在线观看| 91丝袜国产在线播放| 狠狠狠色丁香婷婷综合激情| 午夜精品福利视频网站| 国产精品九色蝌蚪自拍| 欧美xxx久久| 欧美日韩国产a| 色综合咪咪久久| 成人性色生活片| 在线观看精品一区| 福利视频网站一区二区三区| 亚洲国产三级在线| 国产喂奶挤奶一区二区三区| 日韩欧美电影一区| 欧美日韩精品一区二区天天拍小说 | 欧美精品亚洲二区| 91丨porny丨户外露出| 国产高清视频一区| 奇米777欧美一区二区| 亚洲国产视频在线| 夜色激情一区二区| 亚洲欧美日韩久久精品| 国产精品美女久久久久久久久久久| 日韩免费看网站| 精品蜜桃在线看| 欧美成人性战久久| 日韩色视频在线观看| 欧美一级免费观看| 91精品国产乱码久久蜜臀| 欧美在线观看一区二区| 欧美最新大片在线看| 91麻豆6部合集magnet| 99久久久精品免费观看国产蜜| 高清beeg欧美| 成人av中文字幕| 99久久综合国产精品| www.av精品| 91性感美女视频| 91视视频在线观看入口直接观看www | 亚洲图片欧美视频| 亚洲国产综合视频在线观看| 亚洲一二三区在线观看| 中文字幕亚洲电影| 樱桃国产成人精品视频| 亚洲精品免费视频| 亚洲国产成人tv| 亚洲超碰精品一区二区| 日韩中文字幕av电影| 蜜臀久久99精品久久久久宅男| 美国毛片一区二区三区| 狠狠网亚洲精品| 粉嫩av一区二区三区粉嫩| 播五月开心婷婷综合| 91视频xxxx| 欧美日韩精品三区| 欧美v日韩v国产v| 国产欧美日韩不卡免费| 成人免费小视频| 亚洲福利一二三区| 激情五月激情综合网| 成人av在线网| 色网站国产精品| 日韩亚洲欧美在线| 国产精品丝袜一区| 亚洲妇熟xx妇色黄| 国产酒店精品激情| 在线欧美小视频| 日韩欧美第一区| 亚洲日本在线天堂| 麻豆精品久久久| 99国产精品国产精品久久| 欧美理论电影在线| 国产欧美日韩精品在线| 亚洲一区免费视频| 国产精品伊人色| 欧美系列亚洲系列| 久久精品夜色噜噜亚洲a∨| 亚洲精品久久7777| 精品一区二区三区视频| 色综合天天综合网天天看片| 欧美电影免费观看完整版| 成人免费一区二区三区视频| 免费在线观看视频一区| 99视频在线精品| 精品久久99ma| 一区二区三区精品| 国产精品中文有码| 欧美私人免费视频| 国产女人水真多18毛片18精品视频 | 国精产品一区一区三区mba视频| 99re6这里只有精品视频在线观看| 7777精品久久久大香线蕉| 国产精品久久三区| 韩国女主播成人在线观看| 欧美自拍偷拍一区| 中文字幕欧美激情一区| 麻豆视频一区二区| 欧洲中文字幕精品| 国产精品乱码一区二三区小蝌蚪| 免费高清在线一区| 欧美日韩一区在线观看| 亚洲欧洲三级电影| 国产精品夜夜爽| 日韩视频一区二区三区在线播放 | 国产在线观看一区二区| 51精品秘密在线观看| 一区二区三区在线视频观看58| 国产麻豆午夜三级精品| 欧美一区二区三区视频在线观看| 亚洲欧美自拍偷拍| 国产精品亚洲一区二区三区妖精 | 欧美精品日日鲁夜夜添| 亚洲男女一区二区三区| 99精品在线观看视频| 欧美国产成人在线| 国产馆精品极品| 久久综合狠狠综合久久激情| 日日摸夜夜添夜夜添精品视频| 色吊一区二区三区| 日韩毛片在线免费观看| 成人一区二区三区视频在线观看| 久久综合视频网| 国内久久精品视频| 精品欧美乱码久久久久久| 免费看欧美女人艹b| 67194成人在线观看| 亚洲国产综合人成综合网站| 欧美在线播放高清精品| 又紧又大又爽精品一区二区| 色视频成人在线观看免| 亚洲精品伦理在线| 91久久一区二区| 777a∨成人精品桃花网| 一区二区三区中文在线观看| 国产精品毛片高清在线完整版| 肉色丝袜一区二区| 在线一区二区视频| 亚洲二区视频在线| 欧美精品在线观看播放| 蜜臀久久99精品久久久久宅男| 日韩精品一区二区三区视频| 国产呦精品一区二区三区网站| 久久综合九色综合久久久精品综合| 国产美女视频一区| 国产精品免费视频一区| 色综合咪咪久久| 亚洲午夜视频在线观看| 欧美久久一区二区| 久久精品久久99精品久久| 久久先锋影音av| eeuss影院一区二区三区| 亚洲精品视频一区二区| 欧美日韩中文国产| 蜜桃一区二区三区在线观看| 欧美精品一区二区高清在线观看| 国产福利视频一区二区三区| 最新欧美精品一区二区三区| 在线观看一区二区精品视频| 日韩福利视频网| 久久久三级国产网站| www.亚洲色图| 国产乱码一区二区三区| 亚洲欧美国产77777| 69堂精品视频| 成人精品国产免费网站| 亚洲国产综合色| 国产亚洲欧美激情| 色欧美日韩亚洲| 狠狠色丁香婷综合久久| 综合色中文字幕| 91麻豆精品国产91久久久久久久久| 国产在线精品免费av| 亚洲日本免费电影| 日韩视频在线你懂得| www.av亚洲| 久久精品免费观看| 亚洲男人的天堂在线aⅴ视频| 欧美精品在欧美一区二区少妇| 国产+成+人+亚洲欧洲自线| 一区二区三区日韩| 久久久久久久久99精品| 在线观看视频一区| 国产精品99久| 丝袜美腿亚洲色图| 国产精品护士白丝一区av| 日韩欧美一区电影| 色狠狠一区二区| 国产精品一区二区视频| 丝袜亚洲另类欧美| 亚洲欧美电影院| 亚洲国产成人自拍| 日韩午夜激情电影| 欧美日韩精品福利| 91免费看片在线观看|