A co-routine should have the following structure:
void vACoRoutineFunction( CoRoutineHandle_t xHandle,
UBaseType_t uxIndex )
crSTART( xHandle );
for( ;; )
-- Co-routine application code here. --
The type crCOROUTINE_CODE is defined as a function that returns void and takes an CoRoutineHandle_t and an index as its parameters. All functions that
implement a co-routine should be of this type (demonstrated above).
Co-routines are created by calling xCoRoutineCreate().
Points to note:
- All co-routine functions must start with a call to crSTART().
- All co-routine functions must end with a call to crEND().
- Co-routine functions should never return so are typically implemented as a continuous loop.
- Many co-routines can be created from a single co-routine function. The uxIndex parameter is provided as a means of distinguishing between such
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.