Externe Funktion braucht mehr RAM?

OP #2046990
Lesenswert?

Hallo,

ich wollte eine Funktion von mir in eine externe Datei auslagern, da ich 
diese noch in anderen Funktionen brauche.
Das Problem ist dabei nur, das wenn ich über die externe Datei starte, 
mir der Compiler eine Fehlermeldung ausgibt, die durch die Lib von Peter 
Fleury verursacht wird.
Habe ich diese Funktion allerdings 1:1 in der eigentlichen Datei, kommt 
keine Fehlermeldung.

Der Compiler meckert das der SRAM zu klein für die Buffer wäre, dies 
wird überprüft indem ein Wert von ENDRAM abgezogen wird. Setzt man 
diesen Wert allerdings manuell auf den Wert des AT90CAN128, so kommt 
keine Meldung es läuft auch normal.

Im Anhang noch die Datein


Danke schon mal im Vorraus

mfg
Angehängte Dateien:
Gast #2047909
Lesenswert?

Der Fehler sitzt vor dem Computer.

Ich hab mit jtzt tatsächlich die Mühe gemacht, deine zip-Datei 
auszupacken, kann darin aber weder ENDRAM noch buffer finden. Was genau 
ist also jtezt die Frage, und wie genau stellst du dir vor, daß das 
jemand beantworten kann (oder will)?

Oliver
OP #2048864
Lesenswert?

Entschuldigung für die Ungenauigkeit

Also die Funktion "uart_get_line" will ich auslagern, über die Datei 
"uart_get_l"

Diese arbeitet ja eigentlich zu 90% mit der Funktion aus der Lib von 
Peter Fleury
Diese Lib überprüft ob der TX und der TX Buffer auch in den SRAM passen, 
dabei kommt die Fehlermeldung, allerdings nur wenn die Funktion 
ausgelagert ist, wenn ich die Funktion "uart_get_line" in die 
"visuschni.c" schreibe, kompiliert er fehlerfrei.
Ich benutze AVRStudio und der µC ist ein "AT90CAN128"
Gast #2058194
Lesenswert?

Nun ja, du solltest dir angewöhnen, JEDES c-File für einen AVR mit der 
kleine Zeile
1
include <avr/io.h>

zu beginnen. Damit erst werden alle Konstanten auf die AVR-Spezifischen 
Werte gesetzt.

Bei dir ist die Reihenfolge der includes falsch.

Oliver
OP #2064415
Lesenswert?

Ok ich hab jetzt ein wenig mit der Reihenfolge der includes rumgespielt, 
aber ich hab ehrlich gesagt keine gefunden, in der der Fehler nicht mehr 
auftritt

Welche Reihenfolge ist denn die richtige? Und was sind die 
"Ranghöchsten" Libs? GIbt es da überhaupt so was wie eine Rangfolge? 
Falls ja, kann man diese einsehen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren