1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-24 00:35:39 +03:00

Support dynamic priority for all tasks priorities

This commit is contained in:
Steve Evans 2022-01-03 00:18:07 +00:00
parent 44e45ddc84
commit 573984eb2a
2 changed files with 11 additions and 10 deletions

View file

@ -325,7 +325,7 @@ task_id_t task_ids[TASK_COUNT] = {
#endif #endif
#ifdef USE_STACK_CHECK #ifdef USE_STACK_CHECK
[TASK_STACK_CHECK] = DEFINE_TASK("STACKCHECK", NULL, NULL, taskStackCheck, TASK_PERIOD_HZ(10), TASK_PRIORITY_IDLE), [TASK_STACK_CHECK] = DEFINE_TASK("STACKCHECK", NULL, NULL, taskStackCheck, TASK_PERIOD_HZ(10), TASK_PRIORITY_LOWEST),
#endif #endif
[TASK_GYRO] = DEFINE_TASK("GYRO", NULL, NULL, taskGyroSample, TASK_GYROPID_DESIRED_PERIOD, TASK_PRIORITY_REALTIME), [TASK_GYRO] = DEFINE_TASK("GYRO", NULL, NULL, taskGyroSample, TASK_GYROPID_DESIRED_PERIOD, TASK_PRIORITY_REALTIME),
@ -375,7 +375,7 @@ task_id_t task_ids[TASK_COUNT] = {
#endif #endif
#ifdef USE_BST #ifdef USE_BST
[TASK_BST_MASTER_PROCESS] = DEFINE_TASK("BST_MASTER_PROCESS", NULL, NULL, taskBstMasterProcess, TASK_PERIOD_HZ(50), TASK_PRIORITY_IDLE), [TASK_BST_MASTER_PROCESS] = DEFINE_TASK("BST_MASTER_PROCESS", NULL, NULL, taskBstMasterProcess, TASK_PERIOD_HZ(50), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_ESC_SENSOR #ifdef USE_ESC_SENSOR
@ -387,7 +387,7 @@ task_id_t task_ids[TASK_COUNT] = {
#endif #endif
#ifdef USE_VTX_CONTROL #ifdef USE_VTX_CONTROL
[TASK_VTXCTRL] = DEFINE_TASK("VTXCTRL", NULL, NULL, vtxUpdate, TASK_PERIOD_HZ(5), TASK_PRIORITY_IDLE), [TASK_VTXCTRL] = DEFINE_TASK("VTXCTRL", NULL, NULL, vtxUpdate, TASK_PERIOD_HZ(5), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_RCDEVICE #ifdef USE_RCDEVICE
@ -395,23 +395,23 @@ task_id_t task_ids[TASK_COUNT] = {
#endif #endif
#ifdef USE_CAMERA_CONTROL #ifdef USE_CAMERA_CONTROL
[TASK_CAMCTRL] = DEFINE_TASK("CAMCTRL", NULL, NULL, taskCameraControl, TASK_PERIOD_HZ(5), TASK_PRIORITY_IDLE), [TASK_CAMCTRL] = DEFINE_TASK("CAMCTRL", NULL, NULL, taskCameraControl, TASK_PERIOD_HZ(5), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_ADC_INTERNAL #ifdef USE_ADC_INTERNAL
[TASK_ADC_INTERNAL] = DEFINE_TASK("ADCINTERNAL", NULL, NULL, adcInternalProcess, TASK_PERIOD_HZ(1), TASK_PRIORITY_IDLE), [TASK_ADC_INTERNAL] = DEFINE_TASK("ADCINTERNAL", NULL, NULL, adcInternalProcess, TASK_PERIOD_HZ(1), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_PINIOBOX #ifdef USE_PINIOBOX
[TASK_PINIOBOX] = DEFINE_TASK("PINIOBOX", NULL, NULL, pinioBoxUpdate, TASK_PERIOD_HZ(20), TASK_PRIORITY_IDLE), [TASK_PINIOBOX] = DEFINE_TASK("PINIOBOX", NULL, NULL, pinioBoxUpdate, TASK_PERIOD_HZ(20), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_RANGEFINDER #ifdef USE_RANGEFINDER
[TASK_RANGEFINDER] = DEFINE_TASK("RANGEFINDER", NULL, NULL, taskUpdateRangefinder, TASK_PERIOD_HZ(10), TASK_PRIORITY_IDLE), [TASK_RANGEFINDER] = DEFINE_TASK("RANGEFINDER", NULL, NULL, taskUpdateRangefinder, TASK_PERIOD_HZ(10), TASK_PRIORITY_LOWEST),
#endif #endif
#ifdef USE_CRSF_V3 #ifdef USE_CRSF_V3
[TASK_SPEED_NEGOTIATION] = DEFINE_TASK("SPEED_NEGOTIATION", NULL, NULL, speedNegotiationProcess, TASK_PERIOD_HZ(100), TASK_PRIORITY_IDLE), [TASK_SPEED_NEGOTIATION] = DEFINE_TASK("SPEED_NEGOTIATION", NULL, NULL, speedNegotiationProcess, TASK_PERIOD_HZ(100), TASK_PRIORITY_LOWEST),
#endif #endif
}; };
@ -573,3 +573,4 @@ void tasksInit(void)
setTaskEnabled(TASK_SPEED_NEGOTIATION, useCRSF); setTaskEnabled(TASK_SPEED_NEGOTIATION, useCRSF);
#endif #endif
} }

View file

@ -56,8 +56,8 @@
typedef enum { typedef enum {
TASK_PRIORITY_REALTIME = -1, // Task will be run outside the scheduler logic TASK_PRIORITY_REALTIME = -1, // Task will be run outside the scheduler logic
TASK_PRIORITY_IDLE = 0, // Disables dynamic scheduling, task is executed only if no other task is active this cycle TASK_PRIORITY_LOWEST = 1,
TASK_PRIORITY_LOW = 1, TASK_PRIORITY_LOW = 2,
TASK_PRIORITY_MEDIUM = 3, TASK_PRIORITY_MEDIUM = 3,
TASK_PRIORITY_MEDIUM_HIGH = 4, TASK_PRIORITY_MEDIUM_HIGH = 4,
TASK_PRIORITY_HIGH = 5, TASK_PRIORITY_HIGH = 5,