Scheduling DSP/BIOS Threads
Possible Solution Using Interrupts
Possible Solution Using Interrupts
TI DSP
main
{
while(1);
}
Function1_ISR
{
}
Function2_ISR
{
}
Only one can run at a time
Interrupt is missed…
Period
Compute CPU Usage
Function 1: 0.05 ms 1 µs2%
Function 2: 500 ms 3 µs~ 0%
2%
Function 2
Function 1
An interrupt driven system places
each function in its own ISR
running
idle
Time
123 54670
Function 1
Function 2
DSP/BIOS Solution
DSP/BIOS Solution
-
-
HWI
HWI
Use DSP/BIOS HWI dispatcher for context
save/restore, and allow preemption
Reasonable approach if you have limited
number of interrupts/functions
Limitation: number of HWI and their priorities
are statically determined, only one HWI
function for each interrupt
running
idle
Time
1 2 3 54 6 70
Nested interrupts allow hardware
interrupts to preempt each other
main
{
return;
}
Function1_ISR
{
}
Function2_ISR
{
}
Function 2
Function 1
9 - 6 C28x - Using DSP/BIOS