Page 1 of 1
Development Framework
Posted: Mon Oct 02, 2017 7:59 am
by kartikkman
What are the advantages of using FreeRTOS environment over Arduino Wrapped Framework ?
Re: Development Framework
Posted: Mon Oct 02, 2017 4:33 pm
by kolban
The Arduino framework provides an API that is designed to be present on multiple environments. They theory being that if you write an Arduino sketch, it has a hope of running on a wide variety of boards. The Arduino API is a "common" API across multiple platforms. Each platform provides its own native implementation of the lower level Arduino APIs.
The FreeRTOS is an "operating system" that is the platform chosen by Espressif for native ESP-IDF based applications. It is the core of the ESP-IDF platform. It is used internally be ESP-IDF and is available for user applications. The Arduino libraries that are built for the ESP32 will (for the most part) leverage the underlying ESP-IDF and hence be implemented on top of some of the FreeRTOS functions.
The benefit of coding to FreeRTOS in an ESP32 environment is that you will be going through fewer levels of abstraction. This means that messages, information and data exposed by FreeRTOS become visible elsewhere in your application and can be used. What you loose coding to native FreeRTOS as compared to Arduino is that you lose some degree of portability.
My opinion is:
If you are new to programming or coming from an Arduino background and need something "quick" then Arduino is a fine environment. If what you are building is an application that you target to only run on the ESP32 then the investment in ESP-IDF will pay off.
Re: Development Framework
Posted: Mon Oct 02, 2017 6:48 pm
by kartikkman
Thank Your so much for guiding me . There is one more thing I want to ask , that is about Communication Protocols .
I watched your tutorial for using BMP180 with I2C interface & found that amazing . I am trying to do same thing with SPI Interface.
Here is the thing I want to ask :
I went to look out the library for implementing SPI , I found that good but there is lot of abstraction done in it , like all the register level stuff hidden , you just need to call functions to do all the stuff .
I wanted to ask that , as a learner for me what should be a better approach whether to write my own code for register level or just go with those functions that are already implemented .
Please guide me in context , if i plan to use other boards in future ( do they also provide such level of abstraction ) ??
Thanks again !!