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

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

?? task.h

?? IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR IAR
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*
	FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 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 as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	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 can be applied should you wish 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 of how and when the exception
	can be applied.

    ***************************************************************************
    ***************************************************************************
    *                                                                         *
    * SAVE TIME AND MONEY!  We can port FreeRTOS.org to your own hardware,    *
    * and even write all or part of your application on your behalf.          *
    * See http://www.OpenRTOS.com for details of the services we provide to   *
    * expedite your project.                                                  *
    *                                                                         *
    ***************************************************************************
    ***************************************************************************

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


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



#ifndef TASK_H
#define TASK_H

#include "portable.h"
#include "list.h"

#ifdef __cplusplus
extern "C" {
#endif
/*-----------------------------------------------------------
 * MACROS AND DEFINITIONS
 *----------------------------------------------------------*/

#define tskKERNEL_VERSION_NUMBER "V5.1.0"

      /**
       * task. h
       *
       * Type by which tasks are referenced.  For example, a call to xTaskCreate
       * returns (via a pointer parameter) an xTaskHandle variable that can then
       * be used as a parameter to vTaskDelete to delete the task.
       *
       * \page xTaskHandle xTaskHandle
       * \ingroup Tasks
       */
typedef void * xTaskHandle;
      
      /*
       * Used internally only.
       */
typedef struct xTIME_OUT
{
    portBASE_TYPE xOverflowCount;
    portTickType  xTimeOnEntering;
} xTimeOutType;
/******************************************************************************/
      /*
       * Defines the priority used by the idle task.  This must not be modified.
       *
       * \ingroup TaskUtils
       */
#define tskIDLE_PRIORITY			( ( unsigned portBASE_TYPE ) 0 )

/******************************************************************************/
/**
 * task. h
 *
 * Macro for forcing a context switch.
 *
 * \page taskYIELD taskYIELD
 * \ingroup SchedulerControl
 */
#define taskYIELD()					portYIELD()
/******************************************************************************/
/**
 * task. h
 *
 * Macro to mark the start of a critical code region.  Preemptive context
 * switches cannot occur when in a critical region.
 *
 * NOTE: This may alter the stack (depending on the portable implementation)
 * so must be used with care!
 *
 * \page taskENTER_CRITICAL taskENTER_CRITICAL
 * \ingroup SchedulerControl
 */
#define taskENTER_CRITICAL()		portENTER_CRITICAL()
/******************************************************************************/
/**
 * task. h
 *
 * Macro to mark the end of a critical code region.  Preemptive context
 * switches cannot occur when in a critical region.
 *
 * NOTE: This may alter the stack (depending on the portable implementation)
 * so must be used with care!
 *
 * \page taskEXIT_CRITICAL taskEXIT_CRITICAL
 * \ingroup SchedulerControl
 */
#define taskEXIT_CRITICAL()			portEXIT_CRITICAL()
/******************************************************************************/
/**  task. h
  Macro to disable all maskable interrupts.
  \page taskDISABLE_INTERRUPTS taskDISABLE_INTERRUPTS
  \ingroup SchedulerControl
 */
#define taskDISABLE_INTERRUPTS()	portDISABLE_INTERRUPTS()
/******************************************************************************/
/*task. h
  Macro to enable microcontroller interrupts.
  \page taskENABLE_INTERRUPTS taskENABLE_INTERRUPTS
  \ingroup SchedulerControl
 */
#define taskENABLE_INTERRUPTS()		portENABLE_INTERRUPTS()
/******************************************************************************/
    /* Definitions returned by xTaskGetSchedulerState(). */
#define taskSCHEDULER_NOT_STARTED	0
#define taskSCHEDULER_RUNNING		1
#define taskSCHEDULER_SUSPENDED		2
/******************************************************************************/

/* task. h
 <pre>
 portBASE_TYPE xTaskCreate(
                              pdTASK_CODE pvTaskCode,
                              const portCHAR * const pcName,
                              unsigned portSHORT usStackDepth,
                              void *pvParameters,
                              unsigned portBASE_TYPE uxPriority,
                              xTaskHandle *pvCreatedTask
                          );</pre>
 
  Create a new task and add it to the list of tasks that are ready to run.
 
  @param pvTaskCode Pointer to the task entry function.  Tasks
  must be implemented to never return (i.e. continuous loop).
 
  @param pcName A descriptive name for the task.  This is mainly used to
  facilitate debugging.  Max length defined by tskMAX_TASK_NAME_LEN - default
  is 16.
 
  @param usStackDepth The size of the task stack specified as the number of
  variables the stack can hold - not the number of bytes.  For example, if
  the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes
  will be allocated for stack storage.
 
  @param pvParameters Pointer that will be used as the parameter for the task
  being created.
 
  @param uxPriority The priority at which the task should run.
 
  @param pvCreatedTask Used to pass back a handle by which the created task
  can be referenced.
 
  @return pdPASS if the task was successfully created and added to a ready
  list, otherwise an error code defined in the file errors. h
 
  Example usage:
  <pre>
                     // Task to be created.
                     void vTaskCode( void * pvParameters )
                     {
                         for( ;; )
                         {
                             // Task code goes here.
                         }
                     }

                         // Function that creates a task.
                         void vOtherFunction( void )
                         {
                         static unsigned char ucParameterToPass;
                         xTaskHandle xHandle;
                                        
                             // Create the task, storing the handle.  Note that the passed parameter ucParameterToPass
                             // must exist for the lifetime of the task, so in this case is declared static.  If it was just an
                             // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time
                             // the new time attempts to access it.
                             xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );
                                        
                             // Use the handle to delete the task.
                             vTaskDelete( xHandle );
                         }
   </pre>
 * \defgroup xTaskCreate xTaskCreate
 * \ingroup Tasks
 */
signed portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask );
/******************************************************************************/
/**
 * task. h
 * <pre>void vTaskDelete( xTaskHandle pxTask );</pre>
 *
 * INCLUDE_vTaskDelete must be defined as 1 for this function to be available.
 * See the configuration section for more information.
 *
 * Remove a task from the RTOS real time kernels management.  The task being
 * deleted will be removed from all ready, blocked, suspended and event lists.
 *
 * NOTE:  The idle task is responsible for freeing the kernel allocated
 * memory from tasks that have been deleted.  It is therefore important that
 * the idle task is not starved of microcontroller processing time if your
 * application makes any calls to vTaskDelete ().  Memory allocated by the
 * task code is not automatically freed, and should be freed before the task
 * is deleted.
 *
 * See the demo application file death.c for sample code that utilises
 * vTaskDelete ().
 *
 * @param pxTask The handle of the task to be deleted.  Passing NULL will
 * cause the calling task to be deleted.
 *
 * Example usage:
   <pre>
 void vOtherFunction( void )
 {
 xTaskHandle xHandle;
		
     // Create the task, storing the handle.
     xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
		
     // Use the handle to delete the task.
     vTaskDelete( xHandle );
 }
   </pre>
 * \defgroup vTaskDelete vTaskDelete
 * \ingroup Tasks
 */
void vTaskDelete( xTaskHandle pxTask );
/******************************************************************************/
/**
 * task. h
 * <pre>void vTaskDelay( portTickType xTicksToDelay );</pre>
 *
 * Delay a task for a given number of ticks.  The actual time that the
 * task remains blocked depends on the tick rate.  The constant
 * portTICK_RATE_MS can be used to calculate real time from the tick
 * rate - with the resolution of one tick period.
 *
 * INCLUDE_vTaskDelay must be defined as 1 for this function to be available.
 * See the configuration section for more information.
 *
 *
 * vTaskDelay() specifies a time at which the task wishes to unblock relative to
 * the time at which vTaskDelay() is called.  For example, specifying a block 
 * period of 100 ticks will cause the task to unblock 100 ticks after 
 * vTaskDelay() is called.  vTaskDelay() does not therefore provide a good method
 * of controlling the frequency of a cyclical task as the path taken through the 
 * code, as well as other task and interrupt activity, will effect the frequency 
 * at which vTaskDelay() gets called and therefore the time at which the task 
 * next executes.  See vTaskDelayUntil() for an alternative API function designed 
 * to facilitate fixed frequency execution.  It does this by specifying an 
 * absolute time (rather than a relative time) at which the calling task should 
 * unblock.
 *
 * @param xTicksToDelay The amount of time, in tick periods, that
 * the calling task should block.
 *
 * Example usage:

 void vTaskFunction( void * pvParameters )
 {
 void vTaskFunction( void * pvParameters )
 {
 // Block for 500ms.
 const portTickType xDelay = 500 / portTICK_RATE_MS;

     for( ;; )
     {
         // Simply toggle the LED every 500ms, blocking between each toggle.
         vToggleLED();
         vTaskDelay( xDelay );
     }
 }

 * \defgroup vTaskDelay vTaskDelay
 * \ingroup TaskCtrl
 */
void vTaskDelay( portTickType xTicksToDelay );
/******************************************************************************/
/**
 * task. h
 * <pre>void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );</pre>
 *
 * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available.
 * See the configuration section for more information.
 *
 * Delay a task until a specified time.  This function can be used by cyclical
 * tasks to ensure a constant execution frequency.
 *
 * This function differs from vTaskDelay () in one important aspect:  vTaskDelay () will
 * cause a task to block for the specified number of ticks from the time vTaskDelay () is
 * called.  It is therefore difficult to use vTaskDelay () by itself to generate a fixed
 * execution frequency as the time between a task starting to execute and that task
 * calling vTaskDelay () may not be fixed [the task may take a different path though the
 * code between calls, or may get interrupted or preempted a different number of times
 * each time it executes].
 *
 * Whereas vTaskDelay () specifies a wake time relative to the time at which the function
 * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to
 * unblock.
 *
 * The constant portTICK_RATE_MS can be used to calculate real time from the tick
 * rate - with the resolution of one tick period.
 *
 * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the
 * task was last unblocked.  The variable must be initialised with the current time
 * prior to its first use (see the example below).  Following this the variable is
 * automatically updated within vTaskDelayUntil ().
 *
 * @param xTimeIncrement The cycle time period.  The task will be unblocked at
 * time *pxPreviousWakeTime + xTimeIncrement.  Calling vTaskDelayUntil with the
 * same xTimeIncrement parameter value will cause the task to execute with

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡免费视频| 久久精品国产亚洲a| 日韩专区中文字幕一区二区| 国产麻豆成人传媒免费观看| 色综合天天做天天爱| 久久综合九色综合久久久精品综合| 亚洲欧美一区二区三区极速播放 | 国产成人精品免费视频网站| 日韩av电影免费观看高清完整版在线观看| 狠狠久久亚洲欧美| 精品少妇一区二区三区日产乱码 | 午夜在线电影亚洲一区| 欧美性生活久久| 亚洲综合在线五月| 欧美午夜精品电影| 九色综合国产一区二区三区| 欧美精品一区二区三区在线播放| 国产一区欧美日韩| 国产精品久久久久久户外露出 | 精品一二三四区| 国产精品久久久久久久久果冻传媒| 国产精品影视在线| 国产精品蜜臀av| 欧美午夜一区二区三区| 日本不卡一区二区三区 | 久久先锋影音av鲁色资源| 成人高清免费观看| 日本三级韩国三级欧美三级| 日精品一区二区三区| 丁香激情综合五月| 中文字幕的久久| 91精品麻豆日日躁夜夜躁| 久久99久久99| 亚洲精选免费视频| 日韩欧美国产一二三区| 成人免费高清在线| 日韩黄色一级片| 亚洲三级在线看| 久久亚洲精品小早川怜子| 在线观看日韩av先锋影音电影院| 精品在线观看免费| 日本不卡在线视频| 亚洲三级电影全部在线观看高清| 日韩精品一区二区三区swag| 欧洲视频一区二区| av不卡在线观看| 国产成人在线电影| 亚洲成人激情综合网| 最新不卡av在线| 中文欧美字幕免费| 日韩精品专区在线影院重磅| 欧美视频在线观看一区二区| 国产盗摄女厕一区二区三区| 老司机精品视频线观看86| 亚洲va在线va天堂| 亚洲国产另类精品专区| 亚洲午夜久久久久久久久电影院| 中文字幕一区二区三区在线播放 | 久久久久亚洲蜜桃| 精品成人在线观看| 久久久精品综合| 久久毛片高清国产| 欧美激情一区二区三区四区| 国产精品久久久久桃色tv| 亚洲精品福利视频网站| 亚洲一线二线三线久久久| 亚洲韩国精品一区| 麻豆成人在线观看| 国产suv精品一区二区883| 色综合天天综合网国产成人综合天 | 日韩欧美国产wwwww| 国产午夜久久久久| 午夜影院在线观看欧美| 国产一区三区三区| 91久久奴性调教| 欧美r级在线观看| 中文字幕第一区二区| 亚洲香肠在线观看| 国产精品1区二区.| 欧美老肥妇做.爰bbww| 中文字幕av一区 二区| 性感美女久久精品| 成人国产精品免费网站| 日韩欧美一二三| 夜夜嗨av一区二区三区四季av | 国产精品国模大尺度视频| 日韩av电影免费观看高清完整版| 成人va在线观看| 精品国产免费人成在线观看| 亚洲一级二级三级| 福利电影一区二区三区| 日韩你懂的在线播放| 亚洲国产一二三| 91久久精品日日躁夜夜躁欧美| 精品久久久三级丝袜| 视频一区国产视频| 欧美撒尿777hd撒尿| 国产精品免费久久| 国产一区欧美二区| 久久夜色精品国产欧美乱极品| 蜜桃视频一区二区| 欧美精品久久天天躁| 丝瓜av网站精品一区二区| 欧美午夜影院一区| 日韩和欧美一区二区| 欧美一区二区三区男人的天堂| 偷偷要91色婷婷| 精品国产一区久久| 国产精品1区二区.| 国产精品丝袜在线| 色综合一区二区三区| 一级日本不卡的影视| 欧美精三区欧美精三区| 日韩二区三区四区| 精品国产乱码91久久久久久网站| 经典三级视频一区| 国产精品久久久久久福利一牛影视| 国产91清纯白嫩初高中在线观看| 久久精品夜色噜噜亚洲aⅴ| 99久久精品国产网站| 亚洲另类在线视频| 日韩欧美成人一区| 91麻豆福利精品推荐| 国产精品系列在线播放| 中文字幕色av一区二区三区| 欧洲精品在线观看| 国产一区二区三区久久久| 一区二区三区在线观看视频| 日韩欧美在线一区二区三区| 欧美在线观看视频一区二区三区| 在线观看视频一区| 亚洲一卡二卡三卡四卡无卡久久 | 日韩一区二区三区免费观看| 风流少妇一区二区| 天堂一区二区在线| 亚洲日本va在线观看| xvideos.蜜桃一区二区| 欧美日韩精品一区二区在线播放| 国产一区不卡精品| 蜜桃一区二区三区在线| 亚洲一区二区av电影| 亚洲三级在线看| 中文字幕视频一区| 欧美激情一区二区在线| 久久色成人在线| 欧美成人欧美edvon| 日韩视频不卡中文| 91精品国产高清一区二区三区| 91免费版pro下载短视频| 国产福利一区二区三区在线视频| 婷婷六月综合亚洲| 国产精品国产三级国产a| www国产亚洲精品久久麻豆| 欧美三级电影在线看| 99国产精品久久久久久久久久久| 九九久久精品视频| 亚洲自拍偷拍综合| 亚洲色图欧洲色图| 国产精品久久久久久久久久免费看 | 国产精品美女久久久久久久| 99久久婷婷国产精品综合| 粉嫩13p一区二区三区| 激情文学综合丁香| 久草在线在线精品观看| 蜜臀精品久久久久久蜜臀| 亚洲国产精品久久一线不卡| 一区二区三区精品视频| 国产精品另类一区| 亚洲男人的天堂av| 亚洲国产精品久久不卡毛片 | 欧美大片拔萝卜| 精品国产一区二区三区av性色| 26uuu成人网一区二区三区| 91精品国产91久久久久久最新毛片| 91超碰这里只有精品国产| 色综合久久88色综合天天6| 欧美性色黄大片手机版| 日韩一区二区三区视频在线观看| 久久综合网色—综合色88| 精品日产卡一卡二卡麻豆| 久久免费精品国产久精品久久久久| 中文av字幕一区| 日韩精品高清不卡| 成人性生交大片免费看视频在线| 色综合久久88色综合天天6| 欧美日韩一区不卡| 国产精品久久久久一区 | 色一区在线观看| 欧美精品一区二区三区高清aⅴ| 国产偷v国产偷v亚洲高清| 亚洲亚洲人成综合网络| 国产成人精品午夜视频免费| 欧洲一区在线电影| 国产精品欧美一级免费| 一二三区精品福利视频| 国产99久久精品| 在线播放中文字幕一区| 亚洲精品免费视频| 99久久综合精品| 中文字幕一区二区在线播放|