Interrupts and TI-RTOS Scheduling
TI-RTOS Details
The following slide provides some “characteristics” of the TI-RTOS kernel. The bottom-line here is
that it is a priority-based scheduler. The highest priority thread gets to run, period. (Remember,
hardware interrupts are always the highest priority.)
TI-RTOS Kernel – Characteristics
RTOS means “Real-time O/S” – so the intent of this O/S is to provide common
services to the user WITHOUT disturbing the real-time nature of the system
The TI-RTOS Kernel (SYS/BIOS) is a PRE-EMPTIVE scheduler. This means the
highest priority thread ALWAYS RUNS FIRST. Time-slicing is not inherently
supported.
The kernel is EVENT-DRIVEN. Any kernel-configured interrupts or user calls to
APIs such as Swi_post() will invoke the scheduler. The kernel is NOT time-
sliced although threads can be triggered on a time bases if so desired.
The kernel is OBJECT BASED. All APIs (methods) operate on self-contained
objects. Therefore when you change ONE object, all other objects are
unaffected.
Being object-based allows most RTOS kernel calls to be DETERMINISTIC. The
scheduler works by updating event queues such that all context switches take
the same number of cycles.
Real-time Analysis APIs (such as Logs) are small and fast – the intent is to LEAVE
them in the program – even for production code – yes, they are really that small
While you can construct a time-slicing system using TI-RTOS, this is not commonly done. While
time-slicing can be a very effective technique in host operating systems (like Windows or Linux), it
is not a common method for scheduling threads in an embedded system.
5 - 34 MSP430 Workshop - Interrupts