Artikel-ID: 000083597 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 06.01.2014

Nios II GNU Toolchain-Upgrade von GCC 4.1.2 auf GCC 4.7.3

Umgebung

  • Intel® Quartus® II Anmeldungs-Edition
  • Intel® Nios® II Prozessor
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    In ACDS Version 13.1 wird die Nios® II GNU Toolchain von GCC 4.1.2 auf GCC 4.7.3 aktualisiert. Benutzer, die ein Upgrade auf die neue Toolchain durchführen, müssen die folgenden unten aufgeführten Änderungen beachten.

    Nios II spezifische Änderungen:

    • Verwenden Sie __buildin_custom_* anstelle von -mcustom-* oder #pragma , um zuverlässig Nios II Floating Point Custom Instructions (FPCI) zu generieren, unabhängig von der Compiler-Optimierungsebene und Befehlszeilen-Flags.
      • So verwenden Sie -mcustom-* oder #pragma für Nios II Floating Point Custom Instructions (FPCI):
        • Die Kennzeichnung -ffinite-math-only muss verwendet werden, um fmins und fmax FPCI zu generieren
        • die Optimierung (nicht -O0-Flag ) muss verwendet werden, um fsqrts FPCI zu generieren
        • Benutzer, die transzendentale Funktionen in der Hardware implementieren, müssen das Flag -funsafe-math-optimizations verwenden, um die FPCI für die transzendentalen Funktionen fsins(), fcoss(), ftans(), fatiges(), fexps(), hexasings() und entsprechende Doppelpräzisionsfunktionen zu generieren.
    • Das-format hat sich von z. B. #pragma custom_fadds 253 bis #pragma GCC Target("custom-fadds=253") und Funktionsattribute bieten ein alternatives Format __attribute__((target("custom-fadds=253"))).
    • Verwenden Sie die Flags -mel/-meb anstelle von -EL/-EB für endianische Einstellungen. Das Software-Build-Tool für Eclipse (SBTE)-Benutzer muss den BSP neu erstellen, damit diese Einstellung wirksam wird.
    • Die Flag -mreverse-bitfields und reverse_bitfields werden nicht mehr unterstützt.
    • Das Flag -fstack-check muss anstelle von -mstack-check verwendet werden, um die Stack-Überprüfung zu aktivieren.

    GCC Änderungen und Verbesserungen:

    • Die Flag -Wa,-relax-all im nios2-elf-gcc GCC 4.7.3 unterstützt Funktionsanrufe und Programme, die die 256 MB-Limit überschreiten.
    • Wenn der Inline-Assembly-Code mit dem asm-Operator bei der Optimierung verwendet wird, muss er Werte angeben, die aus C importiert und nach C zurück exportiert werden, wobei die in http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended-Asm beschriebenen Mechanismen verwendet werden.
    • Pre-Standard-C-Header werden in GCC 4.7.3 nicht unterstützt. Ersetzen Sie Vorstandard C durch Standard C, z. B. #include , cout, endl mit #include , std::cout bzw . std::endl .
    • Das Kompilierungs-Flag -Wl,--defsym gcc=bar , bei dem bar ein undefiniertes Symbol ist, generiert einen Fehler auf Linker-Ebene in GCC 4.7.3. GCC 4.1.2 umfasst diese Überprüfung nicht.

    GNU bietet auch einen Portierungsleitfaden für GCC4.7 zur Dokumentation gängiger Probleme: http://gcc.gnu.org/gcc-4.7/porting_to.html

    Vollständige GCC-Versionshinweise finden Sie unter http://gcc.gnu.org/releases.html.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.