I think the implementations is a great idea, for those like me who like to grind gears in my head to get everything I can out of the RAM space available.
I’m seeing something incomplete however in the documentation.
FreeRTOS API –> Co-Routine Specific –> vCoRoutineSchedule
I see short explanation that doesn’t say much about calling vCoRoutineSchedule(), so I hoped to see better how to call the function in the example below that. The problem is that the example does not even show this function even being called!
I found it later in Fundamentals section, but I think here it should at least show ApplicationIdleHook() code and also mention in the description that it is meant to be called repeatedly (unlike the taskStartScheduler).
The actual page I’m talking about:
Overall this way of co-routines sharing the same stack is a great idea. It looks kinda like each one essentially exits (freeing stack space) when blocking so that another can start and use the same stack space. Powerful yet simpler.
LOL, I have pasted the wrong sample code into the page. This was the code for the function that creates co-routines.
Fixed now – thanks for pointing this out.
Looks good, thank you :-)