Durch den Erfolg der Cortex-Mikrocontroller gibt es etliche Software-Hersteller, die Entwicklungs-Tools anbieten und sich auf die Unterstützung von ARM-Mikrocontrollern spezialisiert haben. Einige Komplett-Lösungen zur Software-Entwicklung sind:
Cortex-Mikrocontroller integrieren umfangreiche Peripherie, beispielsweise:
Zur Ansteuerung dieser Peripherie werden umfangreiche Software-Stacks und Peripherie-Treiber benötigt. Außerdem ist der Einsatz eines Echtzeit-Betriebssystems bei vielen Embedded-Applikationen sinnvoll. Fast alle Mikrocontroller-Hersteller liefern kostengünstige Starter-Kits, die meist einen JTAG-Debugger und Evaluierungs-Lizenzen für Entwicklungs-Tools enthalten (Bild 2).
Da der CMSIS-Layer für alle Compiler-Hersteller identisch ist, sind bei einer Änderung der Toolchain keine Anpassungen erforderlich. CMSIS bietet Standard-Schnittstellen an, die von vielen Halbleiter- und Middleware-Partnern verwendet werden können, und reduziert Projektrisiken, da eine CMSIS-Schnittstelle schon geprüft und zertifiziert sein kann. Sobald der Standard allgemein gebräuchlich ist, ist Benutzer-Sourcecode, der CMSIS-Schnittstellen verwendet, einfacher zu verstehen und daher leichter zu überprüfen.
Standards senken Kosten
Die Industrie nutzte frühzeitig Standards zur Qualitätssteigerung der Produkte und erlaubte damit die Wiederverwendung von Komponenten und die Verteilung von Kosten über mehrere Projekte hinweg. In der Praxis erlangen solche Standards eine breite Akzeptanz, weil die Synergieeffekte erhebliche Vorteile für die Benutzer bieten. In der Elektronik-Industrie gibt es jede Menge solcher Standards, jedoch sind im "Deeply-Embedded-Markt" bis heute nach wie vor viele proprietäre Mikrocontroller-Architekturen im Einsatz, die die Einführung von effizienten Software-Standards verhindern.
Ein Standard-Prozessor wie Cortex-M0, Cortex-M3 oder Cortex-M4 ermöglicht nicht nur die Wiederverwendung der gleichen Entwicklungs-Tools für viele Projekte; zusammen mit dem CMSIS werden auch die Entwicklungskosten gesenkt, da sich Software-Komponenten leichter projektübergreifend nutzen lassen. Die allgemein gebräuchlichen Programmier-Schnittstellen, die durch CMSIS eingeführt werden, erleichtern langfristige Software-Wartung, da Applikationen, die CMSIS-Schnittstellen verwenden, auch von neuen Teammitgliedern einfach verstanden werden können.