forked from espressif/arduino-esp32
Add option to select the core used for Arduino and it's events
This commit is contained in:
14
boards.txt
14
boards.txt
@ -9,6 +9,8 @@ menu.PartitionScheme=Partition Scheme
|
|||||||
menu.DebugLevel=Core Debug Level
|
menu.DebugLevel=Core Debug Level
|
||||||
menu.PSRAM=PSRAM
|
menu.PSRAM=PSRAM
|
||||||
menu.Revision=Board Revision
|
menu.Revision=Board Revision
|
||||||
|
menu.LoopCore=Arduino Runs On
|
||||||
|
menu.EventsCore=Events Run On
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
### DO NOT PUT BOARDS ABOVE THE OFFICIAL ESPRESSIF BOARDS! ###
|
### DO NOT PUT BOARDS ABOVE THE OFFICIAL ESPRESSIF BOARDS! ###
|
||||||
@ -194,6 +196,8 @@ esp32.build.flash_mode=dio
|
|||||||
esp32.build.boot=dio
|
esp32.build.boot=dio
|
||||||
esp32.build.partitions=default
|
esp32.build.partitions=default
|
||||||
esp32.build.defines=
|
esp32.build.defines=
|
||||||
|
esp32.build.loop_core=
|
||||||
|
esp32.build.event_core=
|
||||||
|
|
||||||
esp32.menu.PSRAM.disabled=Disabled
|
esp32.menu.PSRAM.disabled=Disabled
|
||||||
esp32.menu.PSRAM.disabled.build.defines=
|
esp32.menu.PSRAM.disabled.build.defines=
|
||||||
@ -295,6 +299,16 @@ esp32.menu.UploadSpeed.460800.upload.speed=460800
|
|||||||
esp32.menu.UploadSpeed.512000.windows=512000
|
esp32.menu.UploadSpeed.512000.windows=512000
|
||||||
esp32.menu.UploadSpeed.512000.upload.speed=512000
|
esp32.menu.UploadSpeed.512000.upload.speed=512000
|
||||||
|
|
||||||
|
esp32.menu.LoopCore.1=Core 1
|
||||||
|
esp32.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
|
||||||
|
esp32.menu.LoopCore.0=Core 0
|
||||||
|
esp32.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
|
||||||
|
|
||||||
|
esp32.menu.EventsCore.1=Core 1
|
||||||
|
esp32.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
|
||||||
|
esp32.menu.EventsCore.0=Core 0
|
||||||
|
esp32.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
|
||||||
|
|
||||||
esp32.menu.DebugLevel.none=None
|
esp32.menu.DebugLevel.none=None
|
||||||
esp32.menu.DebugLevel.none.build.code_debug=0
|
esp32.menu.DebugLevel.none.build.code_debug=0
|
||||||
esp32.menu.DebugLevel.error=Error
|
esp32.menu.DebugLevel.error=Error
|
||||||
|
@ -113,6 +113,9 @@ protected:
|
|||||||
extern void serialEventRun(void) __attribute__((weak));
|
extern void serialEventRun(void) __attribute__((weak));
|
||||||
|
|
||||||
#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
|
#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
|
||||||
|
#ifndef ARDUINO_SERIAL_PORT
|
||||||
|
#define ARDUINO_SERIAL_PORT 0
|
||||||
|
#endif
|
||||||
#if ARDUINO_SERIAL_PORT //Serial used for USB CDC
|
#if ARDUINO_SERIAL_PORT //Serial used for USB CDC
|
||||||
#include "USB.h"
|
#include "USB.h"
|
||||||
#include "USBCDC.h"
|
#include "USBCDC.h"
|
||||||
|
@ -52,6 +52,14 @@ extern "C" {
|
|||||||
#define ARDUINO_ISR_FLAG (0)
|
#define ARDUINO_ISR_FLAG (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARDUINO_RUNNING_CORE
|
||||||
|
#define ARDUINO_RUNNING_CORE CONFIG_ARDUINO_RUNNING_CORE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARDUINO_EVENT_RUNNING_CORE
|
||||||
|
#define ARDUINO_EVENT_RUNNING_CORE CONFIG_ARDUINO_EVENT_RUNNING_CORE
|
||||||
|
#endif
|
||||||
|
|
||||||
//forward declaration from freertos/portmacro.h
|
//forward declaration from freertos/portmacro.h
|
||||||
void vPortYield(void);
|
void vPortYield(void);
|
||||||
void yield(void);
|
void yield(void);
|
||||||
|
@ -44,7 +44,7 @@ extern "C" void app_main()
|
|||||||
#endif
|
#endif
|
||||||
loopTaskWDTEnabled = false;
|
loopTaskWDTEnabled = false;
|
||||||
initArduino();
|
initArduino();
|
||||||
xTaskCreateUniversal(loopTask, "loopTask", 8192, NULL, 1, &loopTaskHandle, CONFIG_ARDUINO_RUNNING_CORE);
|
xTaskCreateUniversal(loopTask, "loopTask", 8192, NULL, 1, &loopTaskHandle, ARDUINO_RUNNING_CORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -45,7 +45,7 @@ extern "C" {
|
|||||||
|
|
||||||
} //extern "C"
|
} //extern "C"
|
||||||
|
|
||||||
#include "esp32-hal-log.h"
|
#include "esp32-hal.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
@ -475,7 +475,7 @@ static bool _start_network_event_task(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!_arduino_event_task_handle){
|
if(!_arduino_event_task_handle){
|
||||||
xTaskCreateUniversal(_arduino_event_task, "arduino_events", 4096, NULL, ESP_TASKD_EVENT_PRIO - 1, &_arduino_event_task_handle, CONFIG_ARDUINO_EVENT_RUNNING_CORE);
|
xTaskCreateUniversal(_arduino_event_task, "arduino_events", 4096, NULL, ESP_TASKD_EVENT_PRIO - 1, &_arduino_event_task_handle, ARDUINO_EVENT_RUNNING_CORE);
|
||||||
if(!_arduino_event_task_handle){
|
if(!_arduino_event_task_handle){
|
||||||
log_e("Network Event Task Start Failed!");
|
log_e("Network Event Task Start Failed!");
|
||||||
return false;
|
return false;
|
||||||
|
@ -90,7 +90,9 @@ build.flash_mode=dio
|
|||||||
build.boot=bootloader
|
build.boot=bootloader
|
||||||
build.code_debug=0
|
build.code_debug=0
|
||||||
build.defines=
|
build.defines=
|
||||||
build.extra_flags=-DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.defines} {build.extra_flags.{build.mcu}}
|
build.loop_core=
|
||||||
|
build.event_core=
|
||||||
|
build.extra_flags=-DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}}
|
||||||
|
|
||||||
# Check if custom partitions exist
|
# Check if custom partitions exist
|
||||||
recipe.hooks.prebuild.1.pattern=bash -c "[ ! -f {build.source.path}/partitions.csv ] || cp -f {build.source.path}/partitions.csv {build.path}/partitions.csv"
|
recipe.hooks.prebuild.1.pattern=bash -c "[ ! -f {build.source.path}/partitions.csv ] || cp -f {build.source.path}/partitions.csv {build.path}/partitions.csv"
|
||||||
|
Reference in New Issue
Block a user