Skip to content

[Alex/inot-as-namespace] Provide workarounds for typical sketch idioms not working when using inot-as-class model. #47

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jul 26, 2022

Conversation

aentinger
Copy link
Contributor

@aentinger aentinger commented Nov 5, 2021

This fixes #43.

Objective

Encapsulating the .inot file content within a class prohibits a wide range of typical C/C++ constructs (see examples/Breaks_1/2/3/4/5/6). By encapsulating the .inot file within a namespace instead those issues can be prevented.

Implementation

Thread.inot

void myEventHandler() {
  /* Do something. */
}

void setup() {
  attachInterrupt(digitalPinToInterrupt(2), myEventHandler, CHANGE);
}

void loop() {
}

Before #47: inot-as-class-body

class ThreadClass : public Arduino_Threads
{
public:
  ThreadClass() { _tabname = "Thread"; }
private:

void myEventHandler() {
}

void setup() {
  /* This line breaks due to attachInterrupt expecting a free function, but myEventHandler is a class member function. */
  attachInterrupt((2), myEventHandler, CHANGE);
}

void loop() {

}

}; /* class ThreadClass */
ThreadClass Thread;

After #47: inot-within-namespace

namespace ThreadPrivate
{
  void setup();
  void loop();
}
class ThreadClass : public Arduino_Threads
{
public:
  ThreadClass() { _tabname = "Thread"; }
protected:
  virtual void setup() override { ThreadPrivate::setup(); }
  virtual void loop() override { ThreadPrivate::loop(); }
};
namespace ThreadPrivate
{

void myEventHandler() {
}

void setup() {
  /* This line compiles since myEventHandler is in fact a free function. */
  attachInterrupt((2), myEventHandler, CHANGE);
}

void loop() {

}

}; /* namespace ThreadPrivate */
ThreadClass Thread;

Summary

Example inot as class body inot within namespace
Breaks_1 ✔️
Breaks_2 ✔️ 1) ✔️
Breaks_3 ✔️
Breaks_4 ✔️
Breaks_5 ✔️ 2)
Breaks_6 3) 3)

Ad 1) Function signature does not meet required signature (member functions contain this pointer as hidden parameter)

  • No problem for inot-within-namespace.
  • Can be mitigated for inot-as-class-body via e.g. b298b5c. You may judge for yourself how practical you think this is.

Ad 2) No function prototypes.

  • No problem for inot-as-class-body.
  • Can be mitigated for inot-within-namespace by extending arduino-cli in order to generate and insert prototypes during build.

Ad 3) Attempt access to thread-private variable

  • Does not compile for both inot-as-class-body and inot-within-namespace. This is intended.

inot-within-namespace offers "helpful"[/irony] suggestion to circumvent privacy shield by namespace:

Breaks_6/Breaks_6.ino: In function 'void loop()':
Breaks_6.ino:10:22: error: 'var' was not declared in this scope
   int const my_var = var;
                      ^~~
Breaks_6/Breaks_6.ino:10:22: note: suggested alternative:
Thread.inot:11:5: note:   'ThreadPrivate::var'
 int var = 0;

inot-as-class-body simply provides no way to access inot-private variables as they are private member variables of a class:

Breaks_6.ino: In function 'void loop()':
Breaks_6.ino:10:22: error: 'var' was not declared in this scope
   int const my_var = var;
                      ^~~

arduino-threads

@aentinger aentinger self-assigned this Nov 5, 2021
@aentinger aentinger force-pushed the experiment-threading branch 4 times, most recently from 2c32f30 to 54085dc Compare November 10, 2021 05:41
@github-actions
Copy link

Memory usage change @ 6864451

