55// v0.1.1 for core selected
66// update/author : 2022/06/23 @chrmlinux03
77// v0.2.1 for Arduino
8- // license : mit
8+ // update/author : 2023/12/01 @chrmlinux03
9+ // v0.3.0 for SPRESENSE
10+ // license : MIT
911// =======================================================================
1012
1113#ifndef __TINYCORE_HPP__
1214#define __TINYCORE_HPP__
1315
14- enum {TINYCORE0 = 0 , TINYCORE1};
15-
1616#include < Arduino.h>
1717
1818// =======================================================================
1919// include
2020// =======================================================================
21- #if defined(ARDUINO_ARCH_ESP32)
21+ #if defined (ARDUINO_ARCH_ESP32)
2222// -------------------------------------
2323// for ESP32
2424// -------------------------------------
25+
26+ #elif defined (ARDUINO_ARCH_SPRESENSE)
27+ // -------------------------------------
28+ // for SPRESENSE
29+ // -------------------------------------
30+
2531#else
2632// -------------------------------------
2733// for Arduino
@@ -39,12 +45,18 @@ void setupN(void);
3945void loopN (void );
4046static volatile bool bBehindTaskEnd = false ;
4147
42- #if defined(ARDUINO_ARCH_ESP32)
48+ #if defined (ARDUINO_ARCH_ESP32)
4349// -------------------------------------
4450// for ESP32
4551// -------------------------------------
4652static TaskHandle_t pBehindTask = NULL ;
47- #else
53+
54+ #elif defined (ARDUINO_ARCH_SPRESENSE)
55+ // -------------------------------------
56+ // for SPRESENSE
57+ // -------------------------------------
58+
59+ #else
4860// -------------------------------------
4961// for Arduino
5062// -------------------------------------
@@ -53,7 +65,7 @@ static TaskHandle_t pBehindTask = NULL;
5365// =======================================================================
5466// another task exec
5567// =======================================================================
56- #if defined(ARDUINO_ARCH_ESP32)
68+ #if defined (ARDUINO_ARCH_ESP32)
5769// -------------------------------------
5870// for ESP32
5971// -------------------------------------
@@ -64,6 +76,17 @@ void BehindTask(void *param) {
6476 }
6577 vTaskDelete (pBehindTask);
6678}
79+ #elif defined (ARDUINO_ARCH_SPRESENSE)
80+ // -------------------------------------
81+ // for SPRESENSE
82+ // -------------------------------------
83+ void thread (int argc, char **argv) {
84+ while (!bBehindTaskEnd) {
85+ loopN ();
86+ yield ();
87+ }
88+ }
89+
6790#else
6891// -------------------------------------
6992// for Arduino
@@ -76,8 +99,8 @@ void BehindTask(void *param) {
7699class tinyCore {
77100
78101 public:
79- // tinyCore();
80- // ~tinyCore();
102+ tinyCore (){}
103+ ~tinyCore (){}
81104
82105 // =======================================================================
83106 // begin
@@ -92,11 +115,21 @@ class tinyCore {
92115 }
93116 void begin (void ) {
94117 setupN ();
95- #if defined(ARDUINO_ARCH_ESP32)
118+
119+ #if defined (ARDUINO_ARCH_ESP32)
96120 // -------------------------------------
97121 // for ESP32
98122 // -------------------------------------
99123 xTaskCreatePinnedToCore (BehindTask, " BehindTask" , 8192 , NULL , 1 , NULL , _core);
124+
125+ #elif defined (ARDUINO_ARCH_SPRESENSE)
126+ // -------------------------------------
127+ // for SPRESENSE
128+ // -------------------------------------
129+ char *argv[4 ];
130+ argv[0 ] = NULL ;
131+ task_create (" task1" , 121 , 2028 , thread, argv);
132+
100133#else
101134 // -------------------------------------
102135 // for Arduino
0 commit comments