Skip to content

VSI task exceeds quantum when logging is enabled #265

@elsevers

Description

@elsevers

The VSI task is initialized by app_blink_init() (should it be?) in the AMDC v1.0.3 firmware.

void app_blink_init(void)
{
// Register "blink" command with system
cmd_blink_register();
// Initialize blink task with system
task_blink_init();
task_vsi_init();
}

When the code is compiled with time quantum checking and logging turned on, it causes the AMDC code to error out upon boot up with this message displayed on the UART: ERROR: OVERRUN SCHEDULER TIME QUANTUM! This happens immediately upon completion of the initialization code.

Interestingly, if I run this in a debug environment, where I hit the go button on CPU 0 and then CPU 1, I do not have this issue. So there does seem to be some element of a race condition here.

user_config.h compile options:

#define USER_CONFIG_ENABLE_TIME_QUANTUM_CHECKING (1)
#define USER_CONFIG_ENABLE_LOGGING (1)

Printout of UART terminal

BSP:    Initializing...
ENC:    Initializing...
ENC:    Setting pulses per rev bits = 14...
PWM:    Initializing...
STATUS LINES:   Initializing...
DAC:    Initializing...
EDDY CURRENT SENSOR:    Initializing...
GP3IO LINES:    Initializing...
DB:     Initializing serial task...
CMD:    Initializing command tasks...
SCHED:  Initializing scheduler...
SCHED:  Tasks per second: 10000
SCHED:  Running scheduler...
ERROR: OVERRUN SCHEDULER TIME QUANTUM!

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions