Pustaka ini adalah tumpukan jaringan modular yang mengimplementasikan protokol ARP, IPv4, UDP, DNS, dan DHCP di atas driver Ethernet. Ini dibagi menjadi dua bagian: inti yang tidak bergantung pada perangkat keras dan driver khusus untuk papan STM32F7xx dan STM32F4xx. Ini memungkinkan Anda menyediakan akses jaringan IPv4 ke proyek Anda dengan mudah. Perpustakaan ini digunakan oleh proyek EtherScope untuk menangkap dan menganalisis lalu lintas jaringan (Lihat https://github.com/stcarrez/etherscope).
Protokol berikut ini didukung:
Bagian inti tidak memiliki ketergantungan, sedangkan driver STM32 bergantung pada peti ethernet, karena mengimplementasikan antarmuka MDIO yang ditentukan di sana.
Untuk menggunakan perpustakaan dengan Alire jalankan saja alr with enet
(untuk bagian inti). Untuk menggunakan driver STM32, jalankan alr with enet_stm32
.
Lihat rincian lebih lanjut di Wiki.
Kami menyediakan demo ping_text_io sederhana. Demo ini tidak bergantung pada papan tertentu, dan Anda dapat membuatnya dengan menyediakan runtime yang diperlukan, misalnya:
alr -C demos/ping_text_io/ build -- -XRUNTIME=embedded-stm32f746disco
Saat Anda mem-flash file yang dapat dieksekusi, board akan menerima alamat IP melalui DHCP dan melakukan ping ke gateway default. Anda dapat melihat pesan ping yang dikirimkan menggunakan rutinitas Ada.Text_IO standar.
Empat aplikasi demo tambahan disediakan untuk mengilustrasikan bagaimana Anda dapat menggunakan fitur jaringan yang berbeda. Mereka memerlukan papan Discovery STM32F429, STM32F746, atau STM32F769 untuk dijalankan. Contoh-contoh ini bergantung pada Ada_Drivers_Library dan tidak menggunakan Alire untuk membangun. Sebagai gantinya, pastikan Anda memiliki rantai alat silang GNAT ARM di PATH
Anda, lalu jalankan:
configure --with-board=stm32f746 # or stm32f769 or stm32f429
Kemudian, jalankan make checkout
untuk mengunduh dependensi yang diperlukan. Terakhir, make all
akan membangun keempat demo.
Aplikasi demo menggunakan Klien DHCP untuk mendapatkan alamat IPv4 dan mendapatkan gateway default dan DNS.
Untuk beberapa aplikasi demo, Anda dapat beralih ke konfigurasi IP statis dengan mengedit file demos/utils/demo.adb dan menghapus komentar serta mengubah baris berikut:
Ifnet.Ip := ( 192 , 168 , 1 , 2 );
Ifnet.Gateway := ( 192 , 168 , 1 , 240 );
Ifnet.Dns := ( 192 , 168 , 1 , 240 );
dan nonaktifkan konfigurasi DHCP dengan memberi komentar pada baris:
-- Dhcp.Initialize (Ifnet'Access);
Aplikasi ping mengimplementasikan ping sederhana pada beberapa host dan menampilkan penghitung ping pada layar LCD STM32F. Aplikasi juga akan menjawab permintaan ping.
Untuk membangun aplikasi Ping Anda dapat menjalankan:
make ping
Dan untuk mem-flash gambar ping, Anda dapat menggunakan:
make flash-ping
Aplikasi echo menampilkan server UDP sederhana yang menggemakan paket yang diterima (RFC 862). Ia mendengarkan pada port UDP 7, melakukan loop untuk menunggu paket UDP, mengembalikannya dan menambah penghitung paket yang diterima yang ditampilkan pada layar LCD STM32. Aplikasi echo dijelaskan dalam artikel: Server UDP Echo Sederhana di STM32F746
Untuk membangun aplikasi Echo Anda dapat menjalankan:
make echo
Dan untuk mem-flash gambar gema, Anda dapat menggunakan:
make flash-echo
Dan untuk menguji server echo UDP, Anda dapat menggunakan perintah socat di GNU/Linux. Misalnya:
echo -n ' Hello! Ada is great! ' | socat - UDP:192.168.1.156:7
Aplikasi dns menunjukkan pemecah klien DNS sederhana yang menanyakan DNS untuk menyelesaikan daftar host.
Untuk membangun aplikasi dns Anda dapat menjalankan:
make dns
Dan untuk mem-flash gambar dns, Anda dapat menggunakan:
make flash-dns
Aplikasi waktu menggunakan klien NTP untuk mengambil tanggal GMT dari server NTP dan menampilkan waktu GMT segera setelah sinkronisasi NTP diperoleh. Aplikasi juga akan menjawab permintaan ping.
Untuk membangun aplikasi Time, Anda dapat menjalankan:
make time
Dan untuk mem-flash gambar waktu, Anda dapat menggunakan:
make flash-time
Apache-2.0 © Stephane Carrez