- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: RAM gößer 64K am MEGA128 mit unterstüzung durch bascom ??

  1. #1

    RAM gößer 64K am MEGA128 mit unterstüzung durch bascom ??

    Anzeige

    Praxistest und DIY Projekte
    Hallo
    Giebt es eine möglichkeit in Bascom mehr als 64K ram zu verwalten ?
    für variabeln,arrys usw.
    ich dachte an eine art ram-bank wie es schon die alten ataries,c64,ibm-pc verwendeten vor vielen jahren nutzten.ich muss ständig die adressleitungen der rams(128K*8Bit) totlegen weil die mega128 (mega256) nur 64kram unterstüzen.portleitungen für weitere adressen zu opfern ist bei meinen schaltungen kein problem.nur kan Bascom sowas untertüzen??oder wird mehr ram auch in zukunft von Bascom nicht unterstützt.

    gruß torsten

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Schau nach unter "XRAM" , da steht einiges
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Die Unterstützung von mehr als 64KB RAM ist zwar im Konzept der AVR-Prozesor Familie vorgesehen, bei den bisherigen Prozessoren aber noch nicht umgesetzt worden.
    Dafür vorgesehen sind die I/O Register RAMPX, RAMPY und RAMPZ (RAM-Pointer) als zusätzliche Addresspointer-Ergänzung (Adressleitungen A16, A17 ...) zu den Zeiger-Register X, Y und Z sowie RAMPD für die direkten Speicherzugriff-Befehle lds und sts. (Siehe bei den Instruction Set
    http://www.atmel.com/dyn/resources/p...ts/DOC0856.PDF auf Seite 2 bzw bei den Speicherbefehlen ld, st und lds, sts).
    Ich nehme an, dass es dann I/O Pins geben wird, welche als Zusatzfunktion die zusätzlichen Adressleitungen A16, A17 ... übernehmen werden und die Werte aus dem entsprechenden RAMP I/O Register bekommen.
    Beim ATMega128 steht unter RAMPZ
    The RAMPZ Register is normally used to select which 64K RAM Page is accessed by
    the Z-pointer. As the ATmega128 does not support more than 64K of SRAM memory,
    this register is used only to select which page in the program memory is accessed when
    the ELPM/SPM instruction is used.
    Auch beim ATMega256 konnte ich im Datenblatt keine Hinweise auf eine Unterstützung von mehr als 64kB RAM finden.
    Die vom AVR adressierbaren 64KB RAM werden von Bascom unterstützt. Variable, welche nicht im internen SRAM liegen, müssen mit dem Zusatz XRAM im DIM Befehl dimensioniert werden. Natürlich muss dann an den AVR ein entsprechendes externes RAM angeschaltet sein.

    Zusätzliches RAM kann natürlich, wie in der Fragestellung erwähnt, über eine sogenannt Bank-Umschaltung über Output-Pins genutzt werden.
    Das notwendige Handling muss aber explizit im Anwenderprogramm vorgenommen werden. D. h vor dem Zugriff auf eine Speichervariable in einer anderen RAM-Bank müssen die Banking-Pins entsprechend gesetzt werden.
    Die Namensvergabe für Variable in den zusätzlichen RAM-Banken kann man mit den Dim Befehl wie in dem Beispiel:
    Dim Variable1Bank1 as Byte at &H100 OVERLAY
    vornehmen.
    Dabei wird Bascom vorgegaukelt, dass die Variablen im normalen 64kB Bereich liegen. Adressen, welche im normalen Adressbereich im XRAM liegen würden, müssen dann auch mit dem Zusatz XRAM gedimmt werden. Die Zuweisung dieser Variablen auf die richtige Adressen muss vom Programmierer selbst erfolgen und kann nicht von Bascom durchgeführt werden.
    Im Programm selbst ist zu beachten, dass in einem BASCOM-Befehl dann natürlich nicht Variable aus 2 verschiedenen RAM-Banken verarbeitet werden können, da die bei Aufruf des BASCOM-Befehl eingestellte RAM-Bank ja für alle Variablen gilt.
    Will man Speicherwerte von einer Bank in eine andere transferieren, müsste dies mit einer selbst programmierten ASM-Routine erfolgen. Die Erstellung einer generellen SUB, an welche die beiden Adressen und die Bank-Nummer übergeben wird ist denkbar.

    Resumee: Die Verwendung von zusätzlichen 64KB RAM Banks ist möglich, erfordert aber doch je nach Applikation einen nicht zu vernachlässigenden zusätzlichen Programmieraufwand.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Danke, wieder was gelernt
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress