Dieser Fehler tritt auf, wenn sich Funktionen außerhalb des Hauptspeichers an einem Speicherspeicherbereich von mehr als 256 MB befinden, da der Nios II Compiler die Aufrufanweisung verwendet, die auf die Begrenzung auf 256 MB beschränkt ist.
Es gibt zwei Problemumgehungen:
1) In ACDS Version 13.1 wird die Option -relax-all implementiert, um die Callr-Anweisung anstelle von Call Instruction zu verwenden. Fügen Sie in Software Build Tools für Eclipse die Option -Wa,-relax-all in den Anwendungs- oder BSP-Eigenschaften als Benutzerflaggen hinzu.
Diese Problemumgehung kann sich auf die Softwareleistung auswirken, da die Callr-Anweisung im Vergleich zur Aufrufanweisung mehr Assembly-Anweisungen verwendet.
2) Die Aufrufanweisung berechnet nicht die MSB 4 Bits der Adresse, daher die 256 MB Begrenzung. Suchen Sie die Speicher so, dass die MSB-4-Bits der Speicher-Basisadressen gleich sind, um sicherzustellen, dass sich die Funktionen innerhalb der 256-MB-Grenzen befinden.
Zb. SDRAM: 0x10000000, Onchip-Speicher: 0x12000000
oder SDRAM: 0x08000000, Onchip-Speicher: 0x02000000