Hallo zusammen! Ich habe mit dem EDK eine neue Komponente erzeugt, die an dem PLB hängt und 4 Register hat. Wenn ich mir jetzt die automatisch erstellten Treiber dieser Komponente ansehe, muss ich feststellen, dass die 64-Bit breiten Register im Adressbereich immer den Abstand 0x8 haben. Hier mal ein kleines Beispiel: Register | Basisadresse --------------|----------------------------- Register 00 | 0x40000000 Register 01 | 0x40000008 Register 02 | 0x40000010 Register 03 | 0x40000018 So ganz verstehe ich das nicht :( Bedeutet das, dass eine Adresse (hexadezimal) 8-Bit speichert, oder wie? Wenn ja, warum ist das so?
Deine Register sind nicht 64 Bit breit, sondern 8 Bit. Die Adresse hat 64 Bit. Wenn Du also deine Register adressieren willst, dann müssen immer 8 Bit Abstand ziwschen den Adressen sein.
Hupps, Fehler. Die Adresse adressiert genau 1 Byte. Ein 64 Bit Register hat also 8 Byte. Die Adressen müssen also 8 Byte auseinander liegen.
Alles Klar, danke Thomas! So in etwa meinte ich das auch ;) Aber wieso entspricht eine Adresse genau 1 Byte?
Wieviel Bit/Byte adressiert werden, hängt von der Breite des Datenbusses ab. Bei einem 16 Bit Bus würdest Du mit einer Adresse gleich 2 Byte erhalten.
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.