Board flash % RAM for global variables %
arduino:mbed_nano:nano33ble 🔺 0 - +64 0.0 - +0.01 0 - 0 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m4 🔺 0 - +64 0.0 - +0.01 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m7 🔺 0 - +64 0.0 - +0.01 0 - 0 0.0 - 0.0
Click for full report table
Board examples/Breaks_1
flash
% examples/Breaks_1
RAM for global variables
% examples/Breaks_2
flash
% examples/Breaks_2
RAM for global variables
% examples/Breaks_3
flash
% examples/Breaks_3
RAM for global variables
% examples/Breaks_4
flash
% examples/Breaks_4
RAM for global variables
% examples/Threading_Basics/Shared_Counter
flash
% examples/Threading_Basics/Shared_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_Counter
flash
% examples/Threading_Basics/Source_Sink_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_LED
flash
% examples/Threading_Basics/Source_Sink_LED
RAM for global variables
% examples/Threadsafe_IO/SPI
flash
% examples/Threadsafe_IO/SPI
RAM for global variables
% examples/Threadsafe_IO/SPI_BusIO
flash
% examples/Threadsafe_IO/SPI_BusIO
RAM for global variables
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
flash
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
RAM for global variables
% examples/Threadsafe_IO/Serial_ProtocolWrapping
flash
% examples/Threadsafe_IO/Serial_ProtocolWrapping
RAM for global variables
% examples/Threadsafe_IO/Serial_Reader
flash
% examples/Threadsafe_IO/Serial_Reader
RAM for global variables
% examples/Threadsafe_IO/Serial_Writer
flash
% examples/Threadsafe_IO/Serial_Writer
RAM for global variables
% examples/Threadsafe_IO/Wire
flash
% examples/Threadsafe_IO/Wire
RAM for global variables
% examples/Threadsafe_IO/Wire_BusIO
flash
% examples/Threadsafe_IO/Wire_BusIO
RAM for global variables
%
arduino:mbed_nano:nano33ble N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_nano:nanorp2040connect N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m4 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m7 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 0 0.0 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/Breaks_1<br>flash,%,examples/Breaks_1<br>RAM for global variables,%,examples/Breaks_2<br>flash,%,examples/Breaks_2<br>RAM for global variables,%,examples/Breaks_3<br>flash,%,examples/Breaks_3<br>RAM for global variables,%,examples/Breaks_4<br>flash,%,examples/Breaks_4<br>RAM for global variables,%,examples/Threading_Basics/Shared_Counter<br>flash,%,examples/Threading_Basics/Shared_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_Counter<br>flash,%,examples/Threading_Basics/Source_Sink_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_LED<br>flash,%,examples/Threading_Basics/Source_Sink_LED<br>RAM for global variables,%,examples/Threadsafe_IO/SPI<br>flash,%,examples/Threadsafe_IO/SPI<br>RAM for global variables,%,examples/Threadsafe_IO/SPI_BusIO<br>flash,%,examples/Threadsafe_IO/SPI_BusIO<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>flash,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>flash,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Reader<br>flash,%,examples/Threadsafe_IO/Serial_Reader<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Writer<br>flash,%,examples/Threadsafe_IO/Serial_Writer<br>RAM for global variables,%,examples/Threadsafe_IO/Wire<br>flash,%,examples/Threadsafe_IO/Wire<br>RAM for global variables,%,examples/Threadsafe_IO/Wire_BusIO<br>flash,%,examples/Threadsafe_IO/Wire_BusIO<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m4,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m7,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

@aentinger aentinger marked this pull request as ready for review November 11, 2021 05:10
@arduino-libraries arduino-libraries deleted a comment from github-actions bot Nov 11, 2021
@aentinger aentinger requested review from pnndra and facchinm and removed request for pnndra November 11, 2021 05:25
@aentinger aentinger force-pushed the experiment-threading branch from 80e5a8a to 1f23f0a Compare November 11, 2021 09:31
@aentinger aentinger force-pushed the experiment-threading branch from 1f23f0a to f82e5d3 Compare November 24, 2021 05:08
@aentinger aentinger marked this pull request as draft November 26, 2021 09:06
@aentinger aentinger changed the title Experiment with different sketches to test compatibility with existing code and fix bugs ... Increase backwards compatibility Nov 26, 2021
@aentinger aentinger force-pushed the experiment-threading branch from f82e5d3 to 5e67613 Compare December 6, 2021 14:19
@aentinger aentinger force-pushed the experiment-threading branch from 5e67613 to c7251b8 Compare March 28, 2022 05:32
@aentinger aentinger added type: enhancement Proposed improvement topic: code Related to content of the project itself labels Mar 28, 2022
@github-actions
Copy link

Memory usage change @ ed9e23c

Board flash % RAM for global variables %
arduino:mbed_nano:nano33ble ❔ -64 - +64 -0.01 - +0.01 0 - 0 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 🔺 0 - +60 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m4 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m7 🔺 0 - +64 0.0 - +0.01 0 - 0 0.0 - 0.0
Click for full report table
Board examples/Threading_Basics/Shared_Counter
flash
% examples/Threading_Basics/Shared_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_Counter
flash
% examples/Threading_Basics/Source_Sink_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_LED
flash
% examples/Threading_Basics/Source_Sink_LED
RAM for global variables
% examples/Threadsafe_IO/SPI
flash
% examples/Threadsafe_IO/SPI
RAM for global variables
% examples/Threadsafe_IO/SPI_BusIO
flash
% examples/Threadsafe_IO/SPI_BusIO
RAM for global variables
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
flash
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
RAM for global variables
% examples/Threadsafe_IO/Serial_ProtocolWrapping
flash
% examples/Threadsafe_IO/Serial_ProtocolWrapping
RAM for global variables
% examples/Threadsafe_IO/Serial_Reader
flash
% examples/Threadsafe_IO/Serial_Reader
RAM for global variables
% examples/Threadsafe_IO/Serial_Writer
flash
% examples/Threadsafe_IO/Serial_Writer
RAM for global variables
% examples/Threadsafe_IO/Wire
flash
% examples/Threadsafe_IO/Wire
RAM for global variables
% examples/Threadsafe_IO/Wire_BusIO
flash
% examples/Threadsafe_IO/Wire_BusIO
RAM for global variables
%
arduino:mbed_nano:nano33ble 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -64 -0.01 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_nano:nanorp2040connect 24 0.0 0 0.0 60 0.0 0 0.0 54 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 8 0.0 0 0.0 16 0.0 0 0.0 48 0.0 0 0.0 8 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m4 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m7 0 0.0 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/Threading_Basics/Shared_Counter<br>flash,%,examples/Threading_Basics/Shared_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_Counter<br>flash,%,examples/Threading_Basics/Source_Sink_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_LED<br>flash,%,examples/Threading_Basics/Source_Sink_LED<br>RAM for global variables,%,examples/Threadsafe_IO/SPI<br>flash,%,examples/Threadsafe_IO/SPI<br>RAM for global variables,%,examples/Threadsafe_IO/SPI_BusIO<br>flash,%,examples/Threadsafe_IO/SPI_BusIO<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>flash,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>flash,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Reader<br>flash,%,examples/Threadsafe_IO/Serial_Reader<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Writer<br>flash,%,examples/Threadsafe_IO/Serial_Writer<br>RAM for global variables,%,examples/Threadsafe_IO/Wire<br>flash,%,examples/Threadsafe_IO/Wire<br>RAM for global variables,%,examples/Threadsafe_IO/Wire_BusIO<br>flash,%,examples/Threadsafe_IO/Wire_BusIO<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-64,-0.01,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,24,0.0,0,0.0,60,0.0,0,0.0,54,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,8,0.0,0,0.0,16,0.0,0,0.0,48,0.0,0,0.0,8,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m4,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m7,0,0.0,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

@aentinger aentinger changed the title Increase backwards compatibility [Alex/inot-as-namespace] Provide workarounds for typical sketch idioms not working when using inot-as-class model. Jul 22, 2022
@aentinger aentinger force-pushed the experiment-threading branch from 346ba38 to ed9e23c Compare July 26, 2022 05:27
@aentinger aentinger marked this pull request as ready for review July 26, 2022 05:27
@aentinger aentinger merged commit f2ce390 into main Jul 26, 2022
@aentinger aentinger deleted the experiment-threading branch July 26, 2022 05:44
@github-actions
Copy link

Memory usage change @ 067458e

