ID บทความ: 000083597 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 06/01/2014

อัปเกรดชุดเครื่องมือ Nios II GNU จาก GCC 4.1.2 เป็น GCC 4.7.3

สิ่งแวดล้อม

  • Intel® Quartus® II Subscription Edition
  • โปรเซสเซอร์ Intel® Nios® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    ใน ACDS เวอร์ชัน 13.1 toolchain Nios® II GNU ได้รับการอัปเกรดจาก GCC 4.1.2 เป็น GCC 4.7.3 ผู้ใช้ที่อัปเกรดเป็น Toolchain ใหม่จําเป็นต้องจดบันทึกการเปลี่ยนแปลงต่อไปนี้ตามที่ระบุไว้ด้านล่าง

    Nios IIการเปลี่ยนแปลงเฉพาะ:

    • ใช้ __buildin_custom_* แทน -mcustom-* หรือ #pragma เพื่อสร้างNios II Floating Point Custom Instructions (FPCI) ได้อย่างน่าเชื่อถือ โดยเป็นอิสระจากระดับการเพิ่มประสิทธิภาพคอมไพเลอร์และแฟลกบรรทัดคําสั่ง
      • ในการใช้ -mcustom-* หรือ #pragma สําหรับคําแนะนําแบบกําหนดเองสําหรับจุดลอยตัว Nios II (FPCI):
        • ต้องใช้แฟลก -ffinite-math-only เพื่อสร้าง fmins และ fmax FPCI
        • ต้องใช้การปรับแต่งประสิทธิภาพ (แฟลก ที่ไม่ใช่ -O0 ) เพื่อสร้าง FSqrts FPCI
        • ผู้ใช้ที่ใช้งานฟังก์ชันแบบอนุมานในฮาร์ดแวร์ต้องใช้แฟลก -funsafe-math-optimizations เพื่อสร้าง FPCI สําหรับ fsins ฟังก์ชันแบบแปลงสัญญาณ(), fcoss(), ftans(), fatans(), fexps(), flogs() และฟังก์ชัน Double-Precision ที่เกี่ยวข้อง
    • รูปแบบของ Pragma เปลี่ยนไปจากเช่น #pragma custom_fadds 253 ถึง#pragmaเป้าหมาย GCC ("custom-fadds=253") และคุณสมบัติฟังก์ชันให้รูปแบบอื่น __attribute__ ((target("custom-fadds=253"))
    • ใช้แฟ ลก -mel/-meb แทน -EL/-EB สําหรับการตั้งค่าแบบ Endian Software Build Tool สําหรับผู้ใช้ Eclipse (SBTE) ต้องสร้าง BSP ใหม่เพื่อให้การตั้งค่านี้มีผล
    • ไม่รองรับแฟลกฟิลด์ -mreverse-bitfields และ reverse_bitfields pragma อีกต่อไป
    • ต้องใช้แฟลก -fstack-check แทน -mstack-check เพื่อเปิดใช้งานการตรวจสอบสแตก

    การเปลี่ยนแปลงและการปรับปรุง GCC:

    • แฟลก -Wa,-relax-all ใน nios2-elf-gcc GCC 4.7.3 รองรับการโทรของฟังก์ชันและโปรแกรมที่เกินขีดจํากัด 256MB
    • เมื่อใช้งานกับการปรับแต่งประสิทธิภาพ รหัสการประกอบแบบอินไลน์กับตัวดําเนินการ asm จําเป็นต้องประกาศค่าที่นําเข้าจาก C และส่งออกกลับไปที่ C โดยใช้กลไกที่อธิบายไว้ใน http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Extended-Asm
    • หัวต่อ C ก่อนมาตรฐานไม่รองรับใน GCC 4.7.3 เปลี่ยน C ก่อนมาตรฐานด้วย C เช่น มาตรฐาน #include , cout, endl with #include , std::cout and std::endl ตามลําดับ
    • แฟล็กคอมไพล์ -Wl,--defsym foo=bar โดยที่ แถบ เป็นสัญลักษณ์ที่ไม่ได้กําหนดจะสร้างข้อผิดพลาดที่ระดับลิงก์ใน 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 ผลิตภัณฑ์

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

    เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้