Skip to content

Releases: solariun/CorePartition

Improved context switch engine + memory consuption + scheduler interface for specialised tick counter and sleep and Demo improvements and tests

30 Oct 21:37
Compare
Choose a tag to compare

License information

The first ever Universal nanoCore cooperative multithread with scheduler (includes sleep interface for idle times) and interface to specialise how scheduler will treat ticks (to work with microseconds, nanoseconds, ticks, etc). This version supports Interrupt request from timers or signals without any problem.

But, it is a cooperative Thread , it relies on yield () to change context. For Arduino boards based on official Arduino code it will work like preemptive, since every IO block function or sleep will trigger yield. Some ported boards will also offer this capabilities like STM32F01, but you can always use yield on your code

There is a ready to use Arduino example, since it will help test among different targets.

Tested for: Arduinos MEGA 2506, 1280, Genuino Zero, Nano, MKR ZERO MKR 1010, STM32F01, ESP8266-ESP-01, ESP8266, ESP32 (in a single core), Linux, Windows e MacOS terminal program, embedded linux for PI. For all I have used the same example codes here (the main or the Thread.ino at resources)

With this release I am proving some image of a Demo using AMG8833 thermal camera unit (8x8) I2C, plus 2 red dot 8x8 matrix with ISP chain interface, The code works with 3 threads with a Atmega328p, with 1.2k available (the Arduino boot loader took part of the memory) and 32K of ROM. Each thread is consuming around 47 bytes for the thread context plus the stack page.

Added GNU v3 License

Improved context switch engine + memory consuption + scheduler interface for specialised tick counter and sleep

25 Oct 03:41
Compare
Choose a tag to compare

License information

The first ever Universal nanoCore cooperative multithread with scheduler (includes sleep interface for idle times) and interface to specialise how scheduler will treat ticks (to work with microseconds, nanoseconds, ticks, etc). This version supports Interrupt request from timers or signals without any problem.

But, it is a cooperative Thread , it relies on yield () to change context. For Arduino boards based on official Arduino code it will work like preemptive, since every IO block function or sleep will trigger yield. Some ported boards will also offer this capabilities like STM32F01, but you can always use yield on your code

There is a ready to use Arduino example, since it will help test among different targets.

Tested for: Arduinos MEGA 2506, 1280, Genuino Zero, Nano, MKR ZERO MKR 1010, STM32F01, ESP8266-ESP-01, ESP8266, ESP32 (in a single core), Linux, Windows e MacOS terminal program, embedded linux for PI. For all I have used the same example codes here (the main or the Thread.ino at resources)

With this release I am proving some image of a Demo using AMG8833 thermal camera unit (8x8) I2C, plus 2 red dot 8x8 matrix with ISP chain interface, The code works with 3 threads with a Atmega328p, with 1.2k available (the Arduino boot loader took part of the memory) and 32K of ROM. Each thread is consuming around 47 bytes for the thread context plus the stack page.

GIF-2019-10-15-22-17-50

Added GNU v3 License