Board flash % RAM for global variables %
arduino:mbed_nano:nano33ble ❔ -64 - +64 -0.01 - +0.01 0 - 0 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 🔺 0 - +60 0.0 - 0.0 💚 -8 - 0 -0.0 - 0.0
arduino:mbed_portenta:envie_m4 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_portenta:envie_m7 ❔ -64 - +64 -0.01 - +0.01 0 - 0 0.0 - 0.0
Click for full report table
Board examples/Threading_Basics/Shared_Counter
flash
% examples/Threading_Basics/Shared_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_Counter
flash
% examples/Threading_Basics/Source_Sink_Counter
RAM for global variables
% examples/Threading_Basics/Source_Sink_LED
flash
% examples/Threading_Basics/Source_Sink_LED
RAM for global variables
% examples/Threading_Basics/Thermostat
flash
% examples/Threading_Basics/Thermostat
RAM for global variables
% examples/Threadsafe_IO/SPI
flash
% examples/Threadsafe_IO/SPI
RAM for global variables
% examples/Threadsafe_IO/SPI_BusIO
flash
% examples/Threadsafe_IO/SPI_BusIO
RAM for global variables
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
flash
% examples/Threadsafe_IO/Serial_GlobalPrefixSuffix
RAM for global variables
% examples/Threadsafe_IO/Serial_ProtocolWrapping
flash
% examples/Threadsafe_IO/Serial_ProtocolWrapping
RAM for global variables
% examples/Threadsafe_IO/Serial_Reader
flash
% examples/Threadsafe_IO/Serial_Reader
RAM for global variables
% examples/Threadsafe_IO/Serial_Writer
flash
% examples/Threadsafe_IO/Serial_Writer
RAM for global variables
% examples/Threadsafe_IO/Wire
flash
% examples/Threadsafe_IO/Wire
RAM for global variables
% examples/Threadsafe_IO/Wire_BusIO
flash
% examples/Threadsafe_IO/Wire_BusIO
RAM for global variables
%
arduino:mbed_nano:nano33ble 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 -64 -0.01 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_nano:nanorp2040connect 24 0.0 0 0.0 60 0.0 0 0.0 54 0.0 0 0.0 44 0.0 -8 -0.0 0 0.0 0 0.0 0 0.0 0 0.0 8 0.0 0 0.0 16 0.0 0 0.0 48 0.0 0 0.0 8 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m4 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:mbed_portenta:envie_m7 0 0.0 0 0.0 0 0.0 0 0.0 64 0.01 0 0.0 -64 -0.01 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/Threading_Basics/Shared_Counter<br>flash,%,examples/Threading_Basics/Shared_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_Counter<br>flash,%,examples/Threading_Basics/Source_Sink_Counter<br>RAM for global variables,%,examples/Threading_Basics/Source_Sink_LED<br>flash,%,examples/Threading_Basics/Source_Sink_LED<br>RAM for global variables,%,examples/Threading_Basics/Thermostat<br>flash,%,examples/Threading_Basics/Thermostat<br>RAM for global variables,%,examples/Threadsafe_IO/SPI<br>flash,%,examples/Threadsafe_IO/SPI<br>RAM for global variables,%,examples/Threadsafe_IO/SPI_BusIO<br>flash,%,examples/Threadsafe_IO/SPI_BusIO<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>flash,%,examples/Threadsafe_IO/Serial_GlobalPrefixSuffix<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>flash,%,examples/Threadsafe_IO/Serial_ProtocolWrapping<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Reader<br>flash,%,examples/Threadsafe_IO/Serial_Reader<br>RAM for global variables,%,examples/Threadsafe_IO/Serial_Writer<br>flash,%,examples/Threadsafe_IO/Serial_Writer<br>RAM for global variables,%,examples/Threadsafe_IO/Wire<br>flash,%,examples/Threadsafe_IO/Wire<br>RAM for global variables,%,examples/Threadsafe_IO/Wire_BusIO<br>flash,%,examples/Threadsafe_IO/Wire_BusIO<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,-64,-0.01,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,24,0.0,0,0.0,60,0.0,0,0.0,54,0.0,0,0.0,44,0.0,-8,-0.0,0,0.0,0,0.0,0,0.0,0,0.0,8,0.0,0,0.0,16,0.0,0,0.0,48,0.0,0,0.0,8,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m4,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_portenta:envie_m7,0,0.0,0,0.0,0,0.0,0,0.0,64,0.01,0,0.0,-64,-0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

@per1234 per1234 added topic: documentation Related to documentation for the project and removed topic: code Related to content of the project itself labels Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: documentation Related to documentation for the project type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bugs: Typical sketches that do not compile with arduino-cli (MT)
2 participants