- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: Problem beim Einbinden von asuro.h / asuro.c

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2014
    Beiträge
    8

    Problem beim Einbinden von asuro.h / asuro.c

    Anzeige

    Powerstation Test
    Hallo,

    ich nutze zum Programmieren/Compilieren/Flashen Asuro Flash in der Version 1.8.13.110.
    Die Asuro Library die ich verwende ist die V2.8.0rc2
    WinAVR verwende ich in der Version 20100110

    Nun folgendes Phänomen.
    Wenn ich das Test Projekt öffne, kann ich dieses ohne Probleme compilieren und flashen.
    Erstelle ich nun ein eigenes Projekt, lege die asuro.c und die asuro.h in das Projektverzeichnis und erstelle eine eigene "new.c" Datei mit foglendem Inhalt:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
        Init();
    
       while(1)
       {
        BackLED(OFF,OFF);
        StatusLED(OFF);
       }
       return 0;
    }
    und compiliere alles, bekomme ich folgende Fehlermeldung:

    Code:
    Linking: Project1.elf
    avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.o" new.o   --output Project1.elf -Wl,-Map=Project1.map,--cref -L"C:\ProgramData/AsuroFlash/asuro-lib/lib" -lm -lasuro
    new.o: In function `main':
    C:\ProgramData\AsuroFlash\Projects\Test/new.c:5: undefined reference to `Init'
    make: *** [Project1.elf] Error 1
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    Compiling C: new.c
    avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.lst" "new.c" -o new.o
    
    ExitCode 2
    >Ready.
    Wenn ich nun zusätzlich noch die asuro.c einbinde, funktioniert es.

    Warum muss ich bei mir immer die asuro.c einbinden, während in allen anderen Programmen immer die asuro.h eingebunden wird?

    Muss ich eventuell noch Einstellungen im AsuroFlash vornehmen?

    Installiert habe ich AusroFlash unter C:\ProgramData und WinAVR liegt in C:\WinAVR-20100110
    Folgende Einstellungen habe ich bereits angepasst:
    COM-Port 4
    AVR-Path: C:\WinAVR-20100110
    Die restlichen Parameter habe ich so gelassen.

    gruß
    Andi
    Geändert von Andi1888 (05.03.2014 um 11:58 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Du musst zusätzliche Qulltextdateien (*.c) in das Makefile mit aufnehmen, sieh dort Mal ab Zeile 40 nach. Den Eintrag solltest du in der Form "src += new.c" vornehmen.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2014
    Beiträge
    8
    Zitat Zitat von markusj Beitrag anzeigen
    Du musst zusätzliche Qulltextdateien (*.c) in das Makefile mit aufnehmen, sieh dort Mal ab Zeile 40 nach. Den Eintrag solltest du in der Form "src += new.c" vornehmen.

    mfG
    Markus
    Und das muss ich jedesmal aufs neue machen?
    Wenn ich jetzt ein neues Projekt erstelle um z.B. die BackLED's anzuschalten, und ich schreibe den Quellcode dazu in die neue Datei "lampe.c), dann muss ich diese Datei auch in das Makefile schreiben?
    Also wäre es am besten, dass ich der*.c Datei der jeweiligen Projekte immer den selben Namen vergebe damit ich das nicht jedes mal im Makefile anpassen muss?

    - - - Aktualisiert - - -

    Ok, ich habe nun festgestellt, dass ich in einem neuen Projekt links in der "Projekt-Übersicht" mittels Rechtsklick auf den Projektnamen Dateien hinzufügen kann. Wenn ich dort die "asuro.c" hinzufüge, funktioniert es anscheinend.
    Soll ich da immer die asuro.c aus dem Ordner "C:\ProgramData\AsuroFlash\asuro-lib\lib" hinzufügen?
    Und kann man einstellen, dass dies immer automatisch geschieht, da man die asuro.c ja immer benötigt?

    gruß
    Andi

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von Andi1888 Beitrag anzeigen
    Und das muss ich jedesmal aufs neue machen?
    Wenn du mit dem Makefile arbeitest, ja. Den zweiten Teil deines Beitrages bewerte ich aber so, dass du offenbar mit einer Entwicklungsumgebung arbeitest? In dem Fall kommst du komplett ohne das Makefile aus, wenn die Entwicklungsumgebung sich um den Vorgang kümmert. In dem Fall könntest du asuro.h und asuro.c auch einfach immer in den Projektordner kopieren, das ist ja auch nur Quelltext.

    Du kannst in eine Quellcode-Datei aber ruhig etwas mehr Funktionalität hineinstecken als das An-/Ausschalten der Back-LEDs - Zu viele Dateien werden auch irgendwann (ohne sinnvolle Struktur) unübersichtlich.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Wenn du mit der AsuroLib v2.8 arbeitest, geht das Erstellen eines neuen Projektes etwas anders.

    1. Du kopierst den kompletten Ordner 'FirstTry' aus dem Examples Ordner in einen neuen Ordner deiner Wahl.
    2. Dann kannst du sofort loslegen ohne das Makefile zu änderen oder zusätzliche Files zu kopieren. Nim einfach die test.c und schreib dein Programm.
    3. Übersetzen starten mit Aufruf der make_all.bat

    An das Makefile musst du nur ran:
    * wenn sich die Beispiele nicht übersetzen lassen (Anpassen der Pfade, etc)
    * wenn du zusätzliche C-Files verwenden willst, die nicht schon in der Lib vorhanden sind
    * wenn dein Programm anders heissen soll als test.c

    Kein kopieren von Asuro.c oder Asuro.h. Die werden alle aus dem Lib Ordner mit eingebunden.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2014
    Beiträge
    8
    Zitat Zitat von m.a.r.v.i.n Beitrag anzeigen
    Wenn du mit der AsuroLib v2.8 arbeitest, geht das Erstellen eines neuen Projektes etwas anders.

    1. Du kopierst den kompletten Ordner 'FirstTry' aus dem Examples Ordner in einen neuen Ordner deiner Wahl.
    2. Dann kannst du sofort loslegen ohne das Makefile zu änderen oder zusätzliche Files zu kopieren. Nim einfach die test.c und schreib dein Programm.
    3. Übersetzen starten mit Aufruf der make_all.bat

    An das Makefile musst du nur ran:
    * wenn sich die Beispiele nicht übersetzen lassen (Anpassen der Pfade, etc)
    * wenn du zusätzliche C-Files verwenden willst, die nicht schon in der Lib vorhanden sind
    * wenn dein Programm anders heissen soll als test.c

    Kein kopieren von Asuro.c oder Asuro.h. Die werden alle aus dem Lib Ordner mit eingebunden.
    Ich verwende doch aber das universelle Programm AsuroFlash (EierlegendeWollmilchSau)
    Da funktioniert das ganze etwas anders oder?

    gruß
    Andi

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Zitat Zitat von Andi1888 Beitrag anzeigen
    Ich verwende doch aber das universelle Programm AsuroFlash (EierlegendeWollmilchSau)
    Das AsuroFlash das ich kenne kümmert sich nur um die Übertragung des fertigen Binärprogramms/Hexfile an den ASURO. Mit der ASURO-Bibliothek und Makefiles hat das nichts zu tun. Entweder du hast ein anderes Programm (glaube hier kursierte irgendwann Mal ein AsuroStudio oder sowas?) oder verstehst etwas falsch.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2014
    Beiträge
    8
    Zitat Zitat von markusj Beitrag anzeigen
    Entweder du hast ein anderes Programm (glaube hier kursierte irgendwann Mal ein AsuroStudio oder sowas?).
    Richtig, ich verwende dieses Tool.
    Vielleicht kennt sich ja jemand anderes aus, oder Osser selbst hat noch eine Idee.

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Ich verwende doch aber das universelle Programm AsuroFlash (EierlegendeWollmilchSau)
    Upps, sorry, dass hatte ich übersehen.

    Ob das Teil noch mit der aktuellen Lib funktioniert, kann ich nicht sagen. Das Tool wurde leider nicht weitergepflegt. Ich muss mir das noch mal installieren und testen, dann weis ich mehr.
    Ein Fehler, der mir spontan einfällt, ist der falsche Pfad zur AsuroLib. Defaultmässig ist 'asuro-lib' eingestellt, installiert wird aber nach 'asuro_lib'.

    Das AsuroFlash TestProjekt benutzt eine alte Version der AsuroLib (V2.6). Dort musste immer asuro.c und asuro.h in einen neuen Projekt Ordner kopiert werden.
    Geändert von m.a.r.v.i.n (06.03.2014 um 17:19 Uhr)

Ähnliche Themen

  1. Asuro lib einbinden
    Von alias_host im Forum Asuro
    Antworten: 76
    Letzter Beitrag: 04.08.2007, 18:51
  2. Antworten: 4
    Letzter Beitrag: 19.05.2006, 10:28
  3. Problem beim Programmieren von ASURO
    Von HaHa-Freak im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 19.03.2006, 15:26
  4. Asuro Problem beim SelfTest
    Von Epple im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 08.03.2006, 17:43
  5. Antworten: 9
    Letzter Beitrag: 14.03.2005, 20:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test