2 * This project contains an application demonstrating the use of the
\r
3 * FreeRTOS.org mini real time scheduler on the Luminary Micro LM3S811 Eval
\r
4 * board. See http://www.FreeRTOS.org for more information.
\r
6 * main() simply sets up the hardware, creates all the demo application tasks,
\r
7 * then starts the scheduler. http://www.freertos.org/a00102.html provides
\r
8 * more information on the standard demo tasks.
\r
10 * In addition to a subset of the standard demo application tasks, main.c also
\r
11 * defines the following tasks:
\r
13 * + A 'Print' task. The print task is the only task permitted to access the
\r
14 * LCD - thus ensuring mutual exclusion and consistent access to the resource.
\r
15 * Other tasks do not access the LCD directly, but instead send the text they
\r
16 * wish to display to the print task. The print task spends most of its time
\r
17 * blocked - only waking when a message is queued for display.
\r
19 * + A 'Button handler' task. The eval board contains a user push button that
\r
20 * is configured to generate interrupts. The interrupt handler uses a
\r
21 * semaphore to wake the button handler task - demonstrating how the priority
\r
22 * mechanism can be used to defer interrupt processing to the task level. The
\r
23 * button handler task sends a message both to the LCD (via the print task) and
\r
24 * the UART where it can be viewed using a dumb terminal (via the UART to USB
\r
25 * converter on the eval board). NOTES: The dumb terminal must be closed in
\r
26 * order to reflash the microcontroller. A very basic interrupt driven UART
\r
27 * driver is used that does not use the FIFO. 19200 baud is used.
\r
29 * + A 'check' task. The check task only executes every five seconds but has a
\r
30 * high priority so is guaranteed to get processor time. Its function is to
\r
31 * check that all the other tasks are still operational and that no errors have
\r
32 * been detected at any time. If no errors have every been detected 'PASS' is
\r
33 * written to the display (via the print task) - if an error has ever been
\r
34 * detected the message is changed to 'FAIL'. The position of the message is
\r
35 * changed for each write.
\r