Einfache Konfiguration und Programmierung einer Smart-MCU

Autor / Redakteur: Gregor Knappik * / Sebastian Gerstl

Tests und Integration von Software-IPs aus Händen von Drittanbietern wird immer komplexer und zeitaufwändiger. Wie können Anforderungen an Mikrocontroller schon frühzeitig genauer spezifiziert werden?

Anbieter zum Thema

Bild 1: Früher waren primitive Services und HAL überschaubar, heute steigt die Komplexität durch die Verwendung neuer Stacks und die zu unterstützenden Hardwarekomponenten auf dem PCB
Bild 1: Früher waren primitive Services und HAL überschaubar, heute steigt die Komplexität durch die Verwendung neuer Stacks und die zu unterstützenden Hardwarekomponenten auf dem PCB
(Bild: Atmel)

Die Anforderungen an zu entwickelnde Produkte werden, genau wie deren Komplexität, immer größer. Das führt letztendlich auch zu einem Anstieg der zu unterstützenden Software-IPs. Entwickler müssen immer häufiger auf fertige IPs zurückgreifen, die auf der Stacks- und Komponentenebene von Drittanbietern zur Verfügung gestellt werden. Neben der Testphase nimmt die Integration von Software im Embeddedbereich immer mehr Zeit in Anspruch und ist – manuell durchgeführt – extrem fehleranfällig. Es stehen viele Fragen im Raum: Wie können die Anforderungen an die Smart MCU schon frühzeitig genauer spezifiziert werden? Wie kann die Auswahl eingeschränkt und die Konfiguration der passenden MCU vorgenommen werden?

Bildergalerie

Als Beispiel soll ein komplexer IoT-Edge Node mit Unterstützung diverser Stacks, RTOS, Cloud Services, Low-Power-Eigenschaften sowie verschiedenen Kommunikationstechnologien wie 6LowPAN, Wi-Fi und BLE entwickelt werden. Mit steigender Zahl an Komponenten müssen häufiger „Cross-Checks“ durchgeführt werden: Ist der Cloud Service Agent mit der vorher ausgewählten MCU kompatibel, und wenn ja – wird auch die gewünschte Kommunikationstechnologie unterstützt? Reicht der Speicher aus oder muss eine leistungsstärkere Mikrocontroller-Familie in Betracht gezogen werden? Wie wirkt sich eine solche Entscheidung auf den Stromverbrauch aus? Wie können diese Parameter abgeschätzt werden?

Mit dem kostenfreien Atmel Studio, Version 6.x hat Atmel die Welten der AVR- und ARM-Mikrocontroller vereint. Durch das Atmel Software Framework (ASF) und die Atmel Gallery wurde eine Plattform geschaffen, die sich nicht nur mit der Peripherie der entsprechenden MCU-Familie auseinandersetzt, sondern auch eine Treiberstruktur schafft, welche Services wie FreeRTOS, Stacks wie USB Device oder eine Komponente um den Mikrocontroller herum unterstützt. Mit dem ASF Wizard ist es zudem möglich, verschiedene Komponenten mit wenigen Mausklicks in ein bestehendes Projekt zu integrieren. Die genaue Verwendung der Komponente wird dem Entwickler durch entsprechende Quick-Start-Guides im ASF-Treiber dokumentiert.

Früher ergab sich folgende Situation: Es gab verschiedene Softwarequellen wie die Atmel-Webseite, Foren, Blogs, Tutorials und Webseiten von Drittanbietern (z.B. FreeRTOS), auf denen Treiber, Stacks und Services zur Verfügung gestellt wurden. Der ASF Wizard hat die nun Software-Integration automatisiert, um die Entwicklung von Prototypen, die auf einem Atmel-Mikrocontroller basieren, zu beschleunigen. Der Entwickler kann die benötigten Komponenten aus einer Liste aller verfügbaren Teile auswählen; der ASF Wizard übernimmt deren Integration in ein neues Atmel Studio-Projekt.

