\r
This file is part of the FreeRTOS.org distribution.\r
\r
- FreeRTOS.org is free software; you can redistribute it and/or modify it \r
+ FreeRTOS.org is free software; you can redistribute it and/or modify it\r
under the terms of the GNU General Public License (version 2) as published\r
by the Free Software Foundation and modified by the FreeRTOS exception.\r
\r
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT\r
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or \r
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for \r
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
more details.\r
\r
- You should have received a copy of the GNU General Public License along \r
- with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59 \r
+ You should have received a copy of the GNU General Public License along\r
+ with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59\r
Temple Place, Suite 330, Boston, MA 02111-1307 USA.\r
\r
- A special exception to the GPL is included to allow you to distribute a \r
+ A special exception to the GPL is included to allow you to distribute a\r
combined work that includes FreeRTOS.org without being obliged to provide\r
the source code for any proprietary components. See the licensing section\r
of http://www.FreeRTOS.org for full details.\r
* MACROS AND DEFINITIONS\r
*----------------------------------------------------------*/\r
\r
-#define tskKERNEL_VERSION_NUMBER "V5.1.0"\r
+#define tskKERNEL_VERSION_NUMBER "V5.2.0"\r
\r
/**\r
* task. h\r
{\r
static unsigned char ucParameterToPass;\r
xTaskHandle xHandle;\r
- \r
+\r
// Create the task, storing the handle. Note that the passed parameter ucParameterToPass\r
// must exist for the lifetime of the task, so in this case is declared static. If it was just an\r
// an automatic stack variable it might no longer exist, or at least have been corrupted, by the time\r
// the new time attempts to access it.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );\r
- \r
+\r
// Use the handle to delete the task.\r
vTaskDelete( xHandle );\r
}\r
void vOtherFunction( void )\r
{\r
xTaskHandle xHandle;\r
- \r
+\r
// Create the task, storing the handle.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
- \r
+\r
// Use the handle to delete the task.\r
vTaskDelete( xHandle );\r
}\r
*\r
*\r
* vTaskDelay() specifies a time at which the task wishes to unblock relative to\r
- * the time at which vTaskDelay() is called. For example, specifying a block \r
- * period of 100 ticks will cause the task to unblock 100 ticks after \r
+ * the time at which vTaskDelay() is called. For example, specifying a block\r
+ * period of 100 ticks will cause the task to unblock 100 ticks after\r
* vTaskDelay() is called. vTaskDelay() does not therefore provide a good method\r
- * of controlling the frequency of a cyclical task as the path taken through the \r
- * code, as well as other task and interrupt activity, will effect the frequency \r
- * at which vTaskDelay() gets called and therefore the time at which the task \r
- * next executes. See vTaskDelayUntil() for an alternative API function designed \r
- * to facilitate fixed frequency execution. It does this by specifying an \r
- * absolute time (rather than a relative time) at which the calling task should \r
+ * of controlling the frequency of a cyclical task as the path taken through the\r
+ * code, as well as other task and interrupt activity, will effect the frequency\r
+ * at which vTaskDelay() gets called and therefore the time at which the task\r
+ * next executes. See vTaskDelayUntil() for an alternative API function designed\r
+ * to facilitate fixed frequency execution. It does this by specifying an\r
+ * absolute time (rather than a relative time) at which the calling task should\r
* unblock.\r
*\r
* @param xTicksToDelay The amount of time, in tick periods, that\r
void vAFunction( void )\r
{\r
xTaskHandle xHandle;\r
- \r
+\r
// Create a task, storing the handle.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
- \r
+\r
// ...\r
\r
// Use the handle to obtain the priority of the created task.\r
void vAFunction( void )\r
{\r
xTaskHandle xHandle;\r
- \r
+\r
// Create a task, storing the handle.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
\r
void vAFunction( void )\r
{\r
xTaskHandle xHandle;\r
- \r
+\r
// Create a task, storing the handle.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
- \r
+\r
// ...\r
\r
// Use the handle to suspend the created task.\r
vTaskSuspend( xHandle );\r
\r
// ...\r
- \r
+\r
// The created task will not run during this period, unless\r
// another task calls vTaskResume( xHandle ).\r
- \r
+\r
//...\r
- \r
+\r
\r
// Suspend ourselves.\r
vTaskSuspend( NULL );\r
void vAFunction( void )\r
{\r
xTaskHandle xHandle;\r
- \r
+\r
// Create a task, storing the handle.\r
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
- \r
+\r
// ...\r
\r
// Use the handle to suspend the created task.\r
vTaskSuspend( xHandle );\r
\r
// ...\r
- \r
+\r
// The created task will not run during this period, unless\r
// another task calls vTaskResume( xHandle ).\r
- \r
+\r
//...\r
- \r
+\r
\r
// Resume the suspended task ourselves.\r
vTaskResume( xHandle );\r
* task. h\r
* <pre>void xTaskResumeFromISR( xTaskHandle pxTaskToResume );</pre>\r
*\r
- * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be \r
+ * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be\r
* available. See the configuration section for more information.\r
*\r
* An implementation of vTaskResume() that can be called from within an ISR.\r
* without risk of being swapped out until a call to xTaskResumeAll () has been\r
* made.\r
*\r
- * API functions that have the potential to cause a context switch (for example, \r
- * vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler \r
+ * API functions that have the potential to cause a context switch (for example,\r
+ * vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler\r
* is suspended.\r
*\r
* Example usage:\r
* task. h\r
* <PRE>void vTaskList( portCHAR *pcWriteBuffer );</PRE>\r
*\r
- * configUSE_TRACE_FACILITY must be defined as 1 for this function to be \r
+ * configUSE_TRACE_FACILITY must be defined as 1 for this function to be\r
* available. See the configuration section for more information.\r
*\r
* NOTE: This function will disable interrupts for its duration. It is\r
*\r
* configGENERATE_RUN_TIME_STATS must be defined as 1 for this function\r
* to be available. The application must also then provide definitions\r
- * for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and \r
+ * for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and\r
* portGET_RUN_TIME_COUNTER_VALUE to configure a peripheral timer/counter\r
- * and return the timers current count value respectively. A 1uS timer\r
- * frequency is recommended for a 32bit peripheral counter - this will\r
- * allow the statistics to be gathered over the first (approximately) 70\r
- * minutes of execution.\r
+ * and return the timers current count value respectively. The counter\r
+ * should be at least 10 times the frequency of the tick count.\r
*\r
* NOTE: This function will disable interrupts for its duration. It is\r
* not intended for normal application runtime use but as a debug aid.\r
* task into a buffer, both as an absolute count value and as a percentage\r
* of the total system execution time.\r
*\r
- * @param pcWriteBuffer A buffer into which the execution times will be \r
- * written, in ascii form. This buffer is assumed to be large enough to \r
- * contain the generated report. Approximately 40 bytes per task should \r
+ * @param pcWriteBuffer A buffer into which the execution times will be\r
+ * written, in ascii form. This buffer is assumed to be large enough to\r
+ * contain the generated report. Approximately 40 bytes per task should\r
* be sufficient.\r
*\r
* \page vTaskGetRunTimeStats vTaskGetRunTimeStats\r