www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [AVR] AVR Studio Asuro Header


Autor: Jurij H. (kebabfreund)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe grad meinen Asuro zusammengebaut und versuche verzweifelt ein 
erste Programm zu kompilieren.

System: Win7 x64, AVR Studio 4.18 SP2, WinAVR20100110, ASURO Lib 2.70 
rc3

Beim versuch folgendes Codes kommt eine Fehlermeldung.

Code:
#include <asuro.h>
int main(void)
{
  
  Init();
  while(1)
  {
   
  }
  return 0;
}

Fehlermeldung:
Build started 12.8.2010 at 12:42:53
avr-gcc -mmcu=atmega8 -Wl,-Map=ASURO.map test.o   -L"C:\ASURO_SRC\AsuroLib\lib"  -lasuro  -o ASURO.elf
test.o: In function `main':
D:\Dokumente\AVR\ASRO_test\ASURO\default/../test.c:9: undefined reference to `Init'
make: *** [ASURO.elf] Error 1
Build failed with 1 errors and 0 warnings...

In den Project Options habe ich bei Include Directories 
"C:\ASURO_SRC\AsuroLib\lib\inc\" eingefügt, bei Libraries 
"C:\ASURO_SRC\AsuroLib\lib\". Die "libasuro.a" hab ich dann noch unter 
"Link with These Objects" übernommen.

Beim instellieren der Asuro Lib (über .exe)hatte ich noch eine Meldung 
dass Winavr nicht installiert sei.

Programme die nur auf den Standart - Libraries für den AVR basieren 
gehen.

Weiss jemand Rat?

Gruss

Autor: Jey Bee (jeybee)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal dieses  Init(); auskommentieren? Dann solltest du 
kompilieren können...

Ich selber habe keinen Asuro aber laut der Fehlermeldung fehlt dir die 
Funktion Init();

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist mit der Funktion Init(), wo kommt die her und was macht die?

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibts ne gute Übersicht:
http://www.asurowiki.de/pmwiki/pub/html/asuro_8h.html

Ich denk bei dir stimmt der Pfad der Datei nicht.
Such mal im Ordner nach der asuro.h.

Autor: Jurij H. (kebabfreund)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach dem Auskommentieren von Init() kommt das:
Build started 12.8.2010 at 13:04:08
avr-gcc -I"C:\ASURO_SRC\AsuroLib\lib\inc"  -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99           -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test.o -MF dep/test.o.d  -c  ../test.c
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:436: warning: inline function 'MotorSpeed' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:428: warning: inline function 'MotorDir' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:411: warning: inline function 'FrontLED' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:405: warning: inline function 'StatusLED' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:436: warning: inline function 'MotorSpeed' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:428: warning: inline function 'MotorDir' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:411: warning: inline function 'FrontLED' declared but never defined
C:\ASURO_SRC\AsuroLib\lib\inc/asuro.h:405: warning: inline function 'StatusLED' declared but never defined
avr-gcc -mmcu=atmega8 -Wl,-Map=ASURO.map test.o   -L"C:\ASURO_SRC\AsuroLib\lib"  -lasuro  -o ASURO.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  ASURO.elf ASURO.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex ASURO.elf ASURO.eep || exit 0
avr-objdump -h -S ASURO.elf > ASURO.lss


Die Init() funktion soll halt den Controller Initialisiern, stammen tut 
sie aus der Asuro lib. Sie sollte in der "asurolib.a" sein, die dann nur 
noch gelinkt wird.

Habs nach der Anleitung http://www.henkessoft.de/Roboter/ASURO.htm 
gemacht, mit dem Unterschiede dass ich den Ordner zur asurolib.a manuell 
nahcgetragen hab.

Autor: Jurij H. (kebabfreund)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Floh schrieb:
> Hier gibts ne gute Übersicht:
> http://www.asurowiki.de/pmwiki/pub/html/asuro_8h.html
>
> Ich denk bei dir stimmt der Pfad der Datei nicht.
> Such mal im Ordner nach der asuro.h.

Die asuro.h liegt dort wo sie sein Soll 
"C:\ASURO_SRC\AsuroLib\lib\inc\asuro.h", hab den Pfad noch extra bei den 
Projekteinstellungen  eingefügt.

