The instance of the task error that is being fixed occurred on a V5 XL200CL and can only occur on the V5 XL200CL. However, the fix impacts all Models, V4, V5 Open and Closed Loop.
The Error is caused when a new timer interrupt has occurred without the prior timer interrupt receiving its return cyclical data from the DSP/ARM. The error was only possible on the CL because the CL is the only project that allows tasks to run between sending cyclical data and receiving it.
There was one command, receiving 16bits of data, that ran outside of the cyclical interrupts. That command was executing with interrupts disabled when the system info screen was displayed or when Eclipse initiated the ‘vE’ command. Just by luck it was sometimes receiving the Word that the ARM sends to initiate the IRQ for the return cyclical data. Reading this data cleared the interrupt.
Interrupts were Off when the ARM filled in its word so the 386 did not see the IRQ. The 386 requested its word but got the word the ARM already had put there. When that word was read the IRQ got cleared and the 386 never saw it, leaving the word the 386 asked for behind. On the V5, all of the ARM communication needs to be in the cyclical interrupts or his can happen. The fix impacts common software for all Models of Closed Loop and Open Loop.
| Model | Version | Released |
|---|---|---|
| XL2OL | 5.80.00 | 11/30/2021 |
| XL2CL | 5.80.00 | 11/30/2021 |
| XL220OL | 5.80.00 | 11/30/2021 |
| XL220CL | 5.80.00 | 11/30/2021 |
| XL2OL | 4.80.00 | 11/30/2021 |
| XL2CL | 4.80.00 | 11/30/2021 |
| XL220OL | 4.80.00 | 11/30/2021 |
| XL220CL | 4.80.00 | 11/30/2021 |