mikrocontroller.net

Forum: Compiler & IDEs IAR: Ein Projekt, vier Output-Files mit unterschiedlichen Optionen


Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Habe für 4 Boards eine kleine Firmware in IAR Workbench geschrieben.
Der Code ist Grundlegend gleich, bis auf die ID-Nr. 1, 2, 3 und 4
Leider habe ich keinen Möglichkeit über externe Pins eine Einstellung 
vorzunehmen, also muss es mit der Firmware gemacht werden. Aber ich habe 
auch nicht Lust jedes mal die define-Variable der Adresse zu ändern und 
neu zu kompilieren. Kann man sowas mit den Build-Optionen des Projekts 
machen??

Danke für eure Hilfe.

Gruß
Jochen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jochen schrieb:
> Hallo!
>
> Habe für 4 Boards eine kleine Firmware in IAR Workbench geschrieben.
> Der Code ist Grundlegend gleich, bis auf die ID-Nr. 1, 2, 3 und 4
> Leider habe ich keinen Möglichkeit über externe Pins eine Einstellung
> vorzunehmen, also muss es mit der Firmware gemacht werden. Aber ich habe
> auch nicht Lust jedes mal die define-Variable der Adresse zu ändern und
> neu zu kompilieren. Kann man sowas mit den Build-Optionen des Projekts
> machen??
>

Ich kenn jetzt nicht die IAR Workbench.
Aber so ähnlich geht es fast überall:

So ziemlich jeder Compiler hat eine Möglichkeit, wie man ihm #define von 
aussen vorgeben kann.
Anstelle dass man im Code irgendwo ein

#define CPU_NR  1

hat, kann man dem Compiler beim Aufruf über die Commandline (was anderes 
macht ja auch die IDE nicht, nur das man die Commandline nicht direkt 
sieht) eine entsprechende Option mitgeben

cc test.c  /D CPU_NR=1

(das ist jetzt nur ein konstruiertes Beispiel, die Details werden bei 
deinem Compiler anders sein, aber jetzt gehts es ums Prinzip)

Das ist dann völlig gleichwertig, als wie wenn im Code ganz am Anfange 
das entsprechende #define stehen würde.

Eine IDE wiederrum bietet normalerweise irgendwo an, welche derartige 
Optionen sie beim Compileraufruf mitgeben soll und wenn die IDE das 
Konzept verschiedener benutzererstellter Build-Konfigurationen 
unterstützt (und das tun sie alle), dann kannst du dir natürlich 
verschiedene Konfigurationen machen, die im Prinzip alle gleich sind und 
sich nur in den #define unterscheiden, die dem Compiler beim Aufruf 
mitgegeben werden.

Soweit zum Allgemeinen.
Wie das jetzt konkret in der IAR Workbench gemacht wird, weiß ich nicht. 
Aber irgendwo wird es sicherlich einen Einstelldialog geben, in dem man 
diese #define Sachen für eine bestimmte Build-Konfiguration festlegen 
kann.

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Danke für die Antwort.

Dann muss ich mich wohl erstmal mit den ganzen Befehlen für den Compiler 
beschäftigen ... seufz

Gru0
Jochen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jochen schrieb:
> Hallo!
>
> Danke für die Antwort.
>
> Dann muss ich mich wohl erstmal mit den ganzen Befehlen für den Compiler
> beschäftigen ... *seufz*

Würd ich nicht machen.
Ich würde damit anfangen, alle Dialoge in der IAR Workbench 
abzuklappern, welcher davon in etwa so aussieht bzw die entsprechenden 
Dialogfelder hat, um obiges zu realisieren. Die Chancen stehen nämlich 
gut, dass die Workbench dem Compiler bereits Optionen in Form von 
defines mitgibt. Hint: Was denkst du wie die Workbench den Compiler 
veranlasst einmal ein Debug Exe zu erzeugen und einmal ein Release bzw. 
unterschiedliche Optimierungsstufen einstellt etc.?

Besonderes Augenmerk würde ich auf alle Dialoge legen, die über einen 
Menüpunkt aufgerufen werden, wobei im Menüpunkt die Wörtchen "Project" 
oder "Configuration" oder dergleichen vorkommen. Dort irgendwo wirst du 
fündig werden.

Wenn alle Stricke reissen, kann man immer noch anfangen Helpfiles und 
Doku zu durchforsten. Die Aufgabenstellung "defines an den Compiler 
weitergeben" ist nicht so ungewöhnlich. Die Doku könnte darüber Bescheid 
wissen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.