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?
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?
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. :-/
>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?
Mit Warten meine ich, erst mal selber definieren und dann später wieder rausnehmen..
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.