Harvard-Architektur und dieser Offset von 0x800000

Gast #1150674
Hallo,

ich hab echt versucht das ganze zu googeln, aber mir ist immer noch 
nicht klar warum ich z.B. zu SRAM Adressen 0x800000 dazu addieren muss. 
Ich weiß nur, dass es an der Harvardarchitektur liegt, aber mehr schon 
auch nicht.
Kann mir das einer erklären, oder einen erklärenden Link spendieren? :)
#1150893
Der Offset, den du addieren musst, ist vom Systemaufbau abhängig. 
Genausogut kann das SRAM bei 0x000000 liegen und (z. B.) der Flash bei 
0x100000.

Was hier geschieht, nennt sich Address-Mapping. Intern wird das SRAM und 
der Flash dann auch ganz normal von 0x0000 beginnend adressiert. Die 
zusätzlichen "oberen" Bits bei der Adressierung (z. B. 0x80 in 0x800000) 
erlauben es aber, über einen Dekoder (einfache kombinatorische Logig) 
einen bestimmten Speicherbaustein zu selektieren. So wird z. B. bei 
einer Adresse, die mit 0x00 beginnt der Flash angesprochen und bei einer 
Adresse beginnend mit 0x80 das SRAM.

Übrigens hat das nach meiner Auffassung aber nichts mit Harvard/von 
Neumann zu tun.

mfg
Reinhard
#1150918
Mit Harvard hat das insofern zu tun, als die GCC binutils traditionell 
von einer Von-Neumann-Architektur mit einem einzelnen Gesamtadressraum 
ausgehen. Da dies auf AVR nicht zutrifft, werden die 3 Adressräume für 
ROM,RAM,EEPROM willkürlich an 3 verschiedenen Stellen in einem 
erfundenen Gesamtadressraum plaziert.

Zu einem Problem kann es also kommen, wenn die AVRs irgendwann mehr als 
2GB ROM enthalten (ATgiga44 oder so).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.