PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe beim Programm Asuro Flash!



G3tzR@zor
24.04.2009, 14:17
Hi@all,
ich bin noch ziemlicher Anfänger was die Programmierung des Asuro betrifft. Bisher habe ich nur die original Software von der CD verwenet womit ich auch einfache lauffähige programme erstellen kann.
Da ich aber mit der Original Lib von der CD(wahrscheinlich wegenmangelnder c Kenntnisse) den Asuro nicht dazu bewegen konnte gerade aus zu fahren begann ich nach Lösungen zu suchen und bin dabei auf die Software "Asuro Flash(Eierlegendewollmilchsau) V.1.4.6.56" mit aktueller Lib gestoßen.

So viel zur Vorgeschichte.
Nun zu meinem Problem, ich kann das Prog einfach nicht dazu bewegen mir aus dem schon fertigen Testprojekt das .hex file zu compilieren.

Gibt es ein Benutzerhandbuch oder ein Tutorial das die Funktionen des Progs erklärt und welche Anderungen man evtl an den Einstellungen der Make Tools ändern muss?

Hier mal der Testcode


/*
PROJECT : AsuroTest.aprj
DATE : 06/11/25
DESCRIPTION:
Just ride a funny little circle.

*/

#include "asuro.h"

int main(void)
{
Init();
EncoderInit();
for (i = 0; i < 4; i++)
{
GoTurn (500, 0, 150); // entspricht Go (200, 150))
GoTurn ( 0, 90, 150); // entspricht Turn (90, 150)
}


while(1);
return 0;
}


und die Ausgabe im Memo




>Session Environment Variables:
AF_AVRDIR=C:\WinAVR
AF_PROJECT=AsuroTest
AF_SOURCE_FILES=test.c asuro.c
AF_ASM_SRC_FILES=
AF_PRGDIR=C:\Programme\AsuroFlash
AF_PRJDIR=C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\AsuroFlash\Projects\TestAsur oProjekt
AF_LIB_PATH=C:\WinAVR\lib
File test.c saved.
File asuro.c saved.
File asuro.h saved.
>Default make_all.cmd file created.
>Default makefile created.
Make
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\AsuroFlash\Projects\TestAsur oProjekt>C:\WinAVR\utils\bin\make all
set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst -IC:\Programme\AsuroFlash\include -IC:\WinAVR\lib\inc asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst -IC:\Programme\AsuroFlash\include -IC:\WinAVR\lib\inc test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst -IC:\Programme\AsuroFlash\include -IC:\WinAVR\lib\inc test.c -o test.o
test.c: In function `main':
test.c:14: warning: implicit declaration of function `EncoderInit'
test.c:18: warning: implicit declaration of function `GoTurn'
avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst -IC:\Programme\AsuroFlash\include -IC:\WinAVR\lib\inc asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o -IC:\Programme\AsuroFlash\include -IC:\WinAVR\lib\inc test.o asuro.o --output AsuroTest.elf -Wl,-Map=AsuroTest.map,--cref -IC:\Programme\AsuroFlash\lib -LC:\WinAVR\lib -lm -lasuro
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: BFD 2.14 20030612 + coff-avr-patch (20030831) internal error, aborting at ../../bfd/reloc.c line 444 in bfd_get_reloc_size

C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: Please report this bug.

make: *** [AsuroTest.elf] Error 1

ExitCode 2
>Ready.


Ich hoffe ihr könnt mir helfen und bedanke mich schonmal im Vorraus.

MfG

Osser
24.04.2009, 15:45
Hi,

Die folgenden Zeilen

test.c: In function `main':
test.c:14: warning: implicit declaration of function `EncoderInit'
test.c:18: warning: implicit declaration of function `GoTurn'
geben an das implizit Funktionen deklariert werden.


Wenn Du in der "asuro.h" schaust wirst Du keine Funktion "void Init(void)" finden sondern "void init(void)", also klein geschrieben. Die Funktion "GoTurn(int, int, int)" gibts auch nicht sondern "go (int distance, int speed)" und "void turn (int degree, int speed)".

