3388
Kommentar:
|
3284
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 9: | Zeile 9: |
(von Andreas Tschirner, nachbearbeiten von H. Högl) | (von Andreas Tschirner, nachbearbeitet von H. Högl) |
Zeile 33: | Zeile 33: |
sprechen. Gerne auch an Hand eines Beispieles z.B. in Form eines Teilprojektes. |
sprechen. |
Zeile 63: | Zeile 62: |
2. Ändern Sie die Priorität eines Threads z.B. auf *osPriorityRealtime*. | 2. Ändern Sie die Priorität eines Threads z.B. auf osPriorityRealtime. |
Zeile 65: | Zeile 64: |
klar (Dafür reichen die beiden Zustände **Ready** und **Running**). | klar (Dafür reichen die beiden Zustände Ready und Running). |
Zeile 72: | Zeile 71: |
des Threads die vierte LED jede Sekunde *togglen*. | des Threads die vierte LED jede Sekunde toggeln. |
Zeile 75: | Zeile 74: |
hat nun der dritte Zustand (**Blocked**) und welche Ereignisse sorgen dafür, dass der Thread von **Blocked** zu **Ready** wechselt. |
hat nun der dritte Zustand Blocked und welche Ereignisse sorgen dafür, dass der Thread von Blocked zu Ready wechselt? |
Zeile 85: | Zeile 84: |
Bei dem ersten Tastendruck soll *nur* die LED2 aufleuchten und beim zweiten *nur* die LED1. Jeder Tastendruck bewirkt also, dass die eine |
Bei dem ersten Tastendruck soll nur die LED2 aufleuchten und beim zweiten nur die LED1. Jeder Tastendruck bewirkt also, dass die eine |
Hochschule Augsburg | Fakultät für Informatik | Embedded Systems II
1 Aufgaben zu FreeRTOS
(von Andreas Tschirner, nachbearbeitet von H. Högl)
Inhalt
1.1 Allgemeine Fragen
Beschreiben Sie FreeRTOS in ihrer Ausarbeitung. Dabei sollen Ihnen die nachfolgenden Fragen helfen.
- Allgemein zu FreeRTOS
- Was sind typische Aufgaben eines Betriebssystems und welche davon werden von FreeRTOS unterstützt, gerne auch in Form einer Tabelle.
- Reichen die Ressourcen des Stm32l746x aus, um FreeRTOS darauf laufen zu lassen? Denken Sie an Speicher für Programm/Daten und die CPU.
- Wann eignet sich FreeRTOS in einem Projekt (oder Teilprojekt) und wann nicht? Bzw. was sind Kriterien die gegen bzw. für FreeRTOS in einem Projekt sprechen.
- Was ist der Unterschied zwischen Prozessen, Threads und Tasks?
- Unterschied zu Linux
- Gehen Sie kurz auf die Unterschiede von Linux und FreeRTOS ein (Betriebsart, Scheduler, Schutz, Echtzeit).
- Synchronisationsmechanismen
- Was versteht man unter Multitasking und welche Arten unterstützt FreeRTOS?
- Wofür werden Semaphore typischerweise verwendet?
- Was versteht man unter dem Begriff Gatekeeper Task und welches Problem wird damit entschärft?
1.2 FreeRTOS_ThreadCreation
- Erweitern Sie das Beispiel um einen vierten Thread und lassen Sie innerhalb des Threads die vierte LED jede Sekunde togglen.
- Ändern Sie die Priorität eines Threads z.B. auf osPriorityRealtime. Was hat sich nun geändert? Machen Sie sich das an Hand des Zustandsdiagramms klar (Dafür reichen die beiden Zustände Ready und Running).
1.3 FreeRTOS_Semaphore
- Erweitern Sie das Beispiel um einen vierten Thread und lassen Sie innerhalb des Threads die vierte LED jede Sekunde toggeln.
- Erklären Sie das Verhalten an Hand des Zustandsdiagramms. Welche Aufgabe hat nun der dritte Zustand Blocked und welche Ereignisse sorgen dafür, dass der Thread von Blocked zu Ready wechselt?
1.4 FreeRTOS_SemaphoreFromISR
- Erweitern Sie das Beispiel um einen weiteren Thread (LED1). Bei dem ersten Tastendruck soll nur die LED2 aufleuchten und beim zweiten nur die LED1. Jeder Tastendruck bewirkt also, dass die eine LED aufleuchtet und die andere erlischt.
1.5 Gatekeeper Task
Studieren Sie zunächst die weiteren Beispiele:
- FreeRTOS_Mail
- FreeRTOS_Signal
Erstellen Sie nun ein Projekt mit fünf Threads. Einer stellt den Anderen die Serielle-Schnittstelle (USART2) zur Verfügung. Diese Funktion soll nicht blockieren, sondern den Inhalt, der über die Serielle-Schnittstelle ausgegeben werden soll, entgegennehmen und entsprechend umkopieren.
Nach einem Tastendruck (User Button) sollen die anderen vier Threads eine Ausgabe (über den vierten Thread) provozieren.
Hinweise:
- Welchen Synchronisationsmechanismus Sie verwenden ist Ihnen überlassen. Zur Auswahl stehen Semaphore, Signal und Mail.
- Sie können das entsprechende Beispiel kopieren, umbenennen und anpassen.