이 라이브러리는 이더넷 드라이버 위에 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
실행하세요.
자세한 내용은 Wiki에서 확인하세요.
우리는 간단한 ping_text_io 데모를 제공합니다. 이 데모는 특정 보드와 독립적이며 필요한 런타임을 제공하여 빌드할 수 있습니다. 예를 들면 다음과 같습니다.
alr -C demos/ping_text_io/ build -- -XRUNTIME=embedded-stm32f746disco
실행 파일을 플래시하면 보드는 DHCP를 통해 IP 주소를 수신하고 기본 게이트웨이를 ping합니다. 표준 Ada.Text_IO 루틴을 사용하여 방출된 ping 메시지를 볼 수 있습니다.
다양한 네트워크 기능을 사용하는 방법을 보여주기 위해 4개의 추가 데모 애플리케이션이 제공됩니다. 실행하려면 STM32F429, STM32F746 또는 STM32F769 Discovery 보드가 필요합니다. 이 예제는 Ada_Drivers_Library에 의존하며 구축에 Alire를 사용하지 않습니다. 대신 PATH
에 GNAT ARM 크로스 툴체인이 있는지 확인한 후 다음을 실행하세요.
configure --with-board=stm32f746 # or stm32f769 or stm32f429
그런 다음 make checkout
실행하여 필요한 종속성을 다운로드합니다. 마지막으로 make all
4개의 데모를 모두 빌드합니다.
데모 애플리케이션은 DHCP 클라이언트를 사용하여 IPv4 주소를 얻고 기본 게이트웨이와 DNS를 얻습니다.
일부 데모 애플리케이션의 경우 데모/utils/demo.adb 파일을 편집하고 다음 줄의 주석 처리를 제거하고 수정하여 고정 IP 구성으로 전환할 수 있습니다.
Ifnet.Ip := ( 192 , 168 , 1 , 2 );
Ifnet.Gateway := ( 192 , 168 , 1 , 240 );
Ifnet.Dns := ( 192 , 168 , 1 , 240 );
다음 줄에 주석을 달아 DHCP 구성을 비활성화합니다.
-- Dhcp.Initialize (Ifnet'Access);
핑 애플리케이션은 여러 호스트에서 간단한 핑을 구현하고 STM32F LCD 디스플레이에 핑 카운터를 표시합니다. 애플리케이션은 핑 요청에도 응답합니다.
Ping 애플리케이션을 빌드하려면 다음을 실행할 수 있습니다.
make ping
핑 이미지를 플래시하려면 다음을 사용할 수 있습니다.
make flash-ping
echo 애플리케이션은 수신된 패킷(RFC 862)을 에코하는 간단한 UDP 서버를 보여줍니다. UDP 포트 7에서 수신 대기하고 UDP 패킷을 기다리기 위해 루프를 돌린 다음 이를 반환하고 STM32 LCD 디스플레이에 표시되는 수신 패킷의 카운터를 증가시킵니다. 에코 애플리케이션은 STM32F746의 단순 UDP 에코 서버 문서에 설명되어 있습니다.
Echo 애플리케이션을 빌드하려면 다음을 실행할 수 있습니다.
make echo
에코 이미지를 플래시하려면 다음을 사용할 수 있습니다.
make flash-echo
그리고 echo UDP 서버를 테스트하려면 GNU/Linux에서 socat 명령을 사용할 수 있습니다. 예를 들어:
echo -n ' Hello! Ada is great! ' | socat - UDP:192.168.1.156:7
DNS 애플리케이션은 DNS를 쿼리하여 호스트 목록을 확인하는 간단한 DNS 클라이언트 확인자를 보여줍니다.
DNS 애플리케이션을 빌드하려면 다음을 실행할 수 있습니다.
make dns
DNS 이미지를 플래시하려면 다음을 사용할 수 있습니다.
make flash-dns
시간 응용 프로그램은 NTP 클라이언트를 사용하여 NTP 서버에서 GMT 날짜를 검색하고 NTP 동기화가 획득되는 즉시 GMT 시간을 표시합니다. 애플리케이션은 핑 요청에도 응답합니다.
Time 애플리케이션을 빌드하려면 다음을 실행할 수 있습니다.
make time
시간 이미지를 플래시하려면 다음을 사용할 수 있습니다.
make flash-time
아파치-2.0 © 스테판 카레즈