8 ms·
We played with RIOT for a couple of months. For our current product, (and I would think a lot of IoT apps), power is king. We run on batteries, and getting bac
by travisgriggs 8y ago
We played with RIOT for a couple of months.
For our current product, (and I would think a lot of IoT apps), power is king. We run on batteries, and getting back to idle/low power states as often as possible is crucial. I've found that a lot of the embedded RTOS often have tickless modes as an "add on." We had problems getting RIOT to a happy point with that for our chip (samd21).
Like some of the other commenters, I've grown a real distaste for embedded RTOS frameworks that try to provide all kinds of layers. In order to be generic/cross platform, they always come up short in capability. The functionality that I'm looking for, is simply getting the basic threading/sync primitives to work well and right. Past that, I'm fine doing the chip IO parts myself. At the time, there was a debate on whether priority inversion was a problem RIOT should worry about or not.
After FreeRTOS, and then RIOT, I found TNEO (https://dmitryfrank.com/articles/how_i_ended_up_writing_my_own_kernel https://dmitryfrank.com/articles/how_i_ended_up_writing_my_o...). It's been a dream and rock solid for us. It does not come with a large make/build system. It's just C code. You tweak a couple of things, include one or two bits, and I was off to the races. Coupling it with Unity for testing and then writing ~200 unit tests that stressed all of its functionality was straightforward, helped me understand it even better, and gave me a high degree of confidence in its abilities. It's been super solid for us since. It does the one thing I need it to: MicroKernel for dealing with processes and related synchronization primitives.
- nbzklr 8y agoThere are a lot of realtime operatings systems out there right now, competing for a spot on the IoT hypetrain: - the mentioned RIOT OS (https://riot-os.org/ https://riot-os.org/) - FreeRTOS (https://www.freertos.org/ https://www.freertos.org/) and Amazon's version of it (https://aws.amazon.com/freertos/ https://aws.amazon.com/freertos/) - Zephyr OS (https://www.zephyrproject.org/ https://www.zephyrproject.org/) - MyNewt (https://mynewt.apache.org/ https://mynewt.apache.org/) - Mbed OS (https://os.mbed.com/ https://os.mbed.com/) and more... Makes it really hard to choose one!