Benutzer-Werkzeuge

Webseiten-Werkzeuge


bidibonemitatmelstudio

Dies ist eine alte Version des Dokuments!


BiDiBOne mit AtmelStudio 6 aufbauen

FIXME FIXME FIXME FIXME FIXME

ACHTUNG: Dieser Artikel wird gerade überarbeitet.

FIXME FIXME FIXME FIXME FIXME FIXME FIXME

Solution und Projekte

Bevor wir Software mit dem AtmelStudio herstellen können, müssen die Quellen aus dem Repository in der vorgesehenen Verzeichnisstruktur zur Verfügung stehen (siehe BiDiBOne aus dem Repository laden).

Für eine bessere Übersicht und Wartung sind die Quellen für Basis und AddOns in verschiedenen Projekten als so genannte Submodule organisiert. Dabei stellt die Basis das Hauptmodul und die jeweiligen AddOn-Projekte ein Submodul dar.

AddOn-Projekte werden dabei ausschließlich im AddOn-Teil entwickelt! Eventuell notwendige Änderungen im Basisteil, die für die allgemeine AddOn-Entwicklung interessant sind, müssen separat besprochen und durchgeführt werden.

Eigenes AddOn-Projekt

Für ein eigenes AddOn wählen wir einen passenden Namen, z.B. OneDrive. Dazu kopieren wir z.B. das MyAddon-Projekt - auf der gleichen Verzeichnisebene! - und benennen das Verzeichnis und die Muster-Projekt-Datei aus dem Verzeichnis OneDrive/env/AtmelStudio6 entsprechend um. Eventuell mit kopierte .git-Dateien sind zu löschen.

Wie schon in BiDiBOne aus dem Repository laden beschrieben, muss die Projektdatei aus dem Verzeichnis OneDrive/env/AtmelStudio6 nach OneDrive kopiert werden. Durch Doppelklick wird das Studio gestartet. Diese Projektdatei ist zwingend auf die beschriebene Verzeichnisstruktur angewiesen. Sollten Fehler in der Compilierung auftreten, ist die Verzeichnisstruktur zu überprüfen und die Projektdatei erneut in ihrer Ursprungsversion zu starten. Beachte: Die Alternative, mit Änderungen an den Include-Pfaden das Projekt lauffähig zu machen, ist aus Gründen der Wartbarkeit nicht gewünscht, ein Support ist damit nicht mehr möglich! (Will heißen: Bei Öffnen des Gerätes erlischt der Garantieanspruch 8-) ).


Überschrift

Das Zusammenspiel der einzelnen Projekte wird in den Properties der Solution geregelt.

Dazu ist im Solution-Explorer die Solution-Zeile anzuwählen und im Kontextmenü (z.B. Rechtsklick) der Menüpunkt Properties zu wählen.


Im Atmel Studio 6 hat man die Auswahl zwischen einem einzelnen oder mehreren Startup Projekten. In jedem Falle kann man aber beim BiDiBOne nur einen Startpunkt wählen. Das sollte das AddOn-Projekt sein:


Die Abhängigkeiten unter den einzelnen Projekten sind im Absatz Project Dependencies einzustellen (dazu jedes Projekt einzeln in der Drop-Down-Box aufrufen): Die Abhängigkeiten regeln die Reihenfolge, in der die einzelnen Projekte gebaut werden. Die zeigt Atmel Studio 6 u.A. im Punkt Startup Projects.


Basis-Projekt

Die Basis enthält alle zum Betrieb notwendigen Funktionen. Zusätzlich werden viel gebrauchte Hilfsfunktionen zur Verfügung gestellt.

Die Quellen im Basis-Projekt sollten in keinem Falle direkt geändert werden. Sollten dennoch Anpassungen notwendig sein, die nicht allgemeingültig sind das unter AddOn-Basisersatz-Projekt beschriebene Verfahren zu verwenden.

Dieses Vorgehen dient der klaren Trennung und leichteren Wartbarkeit der Software.

AddOn-Projekt

Das AddOn-Projekt enthält die eigentliche Funktionalität für die Zusatzhardware.

