Anbieter zum Thema

Diese Zusammenarbeit hat dazu geführt, dass eine einfach zu bedienende und leicht erlernbare Programmierschnittstelle entstand. CMSIS bietet ein gemeinsames Konzept für die Anbindung von Peripherie, RTOS sowie Middleware-Komponenten und ist kompatibel mit verschiedenen Compiler-Implementierungen, einschließlich dem GCC und bietet die folgenden zwei Softwareschichten, die in Bild 2 hellbraun dargestellt sind:
- Peripheral Access Layer (PAL-CMSIS): enthält Namensdefinitionen, Adressdefinitionen und Hilfsfunktionen für den Zugriff auf die Register des Prozessorkerns und die Peripherie. Es führt eine konsequente Zugriffsweise auf Peripherien, Exception/Interrupt-Vektoren ein und stellt eine Standardfunktion für den System-Start-up zur Verfügung. CMSIS-PAL definiert auch eine geräteunabhängige Schnittstelle für ein RTOS-Kernel und Daten-Trace-Kanäle für RTOS-Kernel-fähige Debugger und einfaches Debugging im printf-Stil.
- Middleware Access Layer (CMSIS-MAL): Stellt für die Software-Industrie allgemeingültige Methoden für den Zugriff auf Peripherien. Der Middleware Access Layer wird von den Halbleiterherstellern für die hardwarespezifischen Peripherien adaptiert, die von komplexeren Middleware-Komponenten (wie Kommunikations-Stacks) genutzt werden. Er befindet sich derzeit in Entwicklung und wir erwarten, dass IAR, Keil, Micrium, Segger und andere Middleware-Anbieter mit der Auslieferung von CMSIS-MAL-konformen Komponenten in der zweiten Hälfte des Jahres 2009 beginnen.
Peripherie-Programmierung und direkte Ansteuerung
Der CMSIS ist keine weitere komplexe Softwareschicht, die Halbleiteranbieter zwingt, identische Funktionalität zu produzieren. Der CMSIS-PAL definiert allgemeingültige Methoden zur Programmierung von Peripherien. Die einzelnen Peripheriekomponenten, wie z.B. I/O-Port, Timer, PWM, A/D, D/A etc. können sich in Leistung und Funktionsumfang unterscheiden. Der CMSIS verhindert nicht den direkten Hardwarezugriff, da die Peripherieregister immer noch direkt angesprochen werden können.
(ID:314267)