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
softwareorganisation [2014/01/16 10:03] – neues Unterkapitel Michaelsoftwareorganisation [2016/07/05 10:52] (aktuell) – Externe Bearbeitung 127.0.0.1
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.1389863000.txt.gz · Zuletzt geändert: 2016/07/05 10:48 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki