After reading a lot into FreeRTOS, we could actually port the existing bare SDK application to run on FreeRTOS and have the same functionality... i.e. still cooperative, no ISRs, etc... This might be a good first step to moving to an RTOS. Once the system is stable and working with the cooperative design, we could consider creating a new SDK project, maybe bare_rtos which is based on preemptive scheduling... This would require rewriting a lot of the system modules (commands, log, etc) to make sure they are reentrant.
We should port the existing code over to use FreeRTOS with the cooperative scheduling option. This would make the AMDC run the same way it does now (i.e. with fixed time slices), but would give us FreeRTOS experience.
Once we do this, we can move to a preemptive approach...
@codecubepi has been working on this and has a basic example application working in dual-core mode. See #375. The FreeRTOS codebase will be released as v2
Continuing from investigation in #48:
We should port the existing code over to use FreeRTOS with the cooperative scheduling option. This would make the AMDC run the same way it does now (i.e. with fixed time slices), but would give us FreeRTOS experience.
Once we do this, we can move to a preemptive approach...