fearless_fool wrote: ↑Sat Jul 11, 2020 10:10 pm
Are you are saying that FreeRTOS is permanently baked into every ESP32 application?
Any default one that uses ESP-IDF: yes.
That would be a pity -- as good as FreeRTOS is, the mulib framework I'd like to port is extremely efficient for low-power applications -- it's inherently tick-less and its single threaded design means that task switching is very fast (i.e. it's just a function call).
I'm actively porting mulib to other platforms, and it would be a shame to omit the ESP32 family. But if there's really no way to dig out FreeRTOS, then I'd agree with you.
Well, depending on if you just want to port your lib as an exercise or if you want it to be actually useful, technically the bootloader that the ESP32 uses is a FreeRTOS-less application; you could try to use that as a starting point. However, you likely won't ever be able to use WiFi or BT/BTLE, as although those drivers aren't tied 'hard' to FreeRTOS, they do require some sort of pre-emptive threading to work. I'm also not sure how you would use multiple cores on a single-threaded design.
(Also, note that you're not working on a simple microcontroller here - power usage is governed by a lot more than just what the CPU is doing. Even though your solution doubtlessly has power advantages over a full RTOS on simpler controllers, I wouldn't be surprised if on the ESP32 the advantage would fall into the noise floor because of everything else going on.)