-
Notifications
You must be signed in to change notification settings - Fork 8
VSI task exceeds quantum when logging is enabled #265
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
The VSI task is initialized by app_blink_init() (should it be?) in the AMDC v1.0.3 firmware.
AMDC-Firmware/sdk/app_cpu1/user/usr/blink/app_blink.c
Lines 8 to 17 in 34e5cc6
| 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!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working