Autor: Jurij H. (kebabfreund)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt mal die "asuro.h" und "asuro.c" in das Projektverzeichniss 
kopiert.

Foldengendes Programm:
#include "asuro.h"


int main(void)
{
  
  Init();
  StartSwitch();
  while(1)
  {
   
  }
  return 0;
}

Die Init() schent der zu finden, bringt aber immer noch die Meldung das 
Funktionen nicht definiert sind.
Build started 15.8.2010 at 10:42:43
avr-gcc  -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99               -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test.o -MF dep/test.o.d  -c  ../test.c
../asuro.h:70: warning: inline function 'MotorSpeed' declared but never defined
../asuro.h:65: warning: inline function 'MotorDir' declared but never defined
../asuro.h:55: warning: inline function 'FrontLED' declared but never defined
../asuro.h:51: warning: inline function 'StatusLED' declared but never defined
../asuro.h:70: warning: inline function 'MotorSpeed' declared but never defined
../asuro.h:65: warning: inline function 'MotorDir' declared but never defined
../asuro.h:55: warning: inline function 'FrontLED' declared but never defined
../asuro.h:51: warning: inline function 'StatusLED' declared but never defined
avr-gcc  -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99               -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT asuro.o -MF dep/asuro.o.d  -c  ../asuro.c
avr-gcc -mmcu=atmega8 -Wl,-Map=ASURO.map test.o asuro.o     -o ASURO.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  ASURO.elf ASURO.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex ASURO.elf ASURO.eep || exit 0
avr-objdump -h -S ASURO.elf > ASURO.lss

AVR Memory Usage
----------------
Device: atmega8

Program:    4232 bytes (51.7% Full)
(.text + .data + .bootloader)

Data:        265 bytes (25.9% Full)
(.data + .bss + .noinit)


Build succeeded with 8 Warnings...

Diese Funktionen kann ich auch nicht verwenden, gibt Fehler beim 
Kompilieren.

Nicht Inline Funktionen kann ich ohne Fehlermeldung in den Code 
schreiben.

Ich versteh nicht wo das Problem ist...

Autor: Richi Abc (richiii248)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe das selbe Problem wie Jurij...
Hat schon jemand eine Lösung/Erklärung gefunden, oder muss man einfach 
auf die inline-Funktionen verzichten?

Autor: ope (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da ich mich nun auch mit dem asuro beschäftigen (darf), komme ich auch 
auf die gleichen Probleme.

Sehe ich dass richtig, dass im header einige Funktionen inline 
deklariert sind und als inline definiert werden im c file? Wie soll denn 
da ar eine Lib draus machen? Jedenfalls bekomme ich so linker errors. 
Ist die 2.71 die letzte offizielle lib? Wie ist denn der Stand der 
Dinge? Seit 2008 scheint ja nicht mehr viel zu passieren

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

Bewertung
0 lesenswert
nicht lesenswert
ope schrieb:

> Sehe ich dass richtig, dass im header einige Funktionen inline
> deklariert sind und als inline definiert werden im c file?

Sieht wohl so aus, wenn ich noch dem Code im Wiki gehe

Lösch die 'inline' Spezifikation aus dem Asuro.h bei den Funktionen 
raus. Da hat jemand nicht verstanden, wie das mit inline funktioniert.

PS: und aus den *.c löscht du ebenfalls alle inline raus, die du 
findest.
(zb leds.c)

Autor: Markus J. (markusj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die AsuroLib von der CD ist hoffnungslos veraltet. Es gibt eine 
weiterentwickelte Version [1], die auch im o.g. Asurowiki verlinkt wird 
und auch mit neueren WinAVR-Versionen funktioniert.
Außerdem gibt es diverse andere Bibliotheken für den ASURO, unter 
anderem auch eine von mir [2].

mfG
Markus

[1] http://sourceforge.net/projects/asuro/
[2] http://sourceforge.net/projects/libtinyasuro/

Autor: Claus K. (clako)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte dieses Thema nochmal aufgreifen, da ich jetzt auch mit dem 
ASURO angefangen habe und vor dem gleichen Problem stehe. Mit WINAVR 
läßt sich alles kompilieren, mit dem AVR STUDIO 4 und 5 habe ich auch 
das Problem mit dem Inline Statement. Gibt es da inzwischen eine Lösung?

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.