This idea of using a FreeRTOS seems strange to me. Espressif SDK already provides the ability to run a certified RTOS:
http://bbs.espressif.com/viewtopic.php?t=838With ESP8266-Arduino core by igrr, the default task switcher is non-OS. The Arduino side could be thought of as the 'foreground' application and the ESP radio and protocol side could be thought of as the 'background' application. Switching is automatically between the two sides whenever the Arduino loop() function repeats - or, whenever delay(x), delay(0), or yield() is utilized.
In my experience, having the foreground and background switched automatically provides a rather smooth integration. Under a FreeRTOS implementation, all of the foreground applications in total would have to be aware of the background requirement to be petted every 50mS or less to avoid the protocol stacks going stale.
It is my opinion, that unless the user is willing to develop in the native SDK, it is best to simply write clean functions and keep the loop structure simple; thereby avoiding string of multiple pseudo-threads that all must be interrupted every 50mS or sooner.
Ray