I would see Zephyr as a good RTOS option but flashing is problematic. For example nRF52840 has a USB port but still it cannot be used for flashing.
“Flashing Zephyr onto the nrf52840_pca10059
board requires an external J-Link programmer. The programmer is attached to the SWD header on the back side of the board.”
https://docs.zephyrproject.org/latest/boards/arm/nrf52840_pca10059/doc/nrf52840_pca10059.html
Ruuvi Community member @twixx (on Slack, not sure if you’re on forum?) has created board files to support RuuviTag and AFAIK those are in progress to be merged to Zephyr master:
Any ideas how flashing could be made easier? Needing to use an external debugger (RuuviTag DevKit for example) makes it a bit too hard to start hacking with it… Also, Zephyr support should be considered now when we’re designing RuuviTracker (nRF52840 + nRF91) which will have a USB connector onboard. Too bad that nRF52840 does not have a HW USB bootloader in it