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

ทําไมจึงมีการกําหนด IP แอดเดรสเริ่มต้นของ NicheStack ไม่ถูกต้องเมื่อไม่พบเซิร์ฟเวอร์ DHCP หรือหมดเวลา

สิ่งแวดล้อม

BUILT IN - ARTICLE INTRO SECOND COMPONENT
คำอธิบาย

นิยามใหม่ของมาโครที่ใช้ในการกําหนดที่อยู่ IP เริ่มต้นที่เปลี่ยนไปในเครื่องมือ Nios® II, เวอร์ชั่น 8.0 ซึ่งทําให้การกําหนดที่อยู่ IP เริ่มต้นไม่ถูกต้อง  ข้อผิดพลาดนี้มีผลต่อการออกแบบตัวอย่างเซิร์ฟเวอร์ซ็อกเก็ตที่เรียบง่ายและเว็บเซิร์ฟเวอร์  เพื่อแก้ไขปัญหานี้ในการติดตั้งเครื่องมือNios IIคุณจะต้องแก้ไขไฟล์เทมเพลตสําหรับโครงการเหล่านี้โดยทําตามขั้นตอนต่อไปนี้:

 

1) ค้นหาการติดตั้งNios IIของคุณ เวอร์ชัน 8.0: ค้นหาตําแหน่งที่คุณติดตั้งการติดตั้ง  Nios II พาธเริ่มต้นสําหรับไดเรกทอรีรากมักจะเป็น C:\altera\80\nios2eds บนเวิร์คสเตชัน Windows

2) ค้นหาซอฟต์แวร์โฟลเดอร์ย่อย:  ในไดเรกทอรีที่กล่าวถึงข้างต้น ไปที่ตัวอย่าง\ไดเรกทอรีซอฟต์แวร์  ไดเรกทอรีนี้มีเทมเพลตซอฟต์แวร์Nios IIทั้งหมด

3) แก้ไขไฟล์ network_utilities.c สําหรับโครงการ web_server :  ค้นหาไดเรกทอรี web_server และเปิดไฟล์ network_utilities.c ในโปรแกรมแก้ไข  ข้อความ ค้นหาIP4_ADDRมาโครและปรับเปลี่ยนเพื่อให้รวมชุดวงเดือนเพิ่มเติม "(" และ ")" เริ่มต้นหลังจากฟังก์ชัน "htonl" และสิ้นสุดที่ตอนท้ายของการเรียกฟังก์ชัน 

 

ฟังก์ชันในเวอร์ชันที่เป็นระบบจะมีลักษณะดังนี้:

 

#define IP4_ADDR(ipaddr, a,b,c,d) ipaddr = \

    << | htonl(alt_u32)(a & 0xff) 24) ((alt_u32)(b & 0xff) << 16) | \

          ((alt_u32)(c &0xff) << 8) | (alt_u32) (d & 0xff))

 

เมื่อใช้การแก้ไขแล้ว ฟังก์ชันควรมีลักษณะดังนี้:

 

#define IP4_ADDR(ipaddr, a,b,c,d) ipaddr = \

    | << htonl((alt_u32)(a & 0xff) 24) ((alt_u32)(b & 0xff) << 16) | \

          ((alt_u32)(c &0xff) << 8) | (alt_u32) (d & 0xff)) )

 

เมื่อคุณทําสิ่งนี้แล้ว ให้บันทึกและปิดไฟล์

 

4) ปรับเปลี่ยนไฟล์ network_utilities.c สําหรับโครงการ simple_socket_server : ทําซ้ําขั้นตอนข้างต้น

 

หลังจากที่คุณทําตามขั้นตอนเหล่านี้แล้ว ครั้งต่อไปที่คุณสร้าง โครงการweb_server หรือ โครงการsimple_socket_server ใหม่ จะรวมการแก้ไขนี้และเรียกใช้งานอย่างถูกต้อง

 

(หมายเหตุ: หากคุณสร้างโครงการซอฟต์แวร์ของคุณจากเทมเพลตแล้ว คุณสามารถแก้ไขสําเนาบนเครื่องของ network_utilities.c ซึ่งอยู่ในโฟลเดอร์  แอปพลิเคชันของโครงการคุณ ทําตามคําแนะนําในขั้นตอนที่ 3 (ด้านบน) แล้วสร้างแอปพลิเคชันของคุณใหม่)

ผลิตภัณฑ์ที่เกี่ยวข้อง

บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

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

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