Forum: Compiler & IDEs avr-gcc und ATmega mit mehr als 64k, was beachten ?


von Jürgen S. (jsachs)


Lesenswert?

Hallo,

da mein Projekt so langsam den ATmega32 füllt, bin ich am überlegen ob 
ich nicht Sicherheitshalber nen größeren ATmega einplane.
Für meine 5-10 Platinen ist der Preisunterschied eher nicht relevant.

Nun zu meiner Frage:
- Wenn ich nun einen avr mit z.B 128k Flash nehme, was muss ich beachten 
?
Der avr hat doch nur 16Bit als Adresse, oder ist es bei den Typen größer 
? Kümmert sich avr-gcc darum selbst ? Oder muss ich "Bank umschalten"
- Im Manual vom avr-gcc steht, das PROGMEM nur die ersten 64k nutzen 
kann. Geht das auch Automatisch dahin ? Oder muss ich da mit Linker 
Sektions nachhelfen ?

Gibt es sonst etwas zu beachten ?

Danke
Juergen

von M. N. (Gast)


Lesenswert?

Jürgen Sachs schrieb:
> Der avr hat doch nur 16Bit als Adresse

Beim Flash-Speicher werden damit aber nicht Bytes sondern Worte (16Bit) 
adressiert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jürgen Sachs schrieb:
> Im Manual vom avr-gcc steht, das PROGMEM nur die ersten 64k nutzen
> kann. Geht das auch Automatisch dahin ?

Ja, das geht automatisch dahin.  Es heißt nur, dass die Summe deiner
PROGMEM-Daten nicht 64 KiB (abzüglich des Platzes für die Vektor-
tabelle) überschreiten darf.

Ansonsten ist es erst ab > 128 KiB wesentlich, dass man alles mit
-mrelax baut und vor allem auch linkt.

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
Noch kein Account? Hier anmelden.