Um die vordefinierten Funktionen dem Basis-Projekt zugänglich zu machen, ist in den Properties des AddOn-Projektes im Kapitel: ToolChain - AVR/GNU C Compiler bei Symbols das Symbol ADDON_IMPLEMENTED einzutragen:

Das AddOn-Projekt liegt parallel zum Basis-Projekt. Es enthält unterhalb des Verzeichnisses src mindestens die Verzeichnisse addon und core. Soll die main-Funktion angepasst werden, muss sie direkt in das src-Verzeichnis kopiert werden.

Das AddOn-Projekt im Solution-Explorer am Beispiel OneControl:

Im addon-Verzeichnis befinden sich die Quellen, die die Anbindung an das Basis-System ermöglichen. Sie werden direkt durch „Add“ eingebunden. Details finden sich weiter unten.

Im core-Verzeichnis befinden sich alle notwendigen Dateien aus dem Basis-Projekt. Sie werden als „Add As Link“ eingebunden und werden so nicht physisch kopiert sondern verbleiben ausschließlich im Basis-Projekt. Die Quellen werden mit einem Verknüpfungssymbol angezeigt.

Alle für das AddOn-Projekt notwendigen Verzeichnisse und Quellen können jetzt nach Bedarf ergänzt werden. Es empfiehlt sich aber aus Gründen der klaren Abgrenzung eigene Quellen in Verzeichnisse unterhalb des addon-Verzeichnisses zu legen.


AddOn-Basisersatz-Projekt


FIXME FIXME

(Mit der Einführung eines Versionerungssystems entfällt dieses AddOn-Basisersatz-Projekt. Die hier beschriebenen Änderungen am Basisprojekt werden in einem so genannten Branch durchgeführt!)

FIXME FIXME


Es kann Fälle geben, in denen man Quellen aus dem Basis-Projekt zeitweilig oder auch dauerhaft für sein AddOn anpassen muss. Und die Anpassungen sollen nicht allgemeingültig sein.

Diese Maßnahme sollte aber die Ausnahme sein, da die in den eigenen AddOns angepassten Quellen nicht bei einem Update des Basis-Projektes nachgeführt werden!

Die anzupassenden Quellen müssen dann in ein eigenes Projekt kopiert werden. Dort können sie angepasst werden ohne Einfluß auf das Basis-Projekt selber oder gar andere AddOns zu nehmen. Hierbei sind die im Folgenden beschriebenen Besonderheiten des Atmel Studio 6 zu beachten.

Das Atmel Studio erstellt aus den Quellen für jedes Projekt einer Solution ein makefile. Quellen, die in anderen Projekten liegen und über eine Verknüpfung referenziert werden, bindet Atmel Studio ebenso ein. Das entsprechende makefile wird aber abhängig von der alphabetischer Reihenfolge der internen Projektnamen aufgebaut. Da unsere angepasste Quellen anstatt der eigentlichen aus dem Basis-Projekt eingebunden werden sollen, müssen sie in einem Projekt mit einem günstigen Namen angelegt werden; hier empfiehlt sich der Name A_<AddOn-Projektname>.

Die Verknüpfung („Add As Link“) im AddOn-Projekt bezieht sich jetzt auf dieses Hilfsprojekt anstatt auf das Basis-Projekt.

Das funktioniert sicher mit C-Quellen. Bei Header-Dateien kann man auf die speziellen Header hinweisen. Allerdings beziehen sich Quellen aus dem Basisverzeichnis immer noch auf ihre Header dort. Bei ungeschickter Konstellation kann das aber zu Inkonsistenzen führen.

Zum korrekten Bauen muss das Hilfsprojekt eine Datei mit einer main-Funktion haben (im Beispiel: mainDummy.c).

(Dieses Verhalten von Atmel Studio lässt sich im makefile überprüfen.)


Zusammenfassung

  1. AddOn-Projekt mit vorgegebener Verzeichnisstruktur erstellen
  2. Projektattribute anpassen (i.e. ADDON_IMPLEMENTED)
  3. In der Solution Projektreihenfolge und -abhängigkeiten festlegen
  4. Benötigte Basis-Projekt-Dateien über „Add As Link“ in das core-Verzeichnis einbinden
bidibonemitatmelstudio.1392807136.txt.gz · Zuletzt geändert: 2016/07/05 10:47 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki