ไลบรารีนี้เป็นสแต็กเครือข่ายแบบโมดูลาร์ที่ใช้โปรโตคอล ARP, IPv4, UDP, DNS และ DHCP ที่ด้านบนของไดรเวอร์อีเทอร์เน็ต แบ่งออกเป็นสองส่วน: แกนประมวลผลที่ไม่ขึ้นกับฮาร์ดแวร์และไดรเวอร์เฉพาะสำหรับบอร์ด STM32F7xx และ STM32F4xx สิ่งนี้ทำให้คุณสามารถมอบการเข้าถึงเครือข่าย IPv4 ให้กับโปรเจ็กต์ของคุณได้อย่างง่ายดาย ไลบรารีถูกใช้โดยโครงการ EtherScope เพื่อบันทึกและวิเคราะห์การรับส่งข้อมูลเครือข่าย (ดู https://github.com/stcarrez/etherscope)
รองรับโปรโตคอลต่อไปนี้:
ส่วนหลักไม่มีการพึ่งพา ในขณะที่ไดรเวอร์ STM32 ขึ้นอยู่กับลังอีเทอร์เน็ต เนื่องจากใช้อินเทอร์เฟซ MDIO ที่กำหนดไว้ในนั้น
หากต้องการใช้ไลบรารี่กับ Alire ให้รัน alr with enet
(สำหรับส่วนหลัก) หากต้องการใช้ไดรเวอร์ STM32 ให้รัน alr with enet_stm32
ดูรายละเอียดเพิ่มเติมในวิกิ
เราจัดให้มีการสาธิต ping_text_io อย่างง่าย การสาธิตนี้ไม่ขึ้นอยู่กับบอร์ดใดๆ และคุณสามารถสร้างได้โดยระบุรันไทม์ที่จำเป็น เช่น:
alr -C demos/ping_text_io/ build -- -XRUNTIME=embedded-stm32f746disco
เมื่อคุณแฟลชปฏิบัติการ บอร์ดจะได้รับที่อยู่ IP ผ่าน DHCP และ ping เกตเวย์เริ่มต้น คุณสามารถดูข้อความ Ping ที่ปล่อยออกมาได้โดยใช้รูทีนมาตรฐานของ Ada.Text_IO
มีแอปพลิเคชันสาธิตเพิ่มเติมอีกสี่รายการเพื่อแสดงให้เห็นว่าคุณสามารถใช้คุณลักษณะเครือข่ายต่างๆ ได้อย่างไร พวกเขาต้องการบอร์ด STM32F429, STM32F746 หรือ STM32F769 Discovery จึงจะทำงานได้ ตัวอย่างเหล่านี้ขึ้นอยู่กับ Ada_Drivers_Library และไม่ใช้ Alire ในการสร้าง ตรวจสอบให้แน่ใจว่าคุณมี cross toolchain ของ GNAT ARM ใน PATH
ของคุณแล้วรัน:
configure --with-board=stm32f746 # or stm32f769 or stm32f429
จากนั้นดำเนิน make checkout
เพื่อดาวน์โหลดการขึ้นต่อกันที่จำเป็น ในที่สุด make all
จะสร้างเดโมทั้งสี่ชุด
แอปพลิเคชันสาธิตใช้ไคลเอนต์ DHCP เพื่อรับที่อยู่ IPv4 และรับเกตเวย์และ DNS เริ่มต้น
สำหรับแอปพลิเคชันสาธิตบางตัว คุณสามารถสลับไปใช้การกำหนดค่า IP แบบคงที่ได้โดยแก้ไขไฟล์ demos/utils/demo.adb และยกเลิกการแสดงความคิดเห็น และแก้ไขบรรทัดต่อไปนี้:
Ifnet.Ip := ( 192 , 168 , 1 , 2 );
Ifnet.Gateway := ( 192 , 168 , 1 , 240 );
Ifnet.Dns := ( 192 , 168 , 1 , 240 );
และปิดการใช้งานการกำหนดค่า DHCP โดยการแสดงความคิดเห็นในบรรทัด:
-- Dhcp.Initialize (Ifnet'Access);
แอปพลิเคชัน Ping ใช้ Ping อย่างง่ายบนโฮสต์หลายตัว และแสดงตัวนับ Ping บนจอแสดงผล LCD STM32F แอปพลิเคชันจะตอบคำขอ Ping ด้วย
ในการสร้างแอปพลิเคชัน Ping คุณสามารถเรียกใช้:
make ping
และหากต้องการแฟลชภาพ ping คุณสามารถใช้:
make flash-ping
แอปพลิเคชัน echo แสดงเซิร์ฟเวอร์ UDP แบบธรรมดาที่สะท้อนแพ็กเก็ตที่ได้รับ (RFC 862) โดยจะฟังบนพอร์ต UDP 7, วนซ้ำเพื่อรอแพ็กเก็ต UDP, ส่งคืนและเพิ่มตัวนับของแพ็กเก็ตที่ได้รับซึ่งแสดงบนจอแสดงผล LCD STM32 แอปพลิเคชัน echo ได้อธิบายไว้ในบทความ: Simple UDP Echo Server บน STM32F746
ในการสร้างแอปพลิเคชัน Echo คุณสามารถเรียกใช้:
make echo
และหากต้องการแฟลชภาพสะท้อน คุณสามารถใช้:
make flash-echo
และเพื่อทดสอบเซิร์ฟเวอร์ echo UDP คุณสามารถใช้คำสั่ง socat บน GNU/Linux ได้ ตัวอย่างเช่น:
echo -n ' Hello! Ada is great! ' | socat - UDP:192.168.1.156:7
แอปพลิเคชัน DNS แสดงตัวแก้ไขไคลเอนต์ DNS แบบธรรมดาที่สอบถาม DNS เพื่อแก้ไขรายการโฮสต์
ในการสร้างแอปพลิเคชัน DNS คุณสามารถเรียกใช้:
make dns
และในการแฟลชอิมเมจ DNS คุณสามารถใช้:
make flash-dns
แอปพลิเคชันเวลาใช้ไคลเอนต์ NTP เพื่อดึงวันที่ GMT จากเซิร์ฟเวอร์ NTP และจะแสดงเวลา GMT ทันทีที่ได้รับการซิงโครไนซ์ NTP แอปพลิเคชันจะตอบคำขอ Ping ด้วย
ในการสร้างแอปพลิเคชัน Time คุณสามารถเรียกใช้:
make time
และหากต้องการแฟลชภาพเวลา คุณสามารถใช้:
make flash-time
Apache-2.0 © สเตฟาน คาร์เรซ