هذه المكتبة عبارة عن مكدس شبكة معياري يقوم بتنفيذ بروتوكولات ARP وIPv4 وUDP وDNS وDHCP أعلى برنامج تشغيل Ethernet. وهو مقسم إلى قسمين: نواة مستقلة عن الأجهزة وبرنامج تشغيل محدد للوحات 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 المنبعثة باستخدام إجراءات Ada.Text_IO القياسية.
يتم توفير أربعة تطبيقات تجريبية إضافية لتوضيح كيفية استخدام ميزات الشبكة المختلفة. إنها تتطلب لوحة Discovery STM32F429 أو STM32F746 أو STM32F769 للتشغيل. تعتمد هذه الأمثلة على Ada_Drivers_Library ولا تستخدم Alire للبناء. بدلاً من ذلك، تأكد من وجود سلسلة أدوات 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 على شاشة STM32F LCD. سيقوم التطبيق أيضًا بالرد على طلبات ping.
لبناء تطبيق Ping يمكنك تشغيل:
make ping
ولفلاش صورة ping، يمكنك استخدام:
make flash-ping
يعرض تطبيق الصدى خادم UDP بسيطًا يردد الحزمة المستلمة (RFC 862). فهو يستمع على منفذ UDP رقم 7، ويتكرر لانتظار حزم UDP، ويعيدها ويزيد عداد الحزم المستلمة التي يتم عرضها على شاشة STM32 LCD. تم وصف تطبيق الصدى في المقالة: 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
أباتشي-2.0 © ستيفان كاريز