softwareorganisation
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
softwareorganisation [2014/01/16 10:03] – neues Unterkapitel Michael | softwareorganisation [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 | + | * [[BiDiBOneMitAtmelStudio|BiDiBOne mit AtmelStudio6 |
- | + | ||
- | ===== 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: | + | |
- | 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 // | + | |
- | ---- | + | |
- | 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: | + | |
- | ---- | + | |
- | Die Abhängigkeiten unter den einzelnen Projekten sind im Absatz //Project Dependencies// | + | |
- | {{ codehilfe: | + | |
- | Die Abhängigkeiten regeln die Reihenfolge, | + | |
- | ---- | + | |
- | ==== 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 // | + | |
- | {{ codehilfe: | + | |
- | + | ||
- | Das AddOn-Projekt liegt parallel zum Basis-Projekt. Es enthält unterhalb des Verzeichnisses '' | + | |
- | + | ||
- | Das AddOn-Projekt im Solution-Explorer am Beispiel OneControl: | + | |
- | + | ||
- | + | ||
- | {{codehilfe: | + | |
- | + | ||
- | Im '' | + | |
- | + | ||
- | Im '' | + | |
- | + | ||
- | 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-Basisersatz-Projekt ==== | + | |
- | + | ||
- | + | ||
- | ---- | + | |
- | + | ||
- | '' | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | 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: | + | |
- | 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_//< | + | |
- | + | ||
- | 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 // | + | |
- | + | ||
- | ---- | + | |
- | ===== 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 '' | ||
softwareorganisation.txt · Zuletzt geändert: 2016/07/05 10:52 von 127.0.0.1