MC2
MC2
MC2
Fichier Détails
Cartes-fiches | 61 |
---|---|
Langue | Deutsch |
Catégorie | Electrotechnique |
Niveau | Université |
Crée / Actualisé | 06.03.2016 / 04.01.2018 |
Lien de web |
https://card2brain.ch/box/mc2
|
Intégrer |
<iframe src="https://card2brain.ch/box/mc2/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Créer ou copier des fichiers d'apprentissage
Avec un upgrade tu peux créer ou copier des fichiers d'apprentissage sans limite et utiliser de nombreuses fonctions supplémentaires.
Connecte-toi pour voir toutes les cartes.
Für was wird OpenOCD verwendet?
Zwecks Flashen des Program Memories sowie Remote-Debugging.
OpenOCD kann mit unterschiedlichen JTAG-Interfaces und jeweils zugehörigen Treibern verwendet werden.
Was macht FreeRTOSConfig.h ?
Konfiguriert den FreeRTOS-Kernel
Für was kann man OpenOCD auch noch verwenden?
als „Backend-Server“ für den GNU Debugger (GDB) dienen, wodurch ein „Remotedebugging“ aus Eclipse mit relativ wenig Zusatz-Aufwand möglich wird
Wie kann OpenOCD ein Programm starten/stoppen/inspizieren ?
Der GDB Debugger-Frontend kommuniziert mit dem „gdbserver“, also dem Debugger Backend wozu wir OpenOCD verwenden. OpenOCD steuert also via USB und die JTAG-Debug-Hardware die Debug- Register des Target-Controllers an
Die Kommunikation zwischen Debugger-Frontend (arm-none-eabi-gdb) und dem Debugger Backend (dem „gdbserver“ OpenOCD) erfolgt dabei via....?
TCP/IP über den Port 3333
Können Front-und Backend auf verschiedenen Rechnern laufen?
ja da Kommunikation über TCP/IP über den Port 3333
Vor dem Debuggen muss unbedingt...
das Projekt ohne Optimierungen übersetzt worden sein
und das aktuelle Programm mittels External Command Flash Program Memory (make flash)
auf den Target-Controller geflashed worden sein!!!
Was macht uxTaskGetStackHighWaterMark() ?
Mittels Aufruf von uxTaskGetStackHighWaterMark() kann in beliebigen Tasks überprüft werden, wie viel freier Platz im jeweiligen Taskstack bleibt.
Wieso darf aus einem Ablauf mehrerer GPIO-Portzugriffe erfolgen?
Diese Code-Sequenz darf nicht mittendrin unterbrochen und dann von einem anderen Task von Beginn an neu ausgeführt (so genannt „re-entered“) werden. Ein Missachten könnte nebst Anzeigefehler sogar zum Absturz des Systems resp. zu einem „Deadlock“ führen
Wo wird die Semaphore initialisiert?
main() noch vor dem Starten des Schedulers (!) mittels Funktion vSemaphoreCreateBinary()
Wo wird der Datentyp xSemaphoreHandle deklariert und definiert?
Dieser Datentyp sowie die nachfolgend verwendeten Funktionen sind übrigens im Headerfile "semphr.h" deklariert resp. in „semphr.c“ definiert
Wie wird der kritische Abschnitt umkapselt?
if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE ) {
//Kritischer Abschnitt
xSemaphoreGive( xSemaphore ); //Freigabe
}
Welche Prio ist im RTOS auf dem Cortex M die höchste?
0
(7 ist die niedrigste)
Was sind die Anforderungen ein Realtime (Echtzeit) System?
anwendungsspezifisch rechtzeitig auf Ereignisse reagieren
Was ist der unterschied zwischen Soft-Realtime und Hard-Realtime
Hard-Realtime muss immer in der vorgegebenen Zeit reagieren.
Soft-Realtime kann die Vorgaben z.Bsp auch nur im Mittel einhalten. Einzele kurze überschreitungen müssen nicht als Versagen gewertet werden.
Wie ist die Latenzzeit definiert?
Zeit zwischen Eintreffen eines (Hardware-) Ereignisses bis zu dessen Behandlung
Sind Hard-Realtime-System schneller als Soft-Realtime?
Nein! Sie sind eher langsamer da mehr Verwaltungsaufwand nötig ist.
Wie funktionieren pollende Systeme?
Alle Ereignisquellen werden in einer Endlosschlaufe "gepollt" und bei Bedarf behandelt
Wie funktionieren ereignisgesteuerte Systeme (HW-Interrupts)
alle Ereignisbehandlung erfolgt direkt in der ISR; das Hauptprogramm dient nur zur Initialisierung
Wie funktionieren gemischte Systeme (Ereignisgesteuert + Pollend)?
Zeitkritische Verarbeitung in ISRs; zeitunkritische und lang andauernde im Hauptprogramm-Fluss
Wo werden Realtime Multitasking Operating Systeme (RTOS) eingesetzt?
Bei Echtzeitsystemen mit mittlerer bis hoher Komplexität
Vor- und Nachteile rein pollender Systeme
Vorteile:
- bei nur einem Ereignis recht schnell (kein Interrupt-Overhead)
- kaum Race-Probleme (Programmfluss wird nie unterbrochen)
- einfache Erweiterung mit wenig gegenseitiger Beeinflussung (nur zeitlich!)
Nachteile:
- Keine Priorisierung
- Reaktionszeit von Anzahl und Komplexität der Ereignisse abhängig
- Kurzzeitige ereignisse (puls am Eingang) können verloren gehen
- Ereignisse dürfen nicht Blockieren
- Kein Sleep-Mode möglich, da immer gepollt werden muss
- Zwingend mit Statemachine-Ansatz realisiert
Vor- und Nachteile rein interruptgesteuerter Systeme
Vorteile:
- Resourcensparend (Kein andauerndes pollen, Sleep-Mode möglich)
- Priorisierung möglich
Nachteile:
- evt. nicht alle Inputs interruptfähig
- Latenzzeit etwas höher als bei Polling eines einzelnen Ereignisses
- Prelllen am Input löst mehrere Interrupts aus
- keine Differenzierungsmöglichkeit zwischen dringlicheren und weniger dringlicheren Phasen einer Ereignissbehandlung
- Race-Conditions insbesondere bei priorisiertem "nested interrupt"
- ISR darf nicht blockieren => Nur mit Statemachine-Ansatz lösbar
=> Untauglich wenn viele Ereignisse mit unterschiedlichen Echtzeit-Anforderungen und/oder Verarbeitunsgszeit nahezu gleichzeitig eintreffen.
Vor- und Nachteile beim mix zwischen Interruptgesteuert und zeitunkritischer Verarbeitung im Hauptprogramm
Die meisten kostenoptimierten "low end" Mikrocontrollersysteme arbeiten so!
Vorteile:
- Schnelle Reaktion auf Ereignisse (sofern alle ISRs kurz sind)
- Keine grossen Anforderungen an Interrupt-Struktur (prellen im Hauptprogramm oder Timer-ISR behandeln
Nachteile:
- Verarbeitung nicht ereignisspezifisch priorisierbar
- Moderate Gefahr von Race-Conditions (bei Entwurfsfehlern)
- Keine komplexe Projekte, da anspruchsvoll und unflexibel
Vor- und Nachteile beim Multitasking
Vorteile:
- Geeignet auch für sehr komplexe Projekte
- „Nebenläufigkeiten“ einfach realisierbar (quasigleichzeitige Abarbeitung)
- Auf Ereignisse bei Bedarf sehr schnell reagieren (ISR + hochpriorisierte Tasks)
- Wenig Anforderungen an Interrupt-Struktur (keine nested ISR benötigt )
Nachteile:
- Der Wechsel zwischen Tasks benötigt Zeit
- Grösserer Speicherressourcenbedarf
- Debugging ev. problematisch (nicht rein sequentiell, stack overflow)
- Shared Ressources sind heikel
Was ist der Unterschied von FreeRTOS zu eCos?
eCos liefert auch einen Bootloader, Treiber, Filesystems, Netzwer/USB-Stacks und Bibliotheken mit.
Welche nicht-technischen Kriterien müssen bei der RTOS-Wahl berücksichtigt werde?
Lizenzkoste/-bedingungen
Support/Community
Zertifizierung
- SIL 1..4 IEC 61508/IEC61511 (Auto, Medizin)
-
- 1 / 61
-