Bild 1: Mit Version 4 hat Infineon die Entwicklungsumgebung Dave modernisiert. Dazu gehören auch Apps (Softwarekomponenten) für viele Anwendungsgebiete.

Bild 1: Mit Version 4 hat Infineon die Entwicklungsumgebung Dave modernisiert. Dazu gehören auch Apps (Softwarekomponenten) für viele Anwendungsgebiete.Infineon

Nach der erfolgreichen Betaphase ist nun die aktuelle Version 4 des „Digital Application Virtual Engineer“ verfügbar: Ab dem 23. Juli 2015 stellt Infineon seinen „DAVE“ in der Version 4 als kostenfreies Entwicklungstool zum Download bereit (Bild 1). Die professionelle Eclipse-basierte Entwicklungsplattform begleitet und unterstützt den Anwender bei der Softwareentwicklung, und zwar von der Evaluierung bis zum Produkt. Dafür stellt Infineon unter anderem ein umfangreiches peripherie- und anwendungsorientiertes, komponentenbasiertes Code-Repository bereit. Außerdem generiert Dave passenden Code für die Peripherie von Infineons XMC-Mikrocontrollern.

Durch den komplementären Ansatz kann der Anwender den in Dave konfigurierten und generierten C-Quellcode mit den verfügbaren kommerziellen Third-Party-Tools für ARM übersetzen, linken und auf die MCU laden. Damit ist der Entwicklungszyklus von der Evaluierung über den ersten Prototyp bis zum Produkt vollständig abgedeckt und der Anwender hat die maximalen Freiheitsgrade für eine schnelle und effiziente plattformorientierte Software- und Produktentwicklung.

Integrationsauftrag

Einerseits standardisiert die Embedded-Branche zusehends auf ARM-Cores, gleichzeitig steigt die Integrationsdichte von herstellerspezifischen Peripherien und das Produktportfolio wächst. Um damit Schritt zu halten, sind Abstrahierungen gefragt, wie sie Infineon in Dave vorsieht. Das ermöglicht es dem Entwickler, auf die eigentliche Applikation zu fokussieren ohne sich umfangreiche Hardwarekenntnisse aneignen zu müssen; damit verkürzt sich letztlich die Entwicklungszeit und die Wahrscheinlichkeit für Fehler sinkt. Infineon hat Dave in der Version 4 konsequent weiterentwickelt und erweitert hin zu einer abstrahierend skalierbaren und doch effizienten hardwarenahen, komponentenbasierenden Programmierung für XMC-Mikrocontroller.

Bild 2: Dave abstrahiert von konkreten Peripheriemodulen. Das Gespann aus XMC-Lib, Dave-SKD, Dave-Apps und kompletten Beispielen erleichtert das Schreiben eigener Programme für XMC-Mikrocontroller.

Bild 2: Dave abstrahiert von konkreten Peripheriemodulen. Das Gespann aus XMC-Lib, Dave-SKD, Dave-Apps und kompletten Beispielen erleichtert das Schreiben eigener Programme für XMC-Mikrocontroller.Infineon

Die Anpassungen und Erweiterungen beinhalten unter anderem verbesserte Datenmodelle und verbesserte Grafik, skalierbare Softwaretreiber für einzelne Peripherien (XMC-Lib) und Softwarekomponenten für dedizierte Anwendungsfälle (Dave-Apps). Die Darstellung, Modularität und Abstraktion in der Entwicklungsumgebung vereinfacht dabei die Wiederverwendbarkeit und Effizienz der Softwareentwicklung (Bild 2).

  • Dave: Eclipse-basierte Entwicklungsumgebung (IDE) inklusive GNU C-Compiler, Debugger, Ressource-Solver und Codegenerierung.
  • XMC-Lib: Statische Device-Treiber-Ebene nach CMSIS und MISRA-C:2004, Bibliothek von Schnittstellen (APIs) zur Peripherieprogrammierung der XMC-Mikrocontroller.
  • Dave-Apps: Grafisch konfigurierbare, abstrahierende anwendungs- und applikationsorientierte Softwarekomponenten.
  • Dave-SDK: Softwareentwicklungskit (Software Development Kit) zur Modifikation oder Erweiterung von bestehenden Dave-Apps oder zur Entwicklung neuer Dave-Apps.
  • Examples: Sammlung von Beispielen, die auch zur Weiterverwendung gedacht sind. Umfasst Anwendung und Applikationen auf Basis der XMC-Lib und Dave-Apps.
  • Third-Parties: Die XMC-Lib und der mit Dave-Apps generierte Code eignen sich für die Verwendung mit GCC-, ARM-, Tasking- und IAR-Compiler und können mit den gängigen Entwicklungsumgebungen von Altium, ARM/Keil, Atollic, IAR Systems und Rowley genutzt werden.

