RTOS and C++11 support

I am very new to Particle Photon boards and I wanted to know few things which I couldn’t find it out on “Documentation” page.

  1. The link https://freeradicallabs.com/products/particle-photon-w-headers?variant=18586205127 says it supports FreeRTOS, so I would like to know whether the user needs to download and include all the required libraries or it is inbuilt with the Particle Desktop IDE? If so what version of FreeRTOS it is used?

  2. I have a project which was written using C++11 standard which works on both Windows and Raspberry Pi. Is it possible to use the same code (provided I have included all the required C++ libraries and handled all delays, threads, mutex, etc)

  3. Is it possible to build the code in any other compiler and generate .bin file? Like VS2015, Arduino IDE, etc. Also is there a way to flash without using the Desktop IDE


Let me ping someone that might be able to help, @rickkas7 are you able to assist?


Yeah, what he said. I have specific RTOS needs for my project - where do I begin learning about this instance? Or do I just go read FreeRTOS?


I advise checking out the particle firmware repository @ https://github.com/spark/firmware. It features extensive documentation about building every part of the firmware stack. Also FreeRTOS is bundled somewhere in there as well.
For example You can link your application against the particle firmware build by soft linking your program source folder into https://github.com/spark/firmware/tree/develop/user/applications directory. For compilation you can just install the arm embedded toolchain @ https://launchpad.net/gcc-arm-embedded. The build system also has build in routines for flashing a particle device over USB with dfu-util.

Example command to compile a user application and flash it onto a photon:

demo@demopc:~/particle-firmware/main$ PLATFORM=photon APP=tinker make program-dfu