Korrekte Einstellungen für C8051F120-Mikrocontroller-Programme, die 64K überschreiten
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Beim Programmieren des C8051F120-Mikrocontrollers für Anwendungen, die mehr als 64 KB Programmspeicher benötigen, müssen Sie die Funktionen zur Erweiterten Programmspeicheradressierung (EPMA) korrekt konfigurieren, da der 8051-Architektur standardmäßig ein 16-Bit-Adressbus zugrunde liegt, der nur bis zu 64 KB Programmspeicher direkt adressieren kann.
1. Erweiterte Programmspeicheradressierung aktivieren
Der C8051F120-Mikrocontroller unterstützt mehr als 64 KB Programmspeicher über externen Speicherzugriff unter Verwendung der Seitenadressierung (Bankumschaltung).
2. Wichtige Einstellungen und Überlegungen
a. Speichermodell
- Small Model: Standard 8051-Adressierung, maximal 64 KB Programmspeicher.
- Large Model: Verwendet erweiterte Adressierung, um mehr Speicher zu erreichen.
- Verwenden Sie das Large Memory Model in den Compiler-Einstellungen (z.B. Keil uVision).
b. Compiler-Einstellungen (Keil uVision Beispiel)
- Gehen Sie zu Projekt → Optionen für Ziel → Registerkarte Ziel
- Wählen Sie das Large Memory Model aus.
- Aktivieren Sie Verwendung von On-Chip XDATA-Speicher (wenn kein externer Speicher verwendet wird).
- Überprüfen Sie, ob die Code Banking-Unterstützung aktiviert ist (wenn Ihr Code mehr als 64 KB umfasst).
c. Bankumschaltung (falls zutreffend)
- Der C8051F120 verwendet SFR (Special Function Registers), um die Speicherbanksteuerung zu ermöglichen.
- Verwenden Sie EMI0CN (External Memory Interface Control), um den externen Speicherzugriff zu aktivieren.
- Richten Sie die Bankregister (z.B.
SFRPAGE
) ein, um die erforderliche Bank zuzuordnen.
d. Code Banking-Unterstützung im Compiler
- Aktivieren Sie die Code Banking-Unterstützung in Ihrem Compiler.
- Definieren Sie die Anzahl der Banken und Bankumschaltungsfunktionen.
e. Einstellungen für den Speicherzugriff (Startdatei-Konfiguration)
- Passen Sie die Startup.A51-Datei (Keil) oder eine entsprechende Startdatei an.
- Setzen Sie
?B_BANKS
, um die Anzahl der verwendeten Speicherbänke widerzuspiegeln.
3. Überprüfen der Stack-Nutzung
- Stellen Sie sicher, dass Ihr Stack nicht in den Programmspeicher überläuft.
- Optimieren Sie die Speichernutzung in Ihren Compiler-Einstellungen.
4. Überprüfen der Linker-Konfigurationsdatei (L51_BANK.A51)
- Ändern Sie die L51_BANK.A51-Datei oder eine entsprechende Datei für Ihren Linker.
- Definieren Sie die Speicherregionen und deren Zuordnung korrekt.
5. Beispielkonfiguration im Code
6. Überprüfen mit der Map-Datei
Nach dem Erstellen des Projekts:
- Überprüfen Sie die MAP-Datei, die vom Compiler generiert wird, um sicherzustellen, dass Code und Daten korrekt in verschiedene Speicherbänke abgelegt werden.
7. Testen und Debuggen
- Verwenden Sie einen Hardware-Debugger (z.B. Silicon Labs IDE mit JTAG).
- Überprüfen Sie das korrekte Verhalten des erweiterten Speicherzugriffs.