www.mikrocontroller.net

Forum: Compiler & IDEs WinAVR: Finde keine Konstante RAM-Größe


Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

hab mal wieder ne Frage zum schämen:

Gibt es eine Konstante in den Headern von WinAVR, die mir angibt, 
wieviel SRAM der aktuelle Baustein hat?

Ich habe nur RAMEND gefunden. Die hilft mir aber nichts, da die 
Startadresse des RAM je nach Baustein unterschiedlich ist. (Bisher 
gefunden habe ich 0x60 und 0x100).

Oder gibt es einen sicheren Weg, diese Konstante z.B. aus RAMEND zu 
erstellen?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile gibt es auch RAMSTART.  Kann es sein, dass du eine
alte WinAVR-Version hast?

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WinAVR-20090313 - gibt es noch einen neueren?

Ich hatte versucht, mir selber eine Konstante RAMSTART zu machen. Da hat 
der Präpreozessor nicht gemotzt, dass sie schon vorhanden sei. In 
welcher Datei sollte ich RAMSTART denn finden?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Müller schrieb:
> WinAVR-20090313 - gibt es noch einen neueren?

Seltsam, da ist das noch nicht drin?

Ich hatte jetzt nur in der aktuellen avr-libc geguckt.

> In
> welcher Datei sollte ich RAMSTART denn finden?

Ist natürlich notwendigerweise in jeder einzelnen avr/io*.h drin,
da es ja (wie du schon bemerkt hast) vom Prozessor abhängt.
% fgrep '#define RAMSTART' include/avr/io*.h
include/avr/io90pwm81.h:#define RAMSTART     (0x0100)
include/avr/io90scr100.h:#define RAMSTART     (0x100)
include/avr/ioa6289.h:#define RAMSTART     (0x100)
include/avr/iom128rfa1.h:#define RAMSTART                        (0x200)
include/avr/iom16m1.h:#define RAMSTART     (0x0100)
include/avr/iom16u4.h:#define RAMSTART     (0x100)
include/avr/iom32c1.h:#define RAMSTART     (0x0100)
include/avr/iom32m1.h:#define RAMSTART     (0x0100)
include/avr/iom32u4.h:#define RAMSTART     (0x100)
include/avr/iom32u6.h:#define RAMSTART     (0x100)
include/avr/iom64c1.h:#define RAMSTART     (0x0100)
include/avr/iom64m1.h:#define RAMSTART     (0x0100)
include/avr/iotn13a.h:#define RAMSTART     (0x60)
include/avr/iotn167.h:#define RAMSTART     (0x100)
include/avr/iotn87.h:#define RAMSTART     (0x0100)
include/avr/iox128a1.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox128a3.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox16a4.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox16d4.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox256a3.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox256a3b.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox32a4.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox32d4.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox64a1.h:#define RAMSTART     INTERNAL_SRAM_START
include/avr/iox64a3.h:#define RAMSTART     INTERNAL_SRAM_START

Hmm, wenn ich mir's genau ansehe, ist das nur bei den neueren
Headerdateien definiert. :-/

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hmm, wenn ich mir's genau ansehe, ist das nur bei den neueren
>Headerdateien definiert. :-/

Alle MCUs, die ich typischerweise verwende 
(ATMega32/324/88/ATTiny48/ATTiny2313), sind 'alt' :-((

Tja da muss ich mich wohl erst mal nach einer anderen Lösung umsehen 
oder lohnt warten auf die nächste WinAVR-Version?

Autor: Andreas Müller (schnitzeltony)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Warten meine ich, erst mal selber definieren und dann später wieder 
rausnehmen..

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Müller schrieb:
> Mit Warten meine ich, erst mal selber definieren und dann später wieder
> rausnehmen..

Du kannst das ja mit #ifndef selbst definieren.

Die Makros hat Eric offenbar in die neueren Headerdateien eingebaut
(bzw. automatisch generieren lassen).  Habe keine Ahnung, ob er
Pläne hat, das auch rückwirkend bei den älteren Dateien nachzupflegen.
Müsstest du auf der avr-libc-dev-Mailingliste fragen.

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.