IAR: Ein Projekt, vier Output-Files mit unterschiedlichen Optionen

Gast #1758579
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
#1758739
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.
#1759840
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.