Update FreeRTOS Version in Framework-arduinoespressif32

I am using PlatformIO in VScode to develop some code for an ESP32 board (Freematics One+). The framework is arduinoespressif32.

I tried using a recently added function (xTaskNotifyGiveIndexed) from FreeRTOS and realized it is not available. Upon checking the FreeRTOS code files, I realized the FreeRTOS version is 8.2.0. The version I need is at least 10.4 or the latest.

I have tried to Update All in PIO in VScode but I can’t figure out how to update FreeRTOS itself.

Any help is greatly appreciated. I’ve been using VScode/PIO/ESP32 for 3 months so I am very new to this environment. I apologize if this is an obvious question.

Here is a screenshot of the FreeRTOS file and Update All log:
Update All

The Arduino ESP32 core is based on Espressif’s ESP-IDF framework, and the framework contains an Espressif/ESP32 specific port of FreeRTOS. They cannot be chosen independently.

xTaskNotifyGiveIndexed() seems to be available in ESP-IDF v4.4. It’s missing in ESP-IDF v4.3.

ESP-IDF v4.4 hasn’t been released yet. The latest Arduino core (v2.0) however is already based on ESP-IDF v4.4. But it’s not yet available in PlatformIO.

There are four options:

  • Rewrite your code such that it doesn’t require xTaskNotifyGiveIndexed()
  • Wait until the Arduino core v2.0 is available in PlatformIO
  • Use the Arduino IDE with the latest Arduino ESP32 core
  • Try to make your PlatformIO project work with the Arduino ESP32 core v2.0. You can find more information about this approach in this forum.
1 Like