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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? portmacro.h

?? FreeRTOS is a portable, open source, mini Real Time Kernel - a free to download and royalty free RTO
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
	FreeRTOS.org V5.2.0 - Copyright (C) 2003-2009 Richard Barry.

	This file is part of the FreeRTOS.org distribution.

	FreeRTOS.org is free software; you can redistribute it and/or modify it 
	under the terms of the GNU General Public License (version 2) as published
	by the Free Software Foundation and modified by the FreeRTOS exception.

	FreeRTOS.org 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.org; 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 is included to allow you to distribute a 
	combined work that includes FreeRTOS.org without being obliged to provide
	the source code for any proprietary components.  See the licensing section
	of http://www.FreeRTOS.org for full details.


	***************************************************************************
	*                                                                         *
	* Get the FreeRTOS eBook!  See http://www.FreeRTOS.org/Documentation      *
	*                                                                         *
	* This is a concise, step by step, 'hands on' guide that describes both   *
	* general multitasking concepts and FreeRTOS specifics. It presents and   *
	* explains numerous examples that are written using the FreeRTOS API.     *
	* Full source code for all the examples is provided in an accompanying    *
	* .zip file.                                                              *
	*                                                                         *
	***************************************************************************

	1 tab == 4 spaces!

	Please ensure to read the configuration and relevant port sections of the
	online documentation.

	http://www.FreeRTOS.org - Documentation, latest information, license and
	contact details.

	http://www.SafeRTOS.com - A version that is certified for use in safety
	critical systems.

	http://www.OpenRTOS.com - Commercial support, development, porting,
	licensing and training services.
*/

/* 
Changes from V3.0.0

Changes from V3.0.1
*/
#ifndef PORTMACRO_H
#define PORTMACRO_H

#if !defined(_SERIES) || _SERIES != 18
	#error "WizC supports FreeRTOS on the Microchip PIC18-series only"
#endif

#if !defined(QUICKCALL) || QUICKCALL != 1
	#error "QuickCall must be enabled (see ProjectOptions/Optimisations)"
#endif

#include <stddef.h>
#include <pic.h>

#define portCHAR		char
#define portFLOAT		float
#define portDOUBLE		portFLOAT
#define portLONG		long
#define portSHORT		short
#define portSTACK_TYPE	unsigned char
#define portBASE_TYPE	char

#if( configUSE_16_BIT_TICKS == 1 )
	typedef unsigned portSHORT portTickType;
	#define portMAX_DELAY ( portTickType )	( 0xFFFF )
#else
	typedef unsigned portLONG portTickType;
	#define portMAX_DELAY ( portTickType )	( 0xFFFFFFFF )
#endif

#define portBYTE_ALIGNMENT			1

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

/*
 * Constant used for context switch macro when we require the interrupt 
 * enable state to be forced when the interrupted task is switched back in.
 */
#define portINTERRUPTS_FORCED				(0x01)

/*
 * Constant used for context switch macro when we require the interrupt 
 * enable state to be unchanged when the interrupted task is switched back in.
 */
#define portINTERRUPTS_UNCHANGED			(0x00)

/* Initial interrupt enable state for newly created tasks.  This value is
 * used when a task switches in for the first time.
 */
#define portINTERRUPTS_INITIAL_STATE		(portINTERRUPTS_FORCED)

/*
 * Macros to modify the global interrupt enable bit in INTCON.
 */
#define portDISABLE_INTERRUPTS()	\
	do								\
	{								\
		bGIE=0;						\
	} while(bGIE)	// MicroChip recommends this check!
	
#define portENABLE_INTERRUPTS()		\
	do								\
	{								\
		bGIE=1;						\
	} while(0)

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

/*
 * Critical section macros.
 */
extern unsigned portCHAR ucCriticalNesting;

#define portNO_CRITICAL_SECTION_NESTING		( ( unsigned portCHAR ) 0 )

#define portENTER_CRITICAL()										\
	do																\
	{																\
		portDISABLE_INTERRUPTS();									\
																	\
		/*															\
		 * Now interrupts are disabled ucCriticalNesting			\
		 * can be accessed directly. Increment						\
		 * ucCriticalNesting to keep a count of how					\
		 * many times portENTER_CRITICAL() has been called. 		\
		 */															\
		ucCriticalNesting++;										\
	} while(0)

#define portEXIT_CRITICAL()											\
	do																\
	{																\
		if(ucCriticalNesting > portNO_CRITICAL_SECTION_NESTING)		\
		{															\
			/*														\
			 * Decrement the nesting count as we are leaving a		\
			 * critical section.									\
			 */														\
			ucCriticalNesting--;									\
		}															\
																	\
		/*															\
		 * If the nesting level has reached zero then				\
		 * interrupts should be re-enabled.							\
		 */															\
		if( ucCriticalNesting == portNO_CRITICAL_SECTION_NESTING )	\
		{															\
			portENABLE_INTERRUPTS();								\
		}															\
	} while(0)

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

/*
 * The minimal stacksize is calculated on the first reference of
 * portMINIMAL_STACK_SIZE. Some input to this calculation is
 * compiletime determined, other input is port-defined (see port.c)
 */
extern unsigned portSHORT usPortCALCULATE_MINIMAL_STACK_SIZE( void );
extern unsigned portSHORT usCalcMinStackSize;

#define portMINIMAL_STACK_SIZE					\
	((usCalcMinStackSize == 0)					\
		? usPortCALCULATE_MINIMAL_STACK_SIZE()	\
		: usCalcMinStackSize )

/*
 * WizC uses a downgrowing stack
 */
#define portSTACK_GROWTH			( -1 )

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

/*
 * Macro's that pushes all the registers that make up the context of a task onto
 * the stack, then saves the new top of stack into the TCB. TOSU and TBLPTRU
 * are only saved/restored on devices with more than 64kB (32k Words) ROM.
 * 
 * The stackpointer is helt by WizC in FSR2 and points to the first free byte.
 * WizC uses a "downgrowing" stack. There is no framepointer.
 *
 * We keep track of the interruptstatus using ucCriticalNesting. When this
 * value equals zero, interrupts have to be enabled upon exit from the
 * portRESTORE_CONTEXT macro.
 * 
 * If this is called from an ISR then the interrupt enable bits must have been 
 * set for the ISR to ever get called.  Therefore we want to save
 * ucCriticalNesting with value zero. This means the interrupts will again be
 * re-enabled when the interrupted task is switched back in.
 *
 * If this is called from a manual context switch (i.e. from a call to yield),
 * then we want to keep the current value of ucCritialNesting so it is restored
 * with its current value. This allows a yield from within a critical section.
 *
 * The compiler uses some locations at the bottom of RAM for temporary
 * storage. The compiler may also have been instructed to optimize
 * function-parameters and local variables to global storage. The compiler
 * uses an area called LocOpt for this wizC feature.
 * The total overheadstorage has to be saved in it's entirety as part of
 * a task context. These macro's store/restore from data address 0x0000 to
 * (OVERHEADPAGE0-LOCOPTSIZE+MAXLOCOPTSIZE - 1).
 * OVERHEADPAGE0, LOCOPTSIZE and MAXLOCOPTSIZE are compiler-generated
 * assembler definitions.
 */

#define	portSAVE_CONTEXT( ucInterruptForced )						\

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狂野欧美性猛交blacked| 欧美综合久久久| 亚洲国产日产av| 中文字幕一区二区三区色视频| 精品国产91久久久久久久妲己| 欧美一区二区私人影院日本| 在线观看日韩一区| 色呦呦一区二区三区| 91色婷婷久久久久合中文| 99久久精品情趣| 99久久精品国产导航| 在线观看视频一区| 91精品久久久久久久99蜜桃| 欧美日韩亚洲另类| 欧美日韩激情一区二区| 制服.丝袜.亚洲.另类.中文| 欧美一级国产精品| 久久女同性恋中文字幕| 亚洲日本在线看| 一区二区在线观看视频| 亚洲国产中文字幕| 免费观看在线综合色| 久久精品国产99| 成人深夜福利app| 精品视频1区2区| 精品久久久久久最新网址| 中文字幕在线视频一区| 亚洲v中文字幕| 国产精品影视在线观看| 99久久久国产精品| 欧美日韩不卡在线| 久久久久久久久伊人| 中文字幕一区二区三中文字幕| 亚洲综合一区在线| 狠狠v欧美v日韩v亚洲ⅴ| 不卡的av电影在线观看| 欧美精品日韩综合在线| 国产日产欧美一区二区视频| 日日夜夜精品视频天天综合网| 极品瑜伽女神91| 99精品视频在线免费观看| 欧美人与性动xxxx| 中文字幕一区二区在线播放 | 亚洲午夜羞羞片| 国产一区二区三区在线观看免费视频| www.成人在线| 久久免费偷拍视频| 蜜桃久久久久久| 日本韩国欧美国产| 国产精品久久福利| 蜜芽一区二区三区| 99re热这里只有精品免费视频| 91香蕉视频在线| 久久久欧美精品sm网站| 亚洲国产成人av| 成人免费毛片app| 久久亚洲一区二区三区四区| 日韩激情一区二区| 欧美系列日韩一区| 日日夜夜精品视频天天综合网| 国产98色在线|日韩| 欧美va日韩va| 美女性感视频久久| 91在线播放网址| 欧美人妇做爰xxxⅹ性高电影| 色综合一个色综合亚洲| 91精品国产乱码久久蜜臀| 91精品国产黑色紧身裤美女| 一区二区视频在线| 波多野结衣在线aⅴ中文字幕不卡| 久久久久久一级片| 韩国av一区二区三区| 日韩欧美中文一区| 蜜桃视频第一区免费观看| 制服丝袜中文字幕一区| 日本在线不卡一区| 日韩精品资源二区在线| 久久www免费人成看片高清| 欧美一区二区二区| 一本色道久久综合亚洲91| 国产一区二区三区在线看麻豆| 蜜臀久久久久久久| 国产成人精品免费| 91精品国产91热久久久做人人| 成人黄页毛片网站| 国产欧美精品一区aⅴ影院| 国产高清无密码一区二区三区| 久久久久久电影| 成人激情午夜影院| 亚洲色图在线视频| 欧美日韩夫妻久久| 久草热8精品视频在线观看| 亚洲精品一区二区精华| 丰满少妇在线播放bd日韩电影| 中文久久乱码一区二区| 色婷婷综合在线| 午夜精品视频在线观看| 精品日韩成人av| 懂色av一区二区三区蜜臀| 亚洲色图色小说| 欧美电影一区二区| 国产精品一级黄| 一片黄亚洲嫩模| 26uuu久久综合| 日本高清无吗v一区| 蜜桃在线一区二区三区| 欧美经典一区二区三区| 欧美一区二区三区色| 激情国产一区二区| 亚洲青青青在线视频| 91精品国产综合久久精品麻豆| 国产成人aaa| 亚洲h在线观看| 亚洲国产精品二十页| 在线观看91精品国产入口| 国模少妇一区二区三区| 亚洲一区影音先锋| 久久久国产综合精品女国产盗摄| 91激情五月电影| 国产美女娇喘av呻吟久久| 一区二区三区欧美亚洲| 欧美国产一区二区在线观看| 91精品国产黑色紧身裤美女| 不卡高清视频专区| 激情综合网最新| 亚洲韩国一区二区三区| 中国色在线观看另类| 日韩免费看的电影| 欧美日韩成人综合天天影院| 成人一级片网址| 激情五月婷婷综合| 日韩精彩视频在线观看| 1024成人网色www| 国产视频亚洲色图| 日韩欧美成人午夜| 欧美区一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产精品1024| 国产一区二区精品久久99| 亚洲成a人v欧美综合天堂下载| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日韩精品中文字幕在线不卡尤物| 欧美性猛片xxxx免费看久爱| 成人av电影在线网| 粉嫩aⅴ一区二区三区四区五区| 日本不卡一二三| 日日夜夜精品视频天天综合网| 亚洲国产一二三| 玉米视频成人免费看| 亚洲精品欧美综合四区| 日韩美女精品在线| 亚洲视频一二三| 亚洲精品欧美在线| 亚洲综合丁香婷婷六月香| 亚洲欧美另类小说视频| 一区二区三区中文在线| 悠悠色在线精品| 亚洲动漫第一页| 蜜桃传媒麻豆第一区在线观看| 午夜不卡在线视频| 青青青爽久久午夜综合久久午夜| 日韩精品欧美精品| 另类欧美日韩国产在线| 激情欧美一区二区| 国产宾馆实践打屁股91| 成人黄色网址在线观看| av男人天堂一区| 在线观看日韩精品| 91精品国产综合久久久久久| 亚洲精品一区二区在线观看| 国产日韩精品一区二区三区在线| 亚洲国产电影在线观看| 一区二区三区自拍| 日本欧美韩国一区三区| 国产精品亚洲第一区在线暖暖韩国 | 久久av资源站| 国产一区欧美日韩| 久久精品免费看| 国产精品综合二区| 91激情在线视频| 日韩一区二区高清| 国产精品卡一卡二卡三| 亚洲高清在线视频| 国内不卡的二区三区中文字幕| bt欧美亚洲午夜电影天堂| 欧美日韩一区在线观看| 欧美成人一区二区三区| 中文字幕一区二区三区在线观看| 亚洲国产成人高清精品| 日韩影院精彩在线| av高清不卡在线| 欧美日韩国产在线观看| 国产视频911| 午夜久久久影院| 成人精品一区二区三区四区| 9191精品国产综合久久久久久| 国产丝袜欧美中文另类| 日韩高清电影一区| 99国产精品久久| 国产亚洲欧美日韩在线一区|