Scheduling DSP/BIOS Threads
SWIs
SWIs
and
and
TSKs
TSKs
Similar to hardware interrupt,
but triggered by SWI_post()
All SWI's share system
software stack
SWI
SWI_post
start
end
“run to
completion”
SEM_post() readies the TSK
which pends on an event
The event triggers the TSK
to run once and pend
Each TSK has its own stack,
which allows them to pause
(or be terminated)
TSK
start
end
Pause
SEM_post
(blocked
state)
SEM_pend
DSP/BIOS Thread Types
DSP/BIOS Thread Types
Priority
Use SWI to perform HWI 'follow-up' activity
SWI's are 'posted' by software
Multiple SWIs at each of 15 priority levels
Use TSK to run different programs concurrently
under separate contexts
TSK's enabled by posting 'semaphore‘ (a signal)
Multiple IDL functions
Runs as an infinite loop, like traditional while loop
All BIOS data transfers to host occur here
Used to implement 'urgent' part of real-time event
Triggered by hardware interrupt
HWI priorities set by hardware
SWI
Software Interrupts
HWI
Hardware Interrupts
TSK
Tasks
IDL
Background
9 - 10 C28x - Using DSP/BIOS