WinAVR: Finde keine Konstante RAM-Größe

OP #1389072
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?
Moderator Persönliche Seite #1389098
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.
1
% fgrep '#define RAMSTART' include/avr/io*.h
2
include/avr/io90pwm81.h:#define RAMSTART     (0x0100)
3
include/avr/io90scr100.h:#define RAMSTART     (0x100)
4
include/avr/ioa6289.h:#define RAMSTART     (0x100)
5
include/avr/iom128rfa1.h:#define RAMSTART                        (0x200)
6
include/avr/iom16m1.h:#define RAMSTART     (0x0100)
7
include/avr/iom16u4.h:#define RAMSTART     (0x100)
8
include/avr/iom32c1.h:#define RAMSTART     (0x0100)
9
include/avr/iom32m1.h:#define RAMSTART     (0x0100)
10
include/avr/iom32u4.h:#define RAMSTART     (0x100)
11
include/avr/iom32u6.h:#define RAMSTART     (0x100)
12
include/avr/iom64c1.h:#define RAMSTART     (0x0100)
13
include/avr/iom64m1.h:#define RAMSTART     (0x0100)
14
include/avr/iotn13a.h:#define RAMSTART     (0x60)
15
include/avr/iotn167.h:#define RAMSTART     (0x100)
16
include/avr/iotn87.h:#define RAMSTART     (0x0100)
17
include/avr/iox128a1.h:#define RAMSTART     INTERNAL_SRAM_START
18
include/avr/iox128a3.h:#define RAMSTART     INTERNAL_SRAM_START
19
include/avr/iox16a4.h:#define RAMSTART     INTERNAL_SRAM_START
20
include/avr/iox16d4.h:#define RAMSTART     INTERNAL_SRAM_START
21
include/avr/iox256a3.h:#define RAMSTART     INTERNAL_SRAM_START
22
include/avr/iox256a3b.h:#define RAMSTART     INTERNAL_SRAM_START
23
include/avr/iox32a4.h:#define RAMSTART     INTERNAL_SRAM_START
24
include/avr/iox32d4.h:#define RAMSTART     INTERNAL_SRAM_START
25
include/avr/iox64a1.h:#define RAMSTART     INTERNAL_SRAM_START
26
include/avr/iox64a3.h:#define RAMSTART     INTERNAL_SRAM_START

Hmm, wenn ich mir's genau ansehe, ist das nur bei den neueren
Headerdateien definiert. :-/
Moderator Persönliche Seite #1389134
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.