Benutzer-Werkzeuge

Webseiten-Werkzeuge


softwareorganisation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
softwareorganisation [2014/01/16 10:03] – neues Unterkapitel Michaelsoftwareorganisation [2014/01/16 12:49] Michael
Zeile 1: Zeile 1:
 ====== Softwareorganisation mit BiDiBOne ====== ====== Softwareorganisation mit BiDiBOne ======
- 
-FIXME FIXME FIXME FIXME FIXME FIXME  
-**DIESES KAPITEL WIRD GERADE UEBERARBEITET!** 
-FIXME FIXME FIXME FIXME FIXME 
  
 Die Basissoftware des BiDiBOne enthält neben den Funktionen zur Kommunikation mit dem BiDi-Bus auch das Tasksystem Cortos und einige andere Grundfunktionen sowie die Debug-Schnittstelle. Die Basissoftware des BiDiBOne enthält neben den Funktionen zur Kommunikation mit dem BiDi-Bus auch das Tasksystem Cortos und einige andere Grundfunktionen sowie die Debug-Schnittstelle.
Zeile 17: Zeile 13:
 Die folgenden Kapitel beschreiben verschiedene Wege, ein AddOn mit der BiDiBOne-Basis-Software zu verbinden. Die folgenden Kapitel beschreiben verschiedene Wege, ein AddOn mit der BiDiBOne-Basis-Software zu verbinden.
   * [[BiDiBOneAusRepository|BiDiBOne aus dem Repository laden]]   * [[BiDiBOneAusRepository|BiDiBOne aus dem Repository laden]]
-  * BiDiBOne mit ArmelStudio6 neu aufbauen +  * [[BiDiBOneMitAtmelStudio|BiDiBOne mit AtmelStudio6 neu aufbauen]]
- +
-===== Solution und Projekte ===== +
-Für eine bessere Übersicht und Wartung sind die Quellen für Basis und AddOn(s) in verschiedenen Projekten unter einer Solution organisiert. +
- +
-Es gibt eine Solution: **BiDiBOne** mit dem Projekt **Basis** und weiteren AddOn-Projekten (Details siehe unten). +
- +
-{{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 |}}  +
- +
-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 ==== +
- +
- +
----- +
- +
-''(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!)'' +
- +
----- +
- +
-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. +
-{{ 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. +
- +
-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 ===== 
-  - AddOn-Projekt mit vorgegebener Verzeichnisstruktur erstellen 
-  - Projektattribute anpassen (i.e. ADDON_IMPLEMENTED) 
-  - In der Solution Projektreihenfolge und -abhängigkeiten festlegen 
-  - Benötigte Basis-Projekt-Dateien über "Add As Link" in das ''core''-Verzeichnis einbinden 
  
softwareorganisation.txt · Zuletzt geändert: 2016/07/05 10:52 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki