Overview of Thread Scheduling
4-6
Table 4.1. Comparison of Thread Characteristics (continued)
2) See Section 4.3.7, Saving Registers During Software Interrupt Preemption, page 4-36, for a list of saved registers.
3) HWI objects cannot be created dynamically because they correspond to DSP interrupts. However, interrupt
functions can be changed at run time.
4) When a HWI function calls HWI_enter, it can pass a bitmask that indicates which interrupts to enable while the
HWI function runs. An enabled interrupt can preempt the HWI function even if the enabled interrupt has a lower
priority than the current interrupt.
Characteristic HWI SWI TSK IDL
Context saved
when preempts
other thread
Customizable Certain registers
saved to system
stack (see Note 2)
Entire context
saved to task stack
--Not applicable--
Context saved
when blocked
--Not applicable-- --Not applicable-- Saves the C regis-
ter set (see opti-
mizing compiler
user’s guide for
your platform)
--Not applicable--
Share data with
thread via
Streams, queues,
pipes, global
variables
Streams, queues,
pipes, global
variables
Streams, queues,
pipes, locks,
mailboxes, global
variables
Streams, queues,
pipes, global
variables
Synchronize with
thread via
--Not applicable-- SWI mailbox Semaphores,
mailboxes
-Not applicable--
Function hooks No No Yes: initialize, cre-
ate, delete, exit,
task switch, ready
No
Static creation Included in default
configuration
template
Yes Yes Yes
Dynamic creation Yes (see Note 3) Yes Yes No
Dynamically
change priority
No (see Note 4) Yes Yes No
Implicit logging None Post and
completion events
Ready, start, block,
resume, and
termination events
None
Implicit statistics Monitored values Execution time Execution time None