PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Libs für gcc 4.3.5 und rncontrol.c



Ritchie
20.09.2011, 06:56
Hallo Zusammen,

ich versuche gerade das Testprogramm für den RN-Controller ans rennen zu bekommen und habe hier diese Fehler



/include/rncontrol.h: In Funktion »setportaon«:
./include/rncontrol.h:43: Fehler: »PORTA« nicht deklariert (erste Benutzung in dieser Funktion)
./include/rncontrol.h:43: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
./include/rncontrol.h:43: Fehler: für jede Funktion in der er auftritt.)
./include/rncontrol.h: In Funktion »setportbon«:
./include/rncontrol.h:46: Fehler: »PORTB« nicht deklariert (erste Benutzung in dieser Funktion)
./include/rncontrol.h: In Funktion »setportcon«:
./include/rncontrol.h:49: Fehler: »PORTC« nicht deklariert (erste Benutzung in dieser Funktion)
./include/rncontrol.h: In Funktion »setportdon«:
./include/rncontrol.h:52: Fehler: »PORTD« nicht deklariert (erste Benutzung in dieser Funktion)
./include/rncontrol.h: In Funktion »setportaoff«:


Makefile soll so aussehen ...


GCC_OPTIONS = -W

COMPILER = avr-gcc
#COMPILER = g++

TARGETNAME = rntest
DEBUG_OPTIONS =
LINUX_INCLUDE =
LOCAL_INCLUDE = ./include/
LOCAL_OBJ = ./obj/
LOCAL_SRC = ./source/
OBJS = obj/rncontrol-test.o

all: ${TARGETNAME}

${TARGETNAME}: $(OBJS)
$(COMPILER) $(OBJS) -o ${TARGETNAME}

$(LOCAL_OBJ)rncontrol-test.o: $(LOCAL_SRC)rncontrol-test.c $(LOCAL_INCLUDE)rncontrol.h
$(COMPILER) $(GCC_OPTIONS) $(DEBUG_OPTIONS) -c -o $(LOCAL_OBJ)rncontrol-test.o -I$(LOCAL_INCLUDE) $(LOCAL_SRC)rncontrol-test.c

dummy:

# Project temp daten loeschen
clean:
rm -f ${LOCAL_OBJ}*.o *~ ${LOCAL_SRC}*~ $(LOCAL_INCLUDE)*~
rm -f ${TARGETNAME}


Was habe ich hier vergessen ?

Ich verwende kubuntu 11.04 als Entwicklungsbasis ...

Gruss R.

danimath
20.09.2011, 07:16
Moin Ritchie,

das sieht so aus, als fehle im Quellcode die include-Datei mit den Definitionen von PORTx, setportx... usw. Wenn ich mich richtig erinnere (habe die Dateien gerade nicht hier), ist das in ioxxx.h.

viele Grüße
Andreas

Ritchie
20.09.2011, 08:04
Hi Andreas,

ich habe eigentlich den Source code direkt von der RN shop CD verwendet. Dachte der Code wäre direkt lauffähig.
Da ich von der PIC Controller Seite her komme, muss ich mich hier erst neu Einarbeiten.

Gibt es hierzu einen guten Link, der mir die Infos gibt ?

Habe hier meine erste Antwort :
http://www.mikrocontroller.net/articles/AVR_und_Linux

Gruss R.

danimath
20.09.2011, 08:27
Ich bin ja selbst kompletter µC-Anfänger, kenne ich aber mit C, make u.ä. aus. Hast Du vielleicht eine Fehlermeldung, dass eine Include-Datei fehlt? Dann müsstest Du im Makefile evtl. noch den Pfad zum Include-Verzeichnis des avr-gcc in den Include-Pfad aufnehmen. Oder sowas wie

#include <io.h>

oder

#include "io.h"

ins Sourcefile eintragen.

viele Grüße
Andreas

sternst
20.09.2011, 10:22
Was da fehlt, ist die Angabe eines Controllers beim Compilieren und Linken mittels -mmcu.

oberallgeier
20.09.2011, 10:42
... ./include/rncontrol.h:43: Fehler: »PORTA« nicht deklariert (erste Benutzung in dieser Funktion)
...Kann es sein, dass "PORTB" in Deiner io*.h als PB definiert ist? Ich glaube so etwas ist mir schon mal vorgekommen.

Stefan: lustiges QR ;-) - und ziemlich wichtig.

sternst
20.09.2011, 11:06
Kann es sein, dass "PORTB" in Deiner io*.h als PB definiert ist?
Es wird ja überhaupt gar keine spezifische io*.h geladen ohne -mmcu.
Statt dessen gibt es nur eine Warnung. Aber "sinnvollerweise" wird als einzige Compiler-Option ja gerade die benutzt, die sämtliche Warnungen abschaltet.

Ritchie
20.09.2011, 19:59
Hi,

habe mir mal einen make Datei von WinAvr angesehen.
Es ist wohl so, wie "Sternst" sagt.

Meine make Datei war von einem ARM System her, abgewandelt. Die scheint ja nicht zu passen im Ansatz.

Werde wohl eher auf fertige System zurückgreifen, als diese im ersten Schuss selber zu erstellen.

Gruss R.