Doch eine Plattform zur Clock-Konfiguration oder FreeRTOS-Integration anzubieten reicht heutzutage nicht mehr. Um bei der Bewältigung der anfangs erwähnten Herausforderungen zu helfen, unterstützt Atmel Entwickler mit einem dreiteiligen Tools-Paket, bestehend aus Atmel Start, Atmel Studio 7 und einem optimierten Atmel Software Framework-Konzept. Welche Neuerungen dabei im Detail eingeführt wurden, soll im Folgenden erläutert werden.

Ein Web-basiertes Tool für eine schnelle Projekterstellung

Atmel Start hilft dem Entwickler bei der Auswahl einer Smart ARM Mikrocontroller-Familie sowie bei der Konfiguration der benötigten Clocks, Pins, Komponenten, Treiber und Beispielprojekte. Danach wird alles in ein Atmel Studio-, Keil uVision- oder IAR-Projekt exportiert und kann auf einer lokalen Festplatte weiter bearbeitet werden. Derzeit werden folgende Atmel SMART ARM-Plattformen unterstützt: SAMD21, SAMD10/11/20, SAML21/22, SAMC21, wobei die Auswahl konsequent erweitert wird.

Das Atmel Start Web-Tool:

  • listet die vorhandenen Software IPs entsprechend der Evalboard-/MCU-Auswahl auf und konfiguriert sie. Die Entwicklungen können dabei von Atmel oder auch von Drittanbietern stammen.
  • unterstützt die grafische Pin/Mux- und Clock-Konfiguration der MCU
  • verfügt über eine automatische Code-Generierung (Driver init, Clock Setup, Port Setup, Interrupt Handler).
  • erlaubt einen „on-the-fly“-Einblick in den Code während der Konfigurierung der Peripheren und der Softwarekomponenten.
  • ermöglicht einen Software-Download (CMSIS-PACK) in eine wählbare IDE (derzeit Atmel Studio, Keil uVision und IAR).
  • erlaubt das erneute Laden des erstellten Atmel Studio-Projektes in die Atmel Start-Umgebung, um die Konfiguration zu ändern oder Softwarekomponenten hinzuzufügen, bzw. zu entfernen.

Nun könnte der Eindruck entstehen, dass ein Web-basiertes Tool Atmel Start oder Atmel Studio andere IDEs ersetzt. Die Tools werden jedoch beide weiterhin explizit getrennt eingesetzt und sind damit weder ein Ersatz für eine IDE, noch für einen Debugger/Programmator. Sie helfen dabei, das Atmel-Ecosystem zu erkunden und eine neue Familie von Mikrocontrollern kennenzulernen, noch bevor irgendeine Software auf einem privaten Rechner installiert werden muss. Ferner bietet Atmel Start auch Drittanbietern (sogar solchen, die Open Source nutzen), die Möglichkeit, eigene Softwarekomponenten für andere Nutzer mit Hilfe einer skalierbaren Entwicklungsumgebung im Atmel Start System zu hinterlegen.

ASF 4.0 – Neue Treiberstruktur mit einfachem IO-System

Die nächste ASF-Generation in der Version 4.0 enthält das größte Upgrade seit der Einführung des Frameworks. Während das bisherige Modell als generische Plattform für 8-Bit AVR, 32-Bit AVR und Smart ARM diente, ist das neue ASF jeweils für die entsprechende MCU-Architektur optimiert.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Die Performance gegenüber einem generischen Treibermodell wurde gesteigert. Allem voran wurde allerdings der Flash- und RAM-Verbrauch gesenkt, da lediglich die ausgewählte MCU-Architektur unterstützt wird. Um auch Einsteigern die Arbeit mit der MCU zu vereinfachen, wurde ein einfaches IO-System eingeführt, das nicht POSIX-kompatibel ist.

Schlanker, schneller, über Plug-Ins nach Bedarf konfigurierbar

Auch Atmel Studio 7.0 wurde komplett überarbeitet. Umfasste die Vorgängerversion noch die komplette Toolchain und die ASF-Versionen für sämtliche Mikrocontroller von Atmel, erlaubt nun ein stark vereinfachter Web-Installer die gezielte Auswahl jener Toolchain- und ASF-Komponenten, die vom Entwickler auch tatsächlich gebraucht werden. Die Gruppierung erfolgt dabei nach 8-Bit AVR, 32-Bit AVR und ARM-Architektur. So wird nicht nur der Speicherbedarf der Festplatten, sondern auch die Größe des Downloads reduziert.

Viel Aufmerksamkeit wurde der Visual Studio Engine geschenkt, die die Basis für die in Atmel Studio integrierte Entwicklungsplattform ist. Dank der Visual Studio Isolated Shell (Version 2013) wird nicht nur die Startzeit verkürzt, auch die Benutzerumgebung reagiert schneller auf Eingaben und die IDE wirkt aufgeräumter und ist besser an persönliche Bedürfnisse anpassbar. Nutzer von Atmel Studio 7.0 haben außerdem Zugriff auf die aktuellste Version von Visual Assist der Firma Whole Tomato Software. Ein sehr hilfreiches Feature ist hierbei die kontext-sensitive Hilfe im Editor und in der IO-View. Wird der Cursor beispielsweise auf einer Timer Counter-Variable positioniert, dann kann der Nutzer durch das Drücken von F1 die Stelle im Datenblatt öffnen, an der sich die genaue Beschreibung der besagten Variable befindet.

Arduino-Nutzer profitieren von der Importfunktion für Arduino-Projekte. Diese erstellt ein C++-Projekt mit korrekten Include-Pfaden zur Arduino-Source-Code-Bibliothek. Zudem wurde das Hilfssystem verbessert: Sämtliche Updates erfolgen über den Atmel-Server und das Hilfspaket kann – je nach Bedarf – offline zur Verfügung gestellt werden. Die Nutzer werden benachrichtigt, sobald neue Updates zur Verfügung stehen. So ist die Dokumentation unabhängig von der künftig installierten Atmel Studio-Version. Ein weiterer Vorteil ist die bessere Integration der Datenblätter in das Hilfssystem.

Das kostenlose Atmel Studio war bisher ausschließlich auf Mikrocontroller beschränkt. Die neueste Version integriert nun erstmals die nötige Toolchain für Mikroprozessoren der SAMA5-Cortex-A5-Serie. Damit wird die „Bare-Metal“-Entwicklung eines Mikroprozessors ohne ein Betriebssystem wie Linux stark vereinfacht.

Das Atmel Studio 7.0 / Atmel Start Paket stellt eine kostenlose Erkundungs- und Entwicklungsumgebung dar. Die integrierte Toolchain wird von Atmel selbst gepflegt und ist ohne Beschränkungen, weder in Bezug auf maximale Codegröße, Compiler-Optimierung oder zeitliche Nutzung. Durch die Unterstützung von Atmel-MCUs aller Leistungsklassen – vom kleinsten 8-Bit-AVR bis zum Cortex-A5-basierten SAMA5 – erhält der Nutzer zudem eine hochintegrierte Entwicklungsplattform.

Atmel Start ist ein Werkzeug zur Softwarekonfiguration, das den Nutzer nicht auf eine einzige IDE beschränkt, sondern eine offene Schnittstelle für Drittanbieter besitzt. Diese erhalten so Unterstützung für komplexe IoT-Projekte mit Cloud-Unterstützung. Und Anwender bekommen eine Plattform, die es ihnen ermöglicht, den richtigen Mikrocontroller entsprechend der Verfügbarkeit von Softwarekomponenten auszuwählen.

* Gregor Knappik hat jahrelange Erfahrung in der Software-Entwicklung und -Integration sowohl auf Mikrocontrollern als auch auf Mikroprozessoren.

(ID:43620146)