記事 ID: 000083597 コンテンツタイプ: トラブルシューティング 最終改訂日: 2014/01/06

GNU ツールチェーンの GCC 4.1.2 から GCC 4.7.3 へのアップグレードのNios II

環境

    インテル® Quartus® II サブスクリプション・エディション
    インテル® Nios® II プロセッサー
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

ACDS バージョン 13.1 では、Nios® II GNU ツールチェーンが GCC 4.1.2 から GCC 4.7.3 にアップグレードされています。新しいツールチェーンにアップグレードするユーザーは、以下の変更に注意する必要があります。

具体的な変更をNios II:

  • -mcus__buildin_custom_-*または#pragmaの代わりに__buildin_custom_* を使用して、コンパイラーの最適化レベルとコマンドラインフラグに関係なく、Nios II浮動小数点カスタム命令 (FPCI) を確実に生成します。
    • Nios II浮動小数点カスタム命令 (FPCI)-mcus同値または#pragmaを使用するには:
      • fminsおよびfmax FPCI を生成するには、-ffiシセアンス演算専用フラグを使用する必要があります。
      • 最適化 (-O0 フラグ以外) を使用して fsqrts FPCI を生成する必要があります。
      • ハードウェアにインストランセンタル関数を実装するユーザーは、-funsafe-math-optimizationsフラグを使用して、金融関数 fsins() 、fcoss() 、ftans() 、fatans() 、fexps() 、fexps() 、5ghz() および対応する倍精度関数の FPCI を生成する必要があります。
  • プラグマの形式が例から変更されました。#pragma custom_fadds 253 ~ #pragma GCC ターゲット (「custom-numads=253」) と function 属性は、代替形式 の__attribute__ ((「custom-warrantds=253」))を提供します。
  • エンデアン設定には-EL/-EBの代わりに-mel/-mebフラグを使用します。この設定を有効にするには、Eclipse (SBTE) ユーザー向けソフトウェア・ビルド・ツールを再生成する必要があります。
  • -mreverse-bitfieldsフラグとreverse_bitfieldsプラグマはサポートされなくなりました。
  • スタックチェックを有効にするには、-mstack-checkの代わりに-fstack-checkフラグを使用する必要があります。

GCC の変更と強化:

  • nios2-elf-gcc GCC 4.7.3 の -Gcc,-relax-allフラグは、256MB の制限を超えるファンクションコールとプログラムをサポートします。
  • 最適化に使用する場合、asm演算子を使用するインライン・アセンブリー・コードは、http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended-Asm に記載されているメカニズムを使用して、C からインポートされた値を取り出して C にエクスポートする必要があります。
  • 標準 C ヘッダーは GCC 4.7.3 ではサポートされていません。プリスタンダード C を標準 C に置き換えます (例: 標準 C)。#include 、cout、endl#include 、std::coutおよびstd::endl。
  • コンパイルフラグ-Wl,--defsym は、バーが未定義のシンボルである場合、GCC 4.7.3 のスチーミングレベルでエラーを生成します。GCC 4.1.2 はこのチェックを含まない。

GNU は、以下の一般的な問題を文書化するための GCC4.7 移植ガイドも提供 しています: http://gcc.gnu.org/gcc-4.7/porting_to.html

GCC リリースノートの全文は http://gcc.gnu.org/releases.htmlで入手できます。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。