From 3a3cfe47b5ad977dd1cbf73eb8cad299edd02f37 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Mon, 9 Dec 2024 16:50:55 +0100 Subject: [PATCH 1/4] Move freertos hook between setup() and loop() This gives the chance for users to create new threads/queues in setup() without race conditions --- cores/arduino/main.cpp | 2 +- libraries/Arduino_FreeRTOS/src/portable/FSP/port.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/cores/arduino/main.cpp b/cores/arduino/main.cpp index 8a1e1b2ff..1d8c1386a 100644 --- a/cores/arduino/main.cpp +++ b/cores/arduino/main.cpp @@ -112,8 +112,8 @@ void arduino_main(void) Serial.begin(115200); #endif startAgt(); - start_freertos_on_header_inclusion(); setup(); + start_freertos_on_header_inclusion(); while (1) { loop(); diff --git a/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c b/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c index 036bd6264..598de672d 100644 --- a/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c +++ b/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c @@ -226,7 +226,6 @@ static void prvTaskExitError(void); #endif void loop_thread_func(void* arg) { - setup(); while (1) { loop(); From acb578e2610d7566f39fd0e8419ff38e460798a2 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Mon, 9 Dec 2024 16:52:22 +0100 Subject: [PATCH 2/4] Provide FreeRTOS hook only for PortentaC33 --- boards.txt | 2 +- cores/arduino/main.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/boards.txt b/boards.txt index d89c412aa..b6815e8d9 100644 --- a/boards.txt +++ b/boards.txt @@ -12,7 +12,7 @@ portenta_c33.build.fpu=-mfpu=fpv5-sp-d16 portenta_c33.build.float-abi=-mfloat-abi=hard portenta_c33.build.board=PORTENTA_C33 -portenta_c33.build.defines=-DF_CPU=200000000 +portenta_c33.build.defines=-DF_CPU=200000000 -DPROVIDE_FREERTOS_HOOK portenta_c33.vid.0=0x2341 portenta_c33.pid.0=0x0068 portenta_c33.vid.1=0x2341 diff --git a/cores/arduino/main.cpp b/cores/arduino/main.cpp index 1d8c1386a..24dfa3ec8 100644 --- a/cores/arduino/main.cpp +++ b/cores/arduino/main.cpp @@ -113,7 +113,9 @@ void arduino_main(void) #endif startAgt(); setup(); +#ifdef PROVIDE_FREERTOS_HOOK start_freertos_on_header_inclusion(); +#endif while (1) { loop(); From b83fd201289ab7925d9062064f605dcee2372d20 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 12 Dec 2024 09:53:00 +0100 Subject: [PATCH 3/4] freertos: declare start_freertos_on_header_inclusion only if required --- libraries/Arduino_FreeRTOS/src/portable/FSP/port.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c b/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c index 598de672d..3fd8c53c9 100644 --- a/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c +++ b/libraries/Arduino_FreeRTOS/src/portable/FSP/port.c @@ -225,6 +225,7 @@ static void prvTaskExitError(void); #endif +#ifdef PROVIDE_FREERTOS_HOOK void loop_thread_func(void* arg) { while (1) { @@ -245,6 +246,7 @@ void start_freertos_on_header_inclusion() { vTaskStartScheduler(); } +#endif /* Arduino specific overrides */ void delay(uint32_t ms) { From e9d112e7d00de5dc7aaf364f90efc4a69ef2432c Mon Sep 17 00:00:00 2001 From: Mattia Pennasilico Date: Wed, 18 Dec 2024 16:01:38 +0100 Subject: [PATCH 4/4] Publish 1.3.2 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 38f7aee8e..19740871b 100644 --- a/platform.txt +++ b/platform.txt @@ -3,7 +3,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Arduino Renesas fsp Boards -version=1.3.1 +version=1.3.2 # Compile variables # ------------------------