Benutzer-Werkzeuge

Webseiten-Werkzeuge


bidibonemitatmelstudio

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bidibonemitatmelstudio [2014/02/19 11:49] – [Eigenes AddOn-Projekt] Michaelbidibonemitatmelstudio [2018/01/28 11:43] (aktuell) – [BiDiBOne-AddOn mit AtmelStudio 6 aufbauen] Michael
Zeile 1: Zeile 1:
-====== BiDiBOne mit AtmelStudio aufbauen ======+====== BiDiBOne-AddOn mit AtmelStudio aufbauen ======
  
-FIXME FIXME FIXME FIXME FIXME +Der Artikel beschreibt den Umgang mit dem AtmelStudio6 im Zusammenhang mit BiDiBOne und der bereitgestellten Projektdatei MyAddOn.cproj.
-  +
-**ACHTUNG:** Dieser Artikel enthält z.Tveraltete Informationen, z.B. das AddOn-Basisersatz-Projekt. +
- +
-FIXME FIXME FIXME FIXME FIXME FIXME FIXME+
  
 ===== Solution und Projekte ===== ===== Solution und Projekte =====
Zeile 16: Zeile 12:
 ==== Eigenes AddOn-Projekt ==== ==== 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.+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. Die mit kopierte .git-Datei ist zu löschen, die .gitignore-Datei sollte erhalten bleiben.
  
 Wie schon in [[bidiboneausrepository|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. Wie schon in [[bidiboneausrepository|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.
Zeile 22: Zeile 18:
 **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-) ). **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-) ).
  
----- +Die Verzeichnisstruktur sollte dann im AtmelStudio6 wie folgt aussehen:
-===== Überschrift ===== +
- +
-{{codehilfe:oc_solutionpropertiesanwahl.jpg |}} +
-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: +
-{{ codehilfe:oc_solutionstartupproject.jpg |}} +
----- +
-Die Abhängigkeiten unter den einzelnen Projekten sind im Absatz //Project Dependencies// einzustellen (dazu jedes Projekt einzeln in der Drop-Down-Box aufrufen): +
-{{ codehilfe:oc_solutionprojectdependencies.jpg |}} +
-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: +
-{{ codehilfe:oc_toolchainsymbols.jpg |}} +
- +
-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: +
  
 {{codehilfe:oc_addonminimal.jpg |}}  {{codehilfe:oc_addonminimal.jpg |}} 
  
-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 ''addon''-Verzeichnis befinden sich die Quellen, die die Anbindung an das Basis-System ermöglichen. Sie sind 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.+Im ''src'' befindet sich das main-Modul, im ''library''-Unterverzeichnis befinden sich alle notwendigen Dateien aus dem Basis-Projekt. Alle Dateien aus dem Basis-Projekt sind 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.
  
 +==== Ergänzungen ====
 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. 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.
  
----- +**Beachte:** Mit den Ergänzungen wird auch die Projektdatei vom AtmelStudio6 entsprechend angepasstDann muss die Projektdatei nach Addon/env/AtmelStudio6 kopiert und von dort aus ins Repository einestellt werden!
- +
- +
-==== AddOn-Basisersatz-Projekt ==== +
- +
- +
-----  +
-FIXME FIXME +
- +
-''(Mit der Einführung eines Versionerungssystems entfällt dieses AddOn-Basisersatz-ProjektDie 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.  +<WRAP center round important 80%> 
-Das entsprechende **makefile** wird aber abhängig von der **alphabetischer Reihenfolge der internen Projektnamen** aufgebaut. +Konfigurationswerkzeuge wie BiDiB-Monitor und BiDiB-Wizard unterstützen zum Firmware-Update ein bestimmtes Format wie //MyAddOn_1.02.03.zip// mit z.B. der Standardund Plus-Version
-{{ codehilfe:oc_solutionexplorer.jpg|}}  +
-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.+Im AddOnStub-Projekt werden die gebauten Projekte für das AtmelStudio entsprechend zubereitet. Dazu stehen so genannte Solution(MyAddOn.atsln) und Projektdateien (MyAddOn_Plus.cproj, MyAddon_Std.cproj) zur Verfügung.
  
-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 dortBei ungeschickter Konstellation kann das aber zu Inkonsistenzen führen.+Allerdings benötigt dieser Zusammenbau eine zusätzliche Applikation: **gawk**Die muss separat zur Verfügung gestellt (Suche: "gawk windows") und der Pfad um das bin-Verzeichnis ergänzt werden. 
 +</WRAP>
  
-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 ===== ===== Zusammenfassung =====
-  - AddOn-Projekt mit vorgegebener Verzeichnisstruktur erstellen +  - MyAddOn-Musterprojekt kopieren und umbenennen 
-  - Projektattribute anpassen (i.e. ADDON_IMPLEMENTED) +  - Projektdatei aus AddOn/env/AtmelStudio6 nach AddOn kopieren 
-  - In der Solution Projektreihenfolge und -abhängigkeiten festlegen +  - AtmelStudio6 durch Doppelklick auf die Projektdatei starten 
-  - Benötigte Basis-Projekt-Dateien über "Add As Link" in das ''core''-Verzeichnis einbinden+  - Solutiondatei (im AddOn-Verzeichnis) speichern 
 +  - Projektdatei bei Änderung zurück nach env/AtmelStudio6 kopieren und ins Repository einstellen
  
bidibonemitatmelstudio.1392806989.txt.gz · Zuletzt geändert: 2016/07/05 10:47 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki