mikrocontroller.net

Forum: Compiler & IDEs IAR Makefile zu AVR-Studio Makefile


Autor: Rolf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Saletti Miteinander!

Habe da eine kleine Frage betreffend Makefile. Ich probiere ein 
IAR-Projekt in AVR-Studio zu integrieren. Ich glaube das ist die 
Vorstufe zur Hölle, aber egal, es MUSS irgendwie gehen. Hab es zwei mal 
probiert und wieder komplett gelöscht da immer mehr Fehler. Nun der 
dritte und hoffentlich erfolgreiche Versuch.
Im Makefile von IAR ist ein Teil namens OPTIONS vorhanden, bei dem 
einzelne Flags sind die ich übernehmen will für AVR-Studio. Wo kommen 
die beim GCC-Makefile rein? Hab einfach mal eins mit mfile erstellt.
Zusätzlich hats da noch SECURITY_FILES und GATEWAY_FILES, welche 
projektspezifisch sein müssen... aber im Code wird das nirgends 
aufgegriffen. Es sind einfach .c-Files gelistet. Ist das für den 
IAR-Compiler?

Im Anhang noch das entsprechende IAR-Makefile.

Please help, ich dreh langsam am Rad!!
Gruss
Rolf

Autor: Jo Sen (tigermatze)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe das erst gestern durchexerziert.
Ich benutze IAR und WinAVR(AVR-GCC).
Mein IAR-Compiler erzeugt kein Makefile (bzw. erstellt es evtl. beim 
compilieren und löscht es dann wieder). Da nutze ich die 
Einstellmöglichkeiten unter den Projekt-Optionen.
Im WinAVR habe ich auch erste mit einem exernen Makefile experimentiert, 
aber dann festgestellt, dass es ebenfalls mit den Projekt-Optionen 
einfacher geht. Ich habe trotzdem mal das generierte Makefile in den 
Anhang gepackt.

mfg

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jo Sen

danke erstmal für die Antwort. Da ich von IAR eins hatte wollte ich 
eigentlich diesen Weg gehen, um dann für weitere Projekte mit dem Chip 
schon eine Vorlage zu haben. Habe nun aber auch über die 
Projekteinstellungen angefangen, scheint mir auch leichter zu sein.
by the way; Hast du sowas schon mal gesehen?
#ifndef DOXYGEN_SHOULD_SKIP_THIS
  #ifndef _IAR_SYSTEMS_ASM_
  extern __no_init __root volatile int8u  emResetCause;
  extern __no_init __root volatile int8u  emResetCauseMarker;
  extern __no_init __root volatile int16u emResetRStack;
  extern __no_init __root volatile int16u emResetCStack;
  #endif
#endif //DOXYGEN_SHOULD_SKIP_THIS

irgendwie mag er das root dort nicht in den 4 Zeilen...
(Fehler: error: expected '=', ',', ';', 'asm' or '__attribute__' before 
'__root')

Gruss Rolf

Autor: Jo Sen (tigermatze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich noch nicht gesehen.

__no_init besagt, dass die Variable nicht mit einem Standardwert 
initialisiert werden soll.
__root besagt, dass die Variable in den code eingefügt wird auch wenn 
sie nicht genutzt wird.

Über google hab ich gelesen, dass evtl. __root nicht funktioniert wenn 
die Variable als __no_init deklariert wurde.

mfg

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort
Ich hab nun mal abwechselnd beide Attribute ausgeklammert, jedoch 
bekomme ich immernoch eine ähnliche Fehlermeldung, einfach mit 
expected... before 'volatile'. Wenn ich alle drei Attribute ausklammere 
gehts natürlich, aber ob dann das Programm noch läuft ist eine andere 
Frage.
Werde es mal ausprobieren

Grüsse

Autor: Gerald Gerald (gerald10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo rolf,
hattest du erfolgt mit dem makefile? kannst es mir hochladen? wie sind 
deine compile und linker aufrufe? welchen iar compiler bzw linker nimmst 
du?

bye

Autor: Gerald Gerald (gerald10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich will für diese demo sample ein makefile für den IAR compiler 
erstellen:

/**************************************************
 *
 * This is a LED chaser example program for the AVR
 * STK500 starter kit evaluation board. This program
 * works for all AVRs.
 *
 * Description:
 * This program will turn on the User LEDs one at
 * a time and circulate this procedure in a forever
 * loop.
 *
 * Copyright 1996 -2005 IAR Systems. All rights reserved.
 *
 * $Revision: 1.1 $
 *
 **************************************************/


// Include I/O definition file
#include <ioavr.h>
#include <intrinsics.h>

int main( void )
{
    unsigned char  led;

    PORTB   = 0xFF; // Give PORTB and the User LEDs an initial 
startvalue

    led     = 1;    // Start with LED0

    DDRB    = 0xFF; // Set PORTB as output

    while(1)        // Eternal loop
    {
        PORTB = ~led;   // Invert the output since a zero means: LED on
        led <<= 1;      // Move to next LED by performing a rotate left

        if (!led)
          led = 1;      // If overflow: start with LED0 again

        __delay_cycles(500000);  // Wait for 500 000 cycles
    }
}

Autor: Gerald Gerald (gerald10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab mal hier reingeschaut: 
http://www.barello.net/avrx/AvrX-2.6/IAR-GCC-Avrx-2.6.zip
die verwenden auch IAR und haben ein makefile...

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.