std::thread für ESP32 unter Arduino IDE zum Laufen zu kriegen...?
hallo,
ist jemand erfahren in std::thread und besitzt auch einen Arduino-kompatiblen ESP32?
Ich bin dabei zu vesuchen, eine std::thread Implementierung zu bekommen, bin aber selber zu wenig erfahren damit (habe selber nur geringe Kenntnisse in C99 Posix pthread).
Ich habe hier ein Topic eröffnet und auch schon einen Vorschlag, der allerdings zwar compilier- aber nicht lauffähig ist:
https://github.com/espressif/arduino-esp32/issues/2814
Welche Kenner und Könner können hier weiterhelfen und den Beispielcode zum Laufen kriegen?
Code:
#include <Arduino.h>
#include <thread>
#include <chrono>
#ifndef LED_BUILTIN
#define LED_BUILTIN 13
#endif
const auto one_sec = std::chrono::seconds
{
1
};
void counter_loop() {
uint32_t counter = 0;
while(true) {
Serial.print("counter_loop: ");
Serial.println(counter);
std::this_thread::sleep_for(one_sec);
}
}
void blinker_loop() {
uint32_t counter = 0;
while(true) {
digitalWrite(LED_BUILTIN, HIGH);
std::this_thread::sleep_for(one_sec);
digitalWrite(LED_BUILTIN, LOW);
std::this_thread::sleep_for(one_sec);
}
}
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
std::thread counter_loop_thread(counter_loop);
std::thread blinker_loop_thread(blinker_loop);
}
uint32_t main_loop_counter = 0;
void loop() {
main_loop_counter++;
Serial.print("main loop: ");
Serial.println(main_loop_counter);
delay(10000);
}
Fehlerausgabe seriell:
Zitat:
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd _drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:928
ho 0 tail 12 room 4
load:0x40078000,len:8424
ho 0 tail 12 room 4
load:0x40080400,len:5868
entry 0x4008069c
counter_loop: 0
abort() was called at PC 0x400e5ca7 on core 1
Backtrace: 0x40089150:0x3ffb1ed0 0x4008937d:0x3ffb1ef0 0x400e5ca7:0x3ffb1f10 0x400e5cee:0x3ffb1f30 0x400d0da2:0x3ffb1f50 0x400d0f92:0x3ffb1f70 0x400d1bc3:0x3ffb1fb0 0x40087c9d:0x3ffb1fd0
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd _drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:928
ho 0 tail 12 room 4
load:0x40078000,len:8424
ho 0 tail 12 room 4
load:0x40080400,len:5868
entry 0x4008069c
counter_loop: 0
abort() was called at PC 0x400e5ca7 on core 1
(dauerhaft wiederholend)