This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

FreeRTOS or Zephyr?

Hi,

My projects with Nordic chips thus far have been pretty simple, but now I would like to use an RTOS. My question is, do I use the FreeRTOS available in nRF SDK, or move over to Zephyr? Which has better support, and which will Nordic focus its support on in the future? My focus is on BLE applications.

Jacques

  • Hi,

     

    My projects with Nordic chips thus far have been pretty simple, but now I would like to use an RTOS.

    Don't choose an RTOS just because it seems to be trendy.

    Choose an RTOS where it makes sense to do so and where it reliefs your development process, such as larger applications where several timers, queues, and other things are needed.

     

    As for FreeRTOS vs zephyr, I'd recommend that you try out both solutions to which you prefer. There's no right or wrong choice in that sense.

    We maintain a freertos port in the nRF5 SDK where we provide support, but the zephyr project is a standalone project and its recommended that you get support through their channels.

    We are developing nRF connect SDK (ncs for short) on top of a zephyr fork, but this one only has official support for nRF9160 at the time of writing this post. 

     

    Kind regards,

    Håkon

  • Will any component of the ncs run on target (like for Thingy:91)? In case, how might that influence if I were to write code on the Thingy:91 and use the latest build of Zephyr?

    I try to discuss this at [1].

    [1] My IoT box(?) - Disclaimer: no money, ads, gifts are anything like that with any of my blog notes. Only fun and expenses

  • Hi,

     

    Aclassifier said:
    Will any component of the ncs run on target (like for Thingy:91)? In case, how might that influence if I were to write code on the Thingy:91 and use the latest build of Zephyr?

    Since ncs holds many components, some depending on LTE/NB-IoT and others depending on bluetooth, there will be modules that only work on nRF91 and others that only work on nRF5-series devices.

    We have our fork of zephyr here: https://github.com/NordicPlayground/fw-nrfconnect-zephyr

    This one we try to keep as up-to-date with the upstream master branch as possible, but we have small modifications to it (like accommodating our folder structure, to link in "nrf" repo), but other than that; its pretty much equal.

    For the thingy:91 support, it will first go into the "nrf" repo, before turning up in the upstream zephyr-rtos repo. We develop on our forks, then send the pull-requests to add new boards etc. upstream afterwards:

    https://github.com/NordicPlayground/fw-nrfconnect-nrf

     

    Kind regards,

    Håkon

  • So, if I were to write my own code with several threads sending over a mailbox to a server (that would use or even not use some special function added by Nordic), would I import my own instance of Zephyr (from the upstream master, I assume) or would my code also use the code linked in (from Nordic's fork)?

  • You should pull the git repo's described in the getting started assistant (available through nRF connect for desktop)

Related