Neben verbesserter Bedienbarkeit und Grafik hat Infineon zusätzliche Funktionen wie Dave-App-Tree-Dependency oder Pin-Assignment-View eingeführt. Letztere zum Beispiel stellt die manuelle Pin-Festlegung am gewählten Gehäuse übersichtlich und grafisch dar.

Übersichtliche Struktur

Neben verbesserter Bedienbarkeit und Grafik hat Infineon zusätzliche Funktionen wie Dave-App-Tree-Dependency oder Pin-Assignment-View eingeführt. Letztere zum Beispiel stellt die manuelle Pin-Festlegung am gewählten Gehäuse übersichtlich und grafisch dar.

Eckdaten

Infineon hat Dave modernisiert: Dank einer abstrahierenden Bibliothek namens XMC-Lib arbeiten Apps und eigener Code unabhängig vom konkreten Mikrocontroller-Modell. Mit verbesserten Datenmodellen, Methodiken und mehr Benutzerfreundlichkeit will Dave die Softwareentwicklung für XMC-Mikrocontroller beschleunigen.

Um die Software und die Komponenten, die in Dave zur Verfügung stehen, besser wiederzuverwenden, wurde unter anderem eine statische Device-Treiber-Ebene eingeführt: Diese XMC-Lib ist den Dave-Apps untergeordnet, kann aber auch unabhängig von Apps oder Dave in gängigen Third-Party-Entwicklungsumgebungen Verwendung finden. Sowohl die XMC-Lib als auch die Dave-Apps mit dem grafischen Benutzerinterface bieten optimierte Softwarekomponenten, die es dem Anwender ermöglichen, schnell und hardwareabstrahiert zu programmieren. Durch die neue Softwareschicht der XMC-Lib greifen die Dave-Apps nicht direkt auf die Mikrocontroller- und Peripherieregister zu, sondern nutzen die jeweilige API der XMC-Lib. Das erhöht nicht nur die Wiederverwendbarkeit sondern verbessert auch zugleich die Übersichtlichkeit und Lesbarkeit des erzeugten Quellcodes. Um die Lesbarkeit, Skalierung und Wiederverwendbarkeit weiter zu verbessern, können Anwender nun auch User-Labels für die jeweilige Dave-App-Instanz frei definieren. User-Labels dienen dabei als Handler (Zeiger auf Objekt), um die Methoden einer Dave-App (API) auf die gewünschte Dave-App-Instanz (Objekt) anzuwenden.

Ressourcen finden

Damit der Anwender durch grafische Konfiguration und Kombination von Dave-Apps und XMC-Lib auch komplexe Anwendungen einfach hardwarenah programmieren kann, enthält Dave einen Ressource-Solver: Der Entwickler definiert in der Dave-App die benötigten Ressourcen zuerst logisch (virtuell). Der Ressource-Solver ordnet die logischen Ressourcen anschließend den physikalischen Hardwareressourcen des jeweiligen Mikrocontrollers zu. Der Solver geht dabei nach der „Constraint Logic Programming“-Methode vor. Dave generiert daraus abschließend einfach lesbaren und umfassend dokumentierten C-Quellcode, inklusive der Headerfiles, des Initialisierungscodes und der eigentlichen Funktionen, die Infineon zur weiteren lizenzfreien Nutzung bereitstellt.

Mit dem neuen und zusätzlichen Software Development Kit, dem Dave-SDK, kann der Anwender nun auch existierende Dave-Apps verändern, sie erweitern oder komplett neue Apps entwickeln. Damit kann der Entwickler ein eigenes, modulares Software-Repository aufbauen. Das Dave-SDK ist dabei als unabhängige Eclipse-Instanz Teil des Dave-Installationspakets. Dies ermöglicht die Erweiterung des Angebotes von Dave-Apps; zum Beispiel um Kommunikationsstacks, die der Entwickler dann einfach in die Anwendung einbinden kann.

Grundsätzlich kann das Dave-SDK auch ohne die Definition der XMC-Mikrocontroller-Ressourcen eingesetzt werden. Es lassen sich damit zum Beispiel statische Bibliotheken jedweder Art über ein grafisches User-Interface konfigurieren und damit deren Wiederverwendbarkeit vereinfachen.

Tiefgreifende Änderungen

Die weitreichenden Änderungen und Optimierungen im Zuge der Einführung des neuen Dave in der Version 4 führen dabei zu einer Inkompatibilität zur vorherigen Entwicklungsumgebung und Dave-Apps. Verbessert werden gleichzeitig jedoch die Systemperformance und die Response auf Basis der optimierten Datenmodelle zur Chip-Konfiguration und Ressourcenmanagement. Für den schnellen Ein- und Umstieg auf die aktuelle Dave-Entwicklungsumgebung wird Infineon zur Markteinführung der neuen Version ein umfassendes Angebot bereitstellen, mit Beispielprojekten für XMC-Lib und Dave-Apps, Videos, Tutorials, Applikationsschriften und Migrationsguidelines für die Weiterverwendung des konfigurierten und generierten Quellcodes mit Third-Party-Tools.

Bild 3:Typischer Entwicklungsablauf. Dave und kommerzielle ARM-Entwicklungswerkzeuge gehen dabei Hand in Hand.

Bild 3:Typischer Entwicklungsablauf. Dave und kommerzielle ARM-Entwicklungswerkzeuge gehen dabei Hand in Hand.Infineon

Der von Dave erzeugte Quellcode und die von Infineon zur Verfügung gestellte XMC-Lib eignen sich für die Verwendung mit GCC-, ARM-, Tasking- und IAR-Compiler. Er kann mit den Entwicklungsumgebungen von Altium, ARM/Keil, Atollic, IAR Systems und Rowley genutzt werden (Bild 3). Von der Evaluierung bis zum Produkt kann der Anwender dabei den kostenfreien Dave oder den in Dave konfigurierten Code mit einer der kommerziell verfügbaren ARM-Entwicklungsumgebungen weiterverwenden. Dies bildet eine Grundlage für die Skalierbarkeit und Wiederverwendung der Software, sowie die Programmierung auf einem hohen Abstraktionslevel, ohne tiefe Entwicklungskenntnisse bei Hardware- oder Echtzeit-Software für einen effizienten Entwicklungsprozess.

Etablierte Methoden

Bild 4: Infineon positioniert seine ARM-basierten XMC-Mikrocontroller für verschiedene industrielle Anwendungsfelder.

Bild 4: Infineon positioniert seine ARM-basierten XMC-Mikrocontroller für verschiedene industrielle Anwendungsfelder.Infineon

Dave unterstützt durch ein umfassendes Code-Repository bei gleichzeitiger Modularität und Skalierung einen effizienten Softwareentwicklungsprozess nach etablierten Methoden aus dem Bereich der PC- oder Server-Software-Entwicklung. Auf der einen Seite hat der Anwender damit ein besonders kostensensitives und effizientes Werkzeug zur Codegenerierung und Softwareentwicklung für die XMC-Mikrocontroller (Bild 4). Auf der anderen Seite auch die Möglichkeit, die verfügbare Peripherieperformance und Echtzeitfähigkeit der zukünftig über 160 XMC-Derivate optimal anzuwenden.

Mit der aktuellen Version 4 des „Digital Application Virtual Engineer“ will Infineon die Erfolgsgeschichte Dave fortführen und seine Vorreiterstellung im Bereich der Embedded-Software-Entwicklung ausbauen.