D.H. das proggi sollte so aussehen:



#include "asuro.h"

int main(void)
{
int i; // Deklaration!!

init();
for (i = 0; i < 4; i++)
{
go(500, 150);
turn(90, 150);
}


while(1);
return 0;
}


Hab das nich getestet, nur korrigiert an Hand der Fehlermeldungen.


Gruss,

O.

G3tzR@zor
24.04.2009, 16:43
Hallo und vielen dank für deine schnelle Antwort.

Die Funktionen Init, Go, und Void werden allerdings am Anfang groß geschrieben laut meiner asuro.h. Bei der Funktion Encoder_Init ist mir aufgefallen, dass der unterstrich fehlte. Nun funktioniert das Compilieren ohne Probleme.

Ein kleines problemchen hätt ich da aber noch!

Immer wenn ich ein prog auf den Asuro Flashe hängt sich Asuro Flash nach dem Flashvorgang auf und der IR-USB Tranceiver blinkt weiter so als sollten noch Daten gesendet werden.

Ich benutze Windows XP Pro, 32 Bit
und AsuroFlash V.1.4.6.56

Hatte noch jemand dieses Problem und konnte dieses beheben?

Gruß
G3tzR@zor

Osser
25.04.2009, 00:43
Hi,

die Lösung ist einfach. Du benutzt zufällig eine alte Version von AF die scheinbar den "Hänger" nach dem Flashen noch hat. Lad Dir bitte mal die neueste Release runter, der Link steht immer auf der 1. Seite im Thread und wird von mir "Up to Date" gehalten.

Die neueste Versionsnummer ist 1.7.10.99.
Der Link http://secius.com/asuroflash/
(rechts im Downloadfenster "AsuroFlash version 1.7.10.99" anklicken)

Damit sollte das Problem behoben sein.


Gruss,

O.

G3tzR@zor
25.04.2009, 13:56
Hi und nochmals danke.....jetzt funktioniert alles einwandfrei!
Dachte eigendlich, dass ich die Aktuelle Version hatte da ich die über nen Link im Forum bei sourceforge geladen hatte.

vistauser
25.04.2009, 22:04
Hallo Osser,
nun brauche ich auch deine Hilfe.
Flashen geht nun endlich prima, aber ich kann keinen exe-File erzeugen.
Ich habe mit deinem 6 Punkte Hilfsanweisungen die Asurolib eingebunden,
aber wenn ich dann make kommt das ständige Elend.
Der Compiler endet mit folgenden Zeilen:
test.o:In function `main':
Q:\ASURO\ASURO_LIB v280rc1_Examples\TEST/test.c:115: undefined
reference to 'Init'
Ich benutze WINAVR_20090306rc1.
Init() wird in meiner Asuro.h auch groß geschrieben.

Es wäre doll, wenn du mir auf die Sprünge helfen könntest, damit ich endlich mit deinem prima Programm auch hex- Files erzeugen kann.
Grüße
Olaf

hai1991
26.04.2009, 10:41
hallo vistauser

nur mal so nebenbei, du wirst nie eine .exe bekommen, sondern eine .hex, aber das ist jetzt nicht so wichtig.

hast du schon mal versuch, die lib und dein programm in einem ordner ohne leerzeichen " " zu speichern (ASURO_LIB v280rc1_Examples). damit gibt es bei AF immer probleme

vistauser
26.04.2009, 12:06
Hallo hai1991,
leider ist es das mit dem Leerzeichen nicht. Alle beteiligten Prg´s sind
(trotz Vista) in Directories ohne Leerzeichen. Wenn ich ein source aus
den Examples der Asuro-Lib compilieren will, kommt immer die selbe
Fehlermeldung und -natürlich- kein hex-File.
Echt frusti das
Grüße
Olaf

Osser
26.04.2009, 22:20
Hi vistauser,

chin up!
Das bekommen wir schon hin!

Poste mal dein Proggi und den Inhalt vom Memo in AF, dann ist es leichter zu beurteilen was schief geht.

Gruss,

O.