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

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

?? task.h

?? 一個開源的Modbus協(xié)議棧
?? H
?? 第 1 頁 / 共 3 頁
字號:
 void vAFunction( void )

 {

     // Create at least one task before starting the kernel.

     xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );



     // Start the real time kernel with preemption.

     vTaskStartScheduler ();



     // Will only get here when the vTaskCode () task has called

     // vTaskEndScheduler ().  When we get here we are back to single task

     // execution.

 }

   </pre>

 *

 * \defgroup vTaskEndScheduler vTaskEndScheduler

 * \ingroup SchedulerControl

 */

void vTaskEndScheduler( void );



/**

 * task. h

 * <pre>void vTaskSuspendAll( void );</pre>

 *

 * Suspends all real time kernel activity while keeping interrupts (including the

 * kernel tick) enabled.

 *

 * After calling vTaskSuspendAll () the calling task will continue to execute

 * without risk of being swapped out until a call to xTaskResumeAll () has been

 * made.

 *

 * Example usage:

   <pre>

 void vTask1( void * pvParameters )

 {

     for( ;; )

     {

         // Task code goes here.



         // ...



         // At some point the task wants to perform a long operation during

         // which it does not want to get swapped out.  It cannot use

         // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the

         // operation may cause interrupts to be missed - including the

         // ticks.



         // Prevent the real time kernel swapping out the task.

         vTaskSuspendAll ();



         // Perform the operation here.  There is no need to use critical

         // sections as we have all the microcontroller processing time.

         // During this time interrupts will still operate and the kernel

         // tick count will be maintained.



         // ...



         // The operation is complete.  Restart the kernel.

         xTaskResumeAll ();

     }

 }

   </pre>

 * \defgroup vTaskSuspendAll vTaskSuspendAll

 * \ingroup SchedulerControl

 */

void vTaskSuspendAll( void );



/**

 * task. h

 * <pre>portCHAR xTaskResumeAll( void );</pre>

 *

 * Resumes real time kernel activity following a call to vTaskSuspendAll ().

 * After a call to vTaskSuspendAll () the kernel will take control of which

 * task is executing at any time.

 *

 * @return If resuming the scheduler caused a context switch then pdTRUE is

 *         returned, otherwise pdFALSE is returned.

 *

 * Example usage:

   <pre>

 void vTask1( void * pvParameters )

 {

     for( ;; )

     {

         // Task code goes here.



         // ...



         // At some point the task wants to perform a long operation during

         // which it does not want to get swapped out.  It cannot use

         // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the

         // operation may cause interrupts to be missed - including the

         // ticks.



         // Prevent the real time kernel swapping out the task.

         vTaskSuspendAll ();



         // Perform the operation here.  There is no need to use critical

         // sections as we have all the microcontroller processing time.

         // During this time interrupts will still operate and the real

         // time kernel tick count will be maintained.



         // ...



         // The operation is complete.  Restart the kernel.  We want to force

         // a context switch - but there is no point if resuming the scheduler

         // caused a context switch already.

         if( !xTaskResumeAll () )

         {

              taskYIELD ();

         }

     }

 }

   </pre>

 * \defgroup xTaskResumeAll xTaskResumeAll

 * \ingroup SchedulerControl

 */

signed portBASE_TYPE xTaskResumeAll( void );





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

 * TASK UTILITIES

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



/**

 * task. h

 * <PRE>volatile portTickType xTaskGetTickCount( void );</PRE>

 *

 * @return The count of ticks since vTaskStartScheduler was called.

 *

 * \page xTaskGetTickCount xTaskGetTickCount

 * \ingroup TaskUtils

 */

portTickType xTaskGetTickCount( void );



/**

 * task. h

 * <PRE>unsigned portSHORT uxTaskGetNumberOfTasks( void );</PRE>

 *

 * @return The number of tasks that the real time kernel is currently managing.

 * This includes all ready, blocked and suspended tasks.  A task that

 * has been deleted but not yet freed by the idle task will also be

 * included in the count.

 *

 * \page uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks

 * \ingroup TaskUtils

 */

unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void );



/**

 * task. h

 * <PRE>void vTaskList( portCHAR *pcWriteBuffer );</PRE>

 *

 * configUSE_TRACE_FACILITY, INCLUDE_vTaskDelete and INCLUDE_vTaskSuspend

 * must all be defined as 1 for this function to be available.

 * See the configuration section for more information.

 *

 * NOTE: This function will disable interrupts for its duration.  It is

 * not intended for normal application runtime use but as a debug aid.

 *

 * Lists all the current tasks, along with their current state and stack

 * usage high water mark.

 *

 * Tasks are reported as blocked ('B'), ready ('R'), deleted ('D') or

 * suspended ('S').

 *

 * @param pcWriteBuffer A buffer into which the above mentioned details

 * will be written, in ascii form.  This buffer is assumed to be large

 * enough to contain the generated report.  Approximately 40 bytes per

 * task should be sufficient.

 *

 * \page vTaskList vTaskList

 * \ingroup TaskUtils

 */

void vTaskList( signed portCHAR *pcWriteBuffer );



/**

 * task. h

 * <PRE>void vTaskStartTrace( portCHAR * pcBuffer, unsigned portBASE_TYPE uxBufferSize );</PRE>

 *

 * Starts a real time kernel activity trace.  The trace logs the identity of

 * which task is running when.

 *

 * The trace file is stored in binary format.  A separate DOS utility called

 * convtrce.exe is used to convert this into a tab delimited text file which

 * can be viewed and plotted in a spread sheet.

 *

 * @param pcBuffer The buffer into which the trace will be written.

 *

 * @param ulBufferSize The size of pcBuffer in bytes.  The trace will continue

 * until either the buffer in full, or ulTaskEndTrace () is called.

 *

 * \page vTaskStartTrace vTaskStartTrace

 * \ingroup TaskUtils

 */

void vTaskStartTrace( signed portCHAR * pcBuffer, unsigned portLONG ulBufferSize );



/**

 * task. h

 * <PRE>unsigned portLONG ulTaskEndTrace( void );</PRE>

 *

 * Stops a kernel activity trace.  See vTaskStartTrace ().

 *

 * @return The number of bytes that have been written into the trace buffer.

 *

 * \page usTaskEndTrace usTaskEndTrace

 * \ingroup TaskUtils

 */

unsigned portLONG ulTaskEndTrace( void );





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

 * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES

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



/*

 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS ONLY

 * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS

 * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

 *

 * Called from the real time kernel tick (either preemptive or cooperative),

 * this increments the tick count and checks if any tasks that are blocked

 * for a finite period required removing from a blocked list and placing on

 * a ready list.

 */

inline void vTaskIncrementTick( void );



/*

 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN

 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

 *

 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.

 *

 * Removes the calling task from the ready list and places it both

 * on the list of tasks waiting for a particular event, and the

 * list of delayed tasks.  The task will be removed from both lists

 * and replaced on the ready list should either the event occur (and

 * there be no higher priority tasks waiting on the same event) or

 * the delay period expires.

 *

 * @param pxEventList The list containing tasks that are blocked waiting

 * for the event to occur.

 *

 * @param xTicksToWait The maximum amount of time that the task should wait

 * for the event to occur.  This is specified in kernel ticks,the constant

 * portTICK_RATE_MS can be used to convert kernel ticks into a real time

 * period.

 */

void vTaskPlaceOnEventList( xList *pxEventList, portTickType xTicksToWait );



/*

 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN

 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

 *

 * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.

 *

 * Removes a task from both the specified event list and the list of blocked

 * tasks, and places it on a ready queue.

 *

 * xTaskRemoveFromEventList () will be called if either an event occurs to

 * unblock a task, or the block timeout period expires.

 *

 * @return pdTRUE if the task being removed has a higher priority than the task

 * making the call, otherwise pdFALSE.

 */

signed portBASE_TYPE xTaskRemoveFromEventList( const xList *pxEventList );



/*

 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS AN

 * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

 *

 * INCLUDE_vTaskCleanUpResources and INCLUDE_vTaskSuspend must be defined as 1

 * for this function to be available.

 * See the configuration section for more information.

 *

 * Empties the ready and delayed queues of task control blocks, freeing the

 * memory allocated for the task control block and task stacks as it goes.

 */

void vTaskCleanUpResources( void );



/*

 * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE.  IT IS ONLY

 * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS

 * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.

 *

 * Sets the pointer to the current TCB to the TCB of the highest priority task

 * that is ready to run.

 */

inline void vTaskSwitchContext( void );



/*

 * Return the handle of the calling task.

 */

xTaskHandle xTaskGetCurrentTaskHandle( void );



/*

 * Capture the current time status for future reference.

 */

void vTaskSetTimeOutState( xTimeOutType *pxTimeOut );



/*

 * Compare the time status now with that previously captured to see if the

 * timeout has expired.

 */

portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType *pxTimeOut, portTickType *pxTicksToWait );



/*

 * Shortcut used by the queue implementation to prevent unnecessary call to

 * taskYIELD();

 */

void vTaskMissedYield( void );



#endif /* TASK_H */







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品精品国产色婷婷| 久久99热99| 视频在线观看国产精品| 精品国产免费视频| 51精品秘密在线观看| 欧美日韩国产免费| 色屁屁一区二区| 国产不卡视频在线播放| 久久精品99国产精品| 美脚の诱脚舐め脚责91| 国产一区二区三区久久久| 激情久久五月天| 国产福利91精品| 91啪亚洲精品| 在线视频国内自拍亚洲视频| 在线观看视频一区二区欧美日韩| 欧美丝袜自拍制服另类| 91精品国产综合久久小美女| 欧美www视频| 久久久99精品免费观看| 中文字幕欧美日韩一区| 一区二区三区在线看| 亚洲第一主播视频| 久久不见久久见免费视频1| 国产福利不卡视频| 91久久精品一区二区| 91精选在线观看| 国产精品视频一二三区| 亚洲一区二区三区精品在线| 麻豆成人久久精品二区三区小说| 国产精品系列在线观看| 在线一区二区三区| 日韩欧美123| 亚洲视频每日更新| 久久se这里有精品| 色婷婷狠狠综合| 日韩欧美专区在线| 国产精品久久久久久福利一牛影视 | 欧美三级乱人伦电影| 欧美xxxxx牲另类人与| 国产精品污www在线观看| 亚洲第一综合色| 成人av在线资源网| 日韩一区二区麻豆国产| 亚洲人成人一区二区在线观看| 五月天欧美精品| av在线不卡网| 精品电影一区二区三区| 亚洲午夜免费电影| 成人av网在线| 精品成人私密视频| 天涯成人国产亚洲精品一区av| 国产成人免费视频| 日韩一卡二卡三卡四卡| 亚洲黄色性网站| 高清国产一区二区三区| 精品伦理精品一区| 日本不卡123| 欧美在线三级电影| 国产精品久久777777| 国产精一区二区三区| 日韩欧美电影在线| 美女视频一区在线观看| 欧美日韩国产精品成人| 一区二区三区欧美| 99精品欧美一区二区蜜桃免费| 欧美不卡在线视频| 日本不卡视频一二三区| 欧美性色综合网| 一区二区三区四区五区视频在线观看| 国产精品综合在线视频| 欧美精品一区二区三区蜜桃视频| 日韩一区欧美二区| 91精品国产91久久久久久最新毛片| 一区二区三区在线观看视频| 91免费精品国自产拍在线不卡| 国产精品免费aⅴ片在线观看| 国产一区在线视频| 国产亚洲欧美日韩俺去了| 国产精品一二三四区| 中文字幕av一区二区三区高| 东方aⅴ免费观看久久av| 国产精品水嫩水嫩| 在线视频一区二区免费| 亚洲成a天堂v人片| 91麻豆精品国产自产在线| 日本在线不卡视频一二三区| 欧美精品日日鲁夜夜添| 麻豆一区二区三区| 国产日韩欧美精品综合| 99视频精品在线| 一级做a爱片久久| 91精品国产一区二区人妖| 精品一区二区三区蜜桃| 久久婷婷国产综合精品青草 | 久久久久高清精品| 国产aⅴ精品一区二区三区色成熟| 久久久亚洲午夜电影| 一区二区成人在线观看| 韩日精品视频一区| 26uuu国产电影一区二区| 国产老妇另类xxxxx| 国产精品久久久久婷婷| caoporn国产一区二区| 国产精品每日更新| 91免费观看视频| 亚洲综合色丁香婷婷六月图片| 经典一区二区三区| 亚洲男同1069视频| 欧美日韩日本视频| 奇米一区二区三区av| 日韩女优毛片在线| 春色校园综合激情亚洲| 久久久亚洲国产美女国产盗摄| 成人免费观看男女羞羞视频| 亚洲人成影院在线观看| 欧美性欧美巨大黑白大战| 秋霞成人午夜伦在线观看| 欧美xxxx在线观看| av亚洲精华国产精华精| 玉足女爽爽91| 日韩免费观看高清完整版在线观看| 国产精品自拍一区| 亚洲人成影院在线观看| 日韩欧美国产综合一区| 在线观看成人小视频| 久久精品国产色蜜蜜麻豆| 国产精品国产三级国产三级人妇| 欧美性色黄大片手机版| 蜜桃视频在线一区| 亚洲一区二区三区视频在线播放| 日韩一区二区三区四区| 成人性生交大片| 婷婷久久综合九色综合伊人色| 26uuu国产电影一区二区| 欧美视频在线一区二区三区 | 亚洲第一福利一区| 国产欧美1区2区3区| 欧美一区二区三区视频免费 | 久久久99精品久久| 欧美精选一区二区| 国产99久久久国产精品潘金| 天堂成人免费av电影一区| 精品三级在线观看| 日韩一级黄色片| 一本到高清视频免费精品| 九九热在线视频观看这里只有精品| 国产精品久久久久久久久免费相片| 欧美一区二区福利视频| 99久久久国产精品| 91农村精品一区二区在线| 久久99国产精品尤物| 丝袜亚洲另类丝袜在线| 日韩理论电影院| 欧美色精品在线视频| 欧美日韩亚洲综合一区二区三区| 成人午夜视频福利| 经典三级在线一区| 老司机午夜精品| 午夜精品一区二区三区电影天堂 | 欧美艳星brazzers| 99久久精品国产导航| 激情综合网激情| 蜜臀av亚洲一区中文字幕| 亚洲欧洲国产专区| 亚洲免费三区一区二区| 国产精品电影一区二区| 久久久精品中文字幕麻豆发布| 欧美一区二区三区播放老司机| 在线观看日韩电影| 国精产品一区一区三区mba视频 | 亚洲日本韩国一区| 中文字幕一区二区三区四区不卡| 日韩一区在线看| 国产精品美女久久久久aⅴ | 亚洲成av人综合在线观看| 日韩精品亚洲一区| 天堂午夜影视日韩欧美一区二区| 国产中文字幕一区| 全国精品久久少妇| 麻豆成人av在线| 亚洲一区二区三区四区在线免费观看 | 日韩电影在线免费看| 精品欧美一区二区在线观看| 91麻豆免费看| 国产精品素人视频| 亚洲国产三级在线| 国产激情91久久精品导航| 国精品**一区二区三区在线蜜桃| 国产精品99久久久久久久女警 | 精品一区二区成人精品| a美女胸又www黄视频久久| 色噜噜久久综合| xf在线a精品一区二区视频网站| 亚洲精品一区在线观看| 综合久久久久久| 日本成人在线网站| 99riav一区二区三区| 日韩女优视频免费观看| 中文字幕日本不卡|