diff --git a/src/main/pg/scheduler.c b/src/main/pg/scheduler.c index d29ce8d1bf..701d673f20 100644 --- a/src/main/pg/scheduler.c +++ b/src/main/pg/scheduler.c @@ -26,6 +26,6 @@ PG_REGISTER_WITH_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, PG_SCHEDULER_CONFIG, 0); PG_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, - .rxRelaxDeterminism = 25, - .osdRelaxDeterminism = 25, + .rxRelaxDeterminism = SCHEDULER_RELAX_RX, + .osdRelaxDeterminism = SCHEDULER_RELAX_OSD, ); diff --git a/src/main/pg/scheduler.h b/src/main/pg/scheduler.h index d12c51de51..6bf098f3a2 100644 --- a/src/main/pg/scheduler.h +++ b/src/main/pg/scheduler.h @@ -22,6 +22,15 @@ #include "pg/pg.h" +#ifdef STM32F411xE +// Allow RX and OSD tasks to be scheduled at the second attempt on F411 processors +#define SCHEDULER_RELAX_RX 1 +#define SCHEDULER_RELAX_OSD 1 +#else +#define SCHEDULER_RELAX_RX 25 +#define SCHEDULER_RELAX_OSD 25 +#endif + typedef struct schedulerConfig_s { uint16_t rxRelaxDeterminism; uint16_t osdRelaxDeterminism; diff --git a/src/test/unit/scheduler_unittest.cc b/src/test/unit/scheduler_unittest.cc index 291664b0d9..f3b51bf073 100644 --- a/src/test/unit/scheduler_unittest.cc +++ b/src/test/unit/scheduler_unittest.cc @@ -19,17 +19,17 @@ extern "C" { #include "platform.h" - #include "pg/pg.h" - #include "pg/pg_ids.h" - #include "pg/scheduler.h" + #include "pg/pg.h" + #include "pg/pg_ids.h" + #include "pg/scheduler.h" #include "scheduler/scheduler.h" - PG_REGISTER_WITH_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, PG_SCHEDULER_CONFIG, 0); + PG_REGISTER_WITH_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, PG_SCHEDULER_CONFIG, 0); - PG_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, - .rxRelaxDeterminism = 25, - .osdRelaxDeterminism = 25, - ); + PG_RESET_TEMPLATE(schedulerConfig_t, schedulerConfig, + .rxRelaxDeterminism = 25, + .osdRelaxDeterminism = 25, + ); } #include "unittest_macros.h"