Why does Multitasking mode operate incorrectly for the Embedded Target-TI C6000 DSP?

1 view (last 30 days)
On the C6000 Target, specifying multitasking mode does not create true multitasking code.
I have a model with two distinct sections. Task A runs at 1 second intervals and takes only 1 millisecond to run. Task B runs at 2 second intervals and takes 1.8 seconds to run.
What should happen in a true multitasking implementation is:
1. Task A starts running the first time
2. Task A finishes 1 ms later
3. Task B begins executing immediately and executes for 0.999 seconds
longer.
4. Task A interrupts the second task.
5. Task A finishes again, at t=1.001 seconds.
6. Task B (first iteration) resumes, and it finishes at t=1.802 seconds.
7. The processor sits idle for about 0.2 seconds (0.198 seconds, really).
8. At t=2 seconds, we are back at step 1.
Currently, this process is correct through step 4. At that point, task A fails to execute; the ISR simply sets a flag, and then task B continues to run.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This bug has been fixed for Release 14 (R14). For previous releases, please read below for any possible workarounds:
This is a bug in the Embedded Target-TI C6000 DSP in the way that the Multitasking mode option is executed. Our development staff is investigating this issue.
To work around this issue, you should not use Multitasking mode. Note that if the model is multirate, then the tasking mode "Auto" would result in Multitasking mode; you must change the option to Singletasking in order to avoid this.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!