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

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

?? queue.h

?? freescale k40/k60 freertos-uip 例程
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*
    FreeRTOS V6.0.4 - Copyright (C) 2010 Real Time Engineers Ltd.

    ***************************************************************************
    *                                                                         *
    * If you are:                                                             *
    *                                                                         *
    *    + New to FreeRTOS,                                                   *
    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *
    *    + Looking for basic training,                                        *
    *    + Wanting to improve your FreeRTOS skills and productivity           *
    *                                                                         *
    * then take a look at the FreeRTOS eBook                                  *
    *                                                                         *
    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *
    *                  http://www.FreeRTOS.org/Documentation                  *
    *                                                                         *
    * A pdf reference manual is also available.  Both are usually delivered   *
    * to your inbox within 20 minutes to two hours when purchased between 8am *
    * and 8pm GMT (although please allow up to 24 hours in case of            *
    * exceptional circumstances).  Thank you for your support!                *
    *                                                                         *
    ***************************************************************************

    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 (version 2) as published by the
    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
    ***NOTE*** The exception to the GPL is included to allow you to distribute
    a combined work that includes FreeRTOS without being obliged to provide the
    source code for proprietary components outside of the FreeRTOS kernel.
    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 and the FreeRTOS license exception along with FreeRTOS; if not it 
    can be viewed here: http://www.freertos.org/a00114.html and also obtained 
    by writing to Richard Barry, contact details for whom are available on the
    FreeRTOS WEB site.

    1 tab == 4 spaces!

    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.
*/

#ifndef INC_FREERTOS_H
	#error "#include FreeRTOS.h" must appear in source files before "#include queue.h"
#endif




#ifndef QUEUE_H
#define QUEUE_H

#ifdef __cplusplus
extern "C" {
#endif


#include "mpu_wrappers.h"


typedef void * xQueueHandle;


/* For internal use only. */
#define	queueSEND_TO_BACK	( 0 )
#define	queueSEND_TO_FRONT	( 1 )


/**
 * queue. h
 * <pre>
 xQueueHandle xQueueCreate(
							  unsigned portBASE_TYPE uxQueueLength,
							  unsigned portBASE_TYPE uxItemSize
						  );
 * </pre>
 *
 * Creates a new queue instance.  This allocates the storage required by the
 * new queue and returns a handle for the queue.
 *
 * @param uxQueueLength The maximum number of items that the queue can contain.
 *
 * @param uxItemSize The number of bytes each item in the queue will require.
 * Items are queued by copy, not by reference, so this is the number of bytes
 * that will be copied for each posted item.  Each item on the queue must be
 * the same size.
 *
 * @return If the queue is successfully create then a handle to the newly
 * created queue is returned.  If the queue cannot be created then 0 is
 * returned.
 *
 * Example usage:
   <pre>
 struct AMessage
 {
	char ucMessageID;
	char ucData[ 20 ];
 };

 void vATask( void *pvParameters )
 {
 xQueueHandle xQueue1, xQueue2;

	// Create a queue capable of containing 10 unsigned long values.
	xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );
	if( xQueue1 == 0 )
	{
		// Queue was not created and must not be used.
	}

	// Create a queue capable of containing 10 pointers to AMessage structures.
	// These should be passed by pointer as they contain a lot of data.
	xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );
	if( xQueue2 == 0 )
	{
		// Queue was not created and must not be used.
	}

	// ... Rest of task code.
 }
 </pre>
 * \defgroup xQueueCreate xQueueCreate
 * \ingroup QueueManagement
 */
xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize );

/**
 * queue. h
 * <pre>
 portBASE_TYPE xQueueSendToToFront(
								   xQueueHandle	xQueue,
								   const	void	*	pvItemToQueue,
								   portTickType	xTicksToWait
							   );
 * </pre>
 *
 * This is a macro that calls xQueueGenericSend().
 *
 * Post an item to the front of a queue.  The item is queued by copy, not by
 * reference.  This function must not be called from an interrupt service
 * routine.  See xQueueSendFromISR () for an alternative which may be used
 * in an ISR.
 *
 * @param xQueue The handle to the queue on which the item is to be posted.
 *
 * @param pvItemToQueue A pointer to the item that is to be placed on the
 * queue.  The size of the items the queue will hold was defined when the
 * queue was created, so this many bytes will be copied from pvItemToQueue
 * into the queue storage area.
 *
 * @param xTicksToWait The maximum amount of time the task should block
 * waiting for space to become available on the queue, should it already
 * be full.  The call will return immediately if this is set to 0 and the
 * queue is full.  The time is defined in tick periods so the constant
 * portTICK_RATE_MS should be used to convert to real time if this is required.
 *
 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
 *
 * Example usage:
   <pre>
 struct AMessage
 {
	char ucMessageID;
	char ucData[ 20 ];
 } xMessage;

 unsigned long ulVar = 10UL;

 void vATask( void *pvParameters )
 {
 xQueueHandle xQueue1, xQueue2;
 struct AMessage *pxMessage;

	// Create a queue capable of containing 10 unsigned long values.
	xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );

	// Create a queue capable of containing 10 pointers to AMessage structures.
	// These should be passed by pointer as they contain a lot of data.
	xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

	// ...

	if( xQueue1 != 0 )
	{
		// Send an unsigned long.  Wait for 10 ticks for space to become
		// available if necessary.
		if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
		{
			// Failed to post the message, even after 10 ticks.
		}
	}

	if( xQueue2 != 0 )
	{
		// Send a pointer to a struct AMessage object.  Don't block if the
		// queue is already full.
		pxMessage = & xMessage;
		xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
	}

	// ... Rest of task code.
 }
 </pre>
 * \defgroup xQueueSend xQueueSend
 * \ingroup QueueManagement
 */
#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )

/**
 * queue. h
 * <pre>
 portBASE_TYPE xQueueSendToBack(
								   xQueueHandle	xQueue,
								   const	void	*	pvItemToQueue,
								   portTickType	xTicksToWait
							   );
 * </pre>
 *
 * This is a macro that calls xQueueGenericSend().
 *
 * Post an item to the back of a queue.  The item is queued by copy, not by
 * reference.  This function must not be called from an interrupt service
 * routine.  See xQueueSendFromISR () for an alternative which may be used
 * in an ISR.
 *
 * @param xQueue The handle to the queue on which the item is to be posted.
 *
 * @param pvItemToQueue A pointer to the item that is to be placed on the
 * queue.  The size of the items the queue will hold was defined when the
 * queue was created, so this many bytes will be copied from pvItemToQueue
 * into the queue storage area.
 *
 * @param xTicksToWait The maximum amount of time the task should block
 * waiting for space to become available on the queue, should it already
 * be full.  The call will return immediately if this is set to 0 and the queue
 * is full.  The  time is defined in tick periods so the constant
 * portTICK_RATE_MS should be used to convert to real time if this is required.
 *
 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
 *
 * Example usage:
   <pre>
 struct AMessage
 {
	char ucMessageID;
	char ucData[ 20 ];
 } xMessage;

 unsigned long ulVar = 10UL;

 void vATask( void *pvParameters )
 {
 xQueueHandle xQueue1, xQueue2;
 struct AMessage *pxMessage;

	// Create a queue capable of containing 10 unsigned long values.
	xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );

	// Create a queue capable of containing 10 pointers to AMessage structures.
	// These should be passed by pointer as they contain a lot of data.
	xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

	// ...

	if( xQueue1 != 0 )
	{
		// Send an unsigned long.  Wait for 10 ticks for space to become
		// available if necessary.
		if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
		{
			// Failed to post the message, even after 10 ticks.
		}
	}

	if( xQueue2 != 0 )
	{
		// Send a pointer to a struct AMessage object.  Don't block if the
		// queue is already full.
		pxMessage = & xMessage;
		xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
	}

	// ... Rest of task code.
 }
 </pre>
 * \defgroup xQueueSend xQueueSend
 * \ingroup QueueManagement
 */
#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )

/**
 * queue. h
 * <pre>
 portBASE_TYPE xQueueSend(
							  xQueueHandle xQueue,
							  const void * pvItemToQueue,
							  portTickType xTicksToWait
						 );
 * </pre>
 *
 * This is a macro that calls xQueueGenericSend().  It is included for
 * backward compatibility with versions of FreeRTOS.org that did not
 * include the xQueueSendToFront() and xQueueSendToBack() macros.  It is
 * equivalent to xQueueSendToBack().
 *
 * Post an item on a queue.  The item is queued by copy, not by reference.
 * This function must not be called from an interrupt service routine.
 * See xQueueSendFromISR () for an alternative which may be used in an ISR.
 *
 * @param xQueue The handle to the queue on which the item is to be posted.
 *
 * @param pvItemToQueue A pointer to the item that is to be placed on the
 * queue.  The size of the items the queue will hold was defined when the
 * queue was created, so this many bytes will be copied from pvItemToQueue
 * into the queue storage area.
 *
 * @param xTicksToWait The maximum amount of time the task should block
 * waiting for space to become available on the queue, should it already
 * be full.  The call will return immediately if this is set to 0 and the
 * queue is full.  The time is defined in tick periods so the constant
 * portTICK_RATE_MS should be used to convert to real time if this is required.
 *
 * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.
 *
 * Example usage:
   <pre>
 struct AMessage
 {
	char ucMessageID;
	char ucData[ 20 ];
 } xMessage;

 unsigned long ulVar = 10UL;

 void vATask( void *pvParameters )
 {
 xQueueHandle xQueue1, xQueue2;
 struct AMessage *pxMessage;

	// Create a queue capable of containing 10 unsigned long values.
	xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) );

	// Create a queue capable of containing 10 pointers to AMessage structures.
	// These should be passed by pointer as they contain a lot of data.
	xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );

	// ...

	if( xQueue1 != 0 )
	{
		// Send an unsigned long.  Wait for 10 ticks for space to become
		// available if necessary.
		if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )
		{
			// Failed to post the message, even after 10 ticks.
		}
	}

	if( xQueue2 != 0 )
	{
		// Send a pointer to a struct AMessage object.  Don't block if the
		// queue is already full.
		pxMessage = & xMessage;
		xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );
	}

	// ... Rest of task code.
 }
 </pre>
 * \defgroup xQueueSend xQueueSend
 * \ingroup QueueManagement
 */
#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )


/**
 * queue. h
 * <pre>
 portBASE_TYPE xQueueGenericSend(
									xQueueHandle xQueue,
									const void * pvItemToQueue,
									portTickType xTicksToWait
									portBASE_TYPE xCopyPosition
								);
 * </pre>
 *
 * It is preferred that the macros xQueueSend(), xQueueSendToFront() and
 * xQueueSendToBack() are used in place of calling this function directly.
 *
 * Post an item on a queue.  The item is queued by copy, not by reference.
 * This function must not be called from an interrupt service routine.
 * See xQueueSendFromISR () for an alternative which may be used in an ISR.
 *
 * @param xQueue The handle to the queue on which the item is to be posted.
 *
 * @param pvItemToQueue A pointer to the item that is to be placed on the
 * queue.  The size of the items the queue will hold was defined when the
 * queue was created, so this many bytes will be copied from pvItemToQueue
 * into the queue storage area.
 *
 * @param xTicksToWait The maximum amount of time the task should block
 * waiting for space to become available on the queue, should it already
 * be full.  The call will return immediately if this is set to 0 and the
 * queue is full.  The time is defined in tick periods so the constant
 * portTICK_RATE_MS should be used to convert to real time if this is required.
 *
 * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the
 * item at the back of the queue, or queueSEND_TO_FRONT to place the item
 * at the front of the queue (for high priority messages).
 *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲一区二区三区妖精| 色婷婷亚洲精品| 99视频精品在线| 欧美一区二区视频网站| 久久综合99re88久久爱| 一区二区三区四区国产精品| 日韩专区一卡二卡| 国产大片一区二区| 9191久久久久久久久久久| 国产日韩成人精品| 亚洲成人你懂的| 成人av中文字幕| 精品国产乱码久久久久久老虎| 亚洲欧美福利一区二区| 国产一区二区在线看| 欧美性高清videossexo| 国产精品久久久久久久久免费樱桃 | 亚洲午夜激情av| 国产91精品一区二区| 欧美精品一区二区三区在线播放| 国产福利精品一区二区| 正在播放亚洲一区| 亚洲国产精品尤物yw在线观看| av动漫一区二区| 中文字幕不卡在线观看| 激情欧美日韩一区二区| 日韩欧美成人一区| 秋霞影院一区二区| 日韩欧美中文字幕精品| 美女视频网站久久| 欧美一级淫片007| 日本不卡高清视频| 欧美一级二级三级蜜桃| 奇米精品一区二区三区在线观看| 欧美日韩国产乱码电影| 日韩精品亚洲一区二区三区免费| 欧美日韩一区二区三区免费看| 亚洲主播在线观看| 欧美性色黄大片手机版| 玉米视频成人免费看| 欧美色图第一页| 三级亚洲高清视频| 日韩女优视频免费观看| 欧美伊人久久久久久午夜久久久久| 亚洲欧美综合网| 色狠狠桃花综合| 午夜私人影院久久久久| 欧美另类一区二区三区| 男女性色大片免费观看一区二区| 日韩三级免费观看| 国产又黄又大久久| 亚洲视频资源在线| 欧美日韩国产综合一区二区| 麻豆久久一区二区| 国产欧美一区二区在线| 99国产精品久久久久久久久久 | 在线日韩av片| 日本系列欧美系列| 国产午夜精品一区二区三区四区| av电影一区二区| 午夜欧美电影在线观看| 日韩精品一区二区三区三区免费 | 国产一区二区三区四区五区美女 | 亚洲免费观看高清在线观看| 欧美日韩一区视频| 久久97超碰国产精品超碰| 国产精品理伦片| 日韩一卡二卡三卡四卡| 国产成+人+日韩+欧美+亚洲| 亚洲成人动漫在线观看| 日韩一区二区电影在线| 国产成人8x视频一区二区 | 欧美不卡123| 国产91精品久久久久久久网曝门 | **性色生活片久久毛片| 欧美日韩国产综合久久| 国产成人精品一区二区三区四区 | 欧美丝袜丝nylons| 国模一区二区三区白浆| 亚洲午夜私人影院| 久久久噜噜噜久久人人看| 色菇凉天天综合网| 高清成人免费视频| 欧美a级理论片| 一区二区欧美精品| 国产精品理伦片| 精品国精品自拍自在线| 在线观看日韩国产| 粉嫩一区二区三区在线看| 青草国产精品久久久久久| 亚洲精品中文字幕乱码三区| 久久久久国产精品厨房| 51精品秘密在线观看| 91影视在线播放| 国产一区二区三区香蕉| 日韩**一区毛片| 一区二区三区国产精品| 欧美国产视频在线| 久久久午夜电影| 日韩一区二区三区精品视频| 色婷婷激情综合| 97se亚洲国产综合自在线不卡 | 国产一区二区中文字幕| 久久国产精品色婷婷| 免费观看成人av| 日本sm残虐另类| 美女网站一区二区| 日本成人在线网站| 日日夜夜精品视频天天综合网| 一区二区激情视频| 一区二区三区四区五区视频在线观看| 国产精品不卡一区| 国产精品国产三级国产aⅴ原创 | 韩日精品视频一区| 老司机午夜精品99久久| 婷婷综合在线观看| 日本不卡一二三| 国内精品国产成人国产三级粉色| 国产在线国偷精品免费看| 国内精品伊人久久久久av影院| 激情综合色播五月| 国产乱一区二区| 国产成人综合亚洲网站| 成人一区二区在线观看| 成人国产视频在线观看| av一区二区三区在线| 一本色道久久加勒比精品| 在线免费观看成人短视频| 欧美探花视频资源| 欧美一区二区三区小说| 欧美精品一区二区三区在线 | 欧美三级在线视频| 欧美剧在线免费观看网站| 欧美一区二区三区系列电影| 精品国产伦一区二区三区观看体验 | 一区二区三区免费看视频| 午夜欧美在线一二页| 韩国精品免费视频| 91在线视频在线| 欧美日本在线播放| 精品va天堂亚洲国产| 日韩一区欧美小说| 日本欧美大码aⅴ在线播放| 九色porny丨国产精品| 成人av资源站| 9191久久久久久久久久久| 日本一区二区三区四区| 亚洲精品国产第一综合99久久| 日韩成人dvd| 成人免费观看av| 欧美美女直播网站| 久久精品亚洲精品国产欧美kt∨| 一区二区三区在线免费视频| 蜜桃免费网站一区二区三区| 成人av综合一区| 欧美xxxxxxxx| 一区二区三区日韩精品视频| 久久精品国内一区二区三区| 成人av综合在线| 欧美电影精品一区二区| 亚洲同性gay激情无套| 久久精品国产一区二区三区免费看 | 成人短视频下载| 欧美一区二区在线免费观看| 亚洲私人黄色宅男| 紧缚奴在线一区二区三区| 日本韩国欧美一区| 国产亚洲精品bt天堂精选| 亚洲国产成人91porn| 99这里只有久久精品视频| 精品免费日韩av| 强制捆绑调教一区二区| 色哟哟精品一区| 国产精品天美传媒| 久久不见久久见免费视频1| 欧美中文一区二区三区| 中日韩av电影| 国内欧美视频一区二区| 欧美日韩成人一区二区| ●精品国产综合乱码久久久久| 国模冰冰炮一区二区| 日韩欧美一区二区不卡| 亚洲福利国产精品| 一本久久a久久免费精品不卡| 国产欧美1区2区3区| 国产精品一级片| 精品久久人人做人人爽| 日本亚洲免费观看| 欧美剧在线免费观看网站 | 91 com成人网| 日韩精品乱码免费| 欧美色图片你懂的| 一区二区三区在线影院| 一本色道久久综合亚洲91| 一色桃子久久精品亚洲| 成人免费黄色在线| 成人免费视频在线观看| 成人av资源站| 亚洲女人的天堂| 在线看日本不卡|