By dave | December 4, 2020

In summary, task manager supports a wide range of hardware, including nearly every official Arduino board, most ESP boards, many mbed version 5 and 6 boards with or without an RTOS. We mainly test mbed with STM32 and nrf52 hardware.

What boards does TaskManagerIO support?

Processor Platform Tested? Locking Example developer boards
AVR Arduino Fully Atomic Uno, AT32x, MEGA 2560, MightyCore
SAMD Arduino Fully Atomic MKR, Nano IoT and Zero
nrf52840 Arduino Fully CAS Nano 33 BLE devices
ESP8266 Arduino Fully Atomic Huzzah, Node MCU
ESP32 Arduino Fully CAS Wifi32, Huzzah 32
STM32F* mbed Fully CAS Discovery, Nucleo etc
STM32 Arduino User Report Atomic Blue pill
  • For mbed we support both RTOS and BareMetal versions 5 and 6, and we test on several STM32 boards. Locking uses CAS to ensure proper cross core locking.
  • For nrf52840 Arduino we rely on the fact that it uses CMSIS and access the underlying CAS locking.
  • For ESP32 we use the underlying CAS capabilities to ensure cross core locking
  • On ESP boards we call yield more often within the run loop to prevent watchdog resets.

Are there differences between platforms

We have tried as hard as we can to avoid any user-level differences in task manager between platforms. It should work close to identically on all platforms that we support.

How does platform determination work

Whenever you include TaskManagerIO.h this pulls in TaskPlatformDeps.h to work out what platform you’re building for, and to create suitable thread safety and CAS or Atomic based locking constructs for that platform. Again the thread safety is so that you can put events into task manager from any thread, or trigger events from interrupts. You should only ever call runLoop from a single thread, usually for the default taskManager instance that would be the loop() method on Arduino, or main() on mbed.

Other pages within this category

comments powered by Disqus

This site uses cookies to analyse traffic, serve ads by Google AdSense (non-personalized in EEA/UK), and to record consent. We also embed Twitter, Youtube and Disqus content on some pages, these companies have their own privacy policies.

Our privacy policy applies to all pages on our site

Should you need further guidance on how to proceed: External link for information about cookie management.