mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Peter Fleury RAMEND


Autor: Nico L. (nico_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe einen AtMega8 und möchte mit dem PC per UART 
kommunizieren. So habe ich mir die UART-Library von Peter Fleury geholt 
und das Testprogramm versucht zu komplieren. Am Testprogramm habe ich 
nichts geändert. Doch jedes Mal wenn ich es versuche dann kommt:
../uart.h:84:2: error: #error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"

Ich habe keine Ahnung warum es nicht funktioniert und was ist eigentlich 
RAMEND?

Autor: hab noch was (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem hat mich auch schon verrückt gemacht.
Das in der uart.h nützt:
//für RAMEND
#include <avr/io.h> 
Der Fehler kommt daher das RAMEND einfach nicht definiert ist.
RAMEND siehe:
http://www.nongnu.org/avr-libc/user-manual/group__...

Autor: Nico L. (nico_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe #include <avr/io.h> oben an uart.h eingefügt doch leider 
funktioniert es immer noch nicht.
Jetzt ist es aber so dass alle Funktionen die verwendet werden nicht 
funktionieren. Als Fehler kommt:
C:\Users\Nico\Mikrocontroller Programmierung\myAVR Board MK2 USB PLUS\Projects\UART\default/../UART.c:28: undefined reference to `uart_init'

Was kann ich dagegen tun? uart.h ist eingebunden.

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

Bewertung
0 lesenswert
nicht lesenswert
Nico L. schrieb:
> Ich habe #include <avr/io.h> oben an uart.h eingefügt doch leider
> funktioniert es immer noch nicht.

Der ist auch normalerweise nicht notwendig, der der Code der seinerseits 
uart.h includiert sowieso vorher schon <avr/io.h> includiert hat.

Gibs wieder raus. Das bringt nichts.

Wenn man sich bei den #includes an die Reihenfolge:
Zuerst die Systemheader
dann die projektspezifischen Header

hält (wie es P.Fleury in seinem Beispiel gemacht hat), dann muss ein 
Header File nie die allgmeinen System-Header Files includieren, 
höchstens ein paar spezifische. Da aber auf einem AVR ein *.c File mit 
größter Wahrscheinlichkeit sowieso avr/io.h includiert, ist es nicht 
notwendig, das in jeden Header mit reinzuziehen.

> Jetzt ist es aber so dass alle Funktionen die verwendet werden nicht
> funktionieren. Als Fehler kommt:
>
C:\Users\Nico\Mikrocontroller Programmierung\myAVR Board MK2 USB
> PLUS\Projects\UART\default/../UART.c:28: undefined reference to
> `uart_init'
> 

Poste mal dein komplettes Projekt zusammengezippt.
Wenn du selber an den Buffergrößen nichts gedreht hast, könnte es noch 
sein, dass du bei der Projektgenerierung einen falschen Prozessor 
eingestellt hast, der einfach nicht genügend RAM hat

Autor: Nico L. (nico_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung, bin auf der Leitung gestanden. Musste natürlich uartpf.c 
zum Projekt hinzufügen.

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

Bewertung
0 lesenswert
nicht lesenswert
Und verschieb dein Projekt auf einen Pfad, der nicht mit Leerzeichen 
gespickt ist. Als Softwareentwickler ist sowas meistens nicht besonders 
schlau.

Leerzeichn in Pfadnamen sind für BWL Studenten, die sich sonst nicht 
merken können, wo sie ihre PDF Präsentationen abgelegt haben.

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.