esp_eth_test_common.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Unlicense OR CC0-1.0
  5. */
  6. #pragma once
  7. #include "unity.h"
  8. #include "test_utils.h"
  9. #include "esp_event.h"
  10. #include "esp_netif.h"
  11. #include "esp_eth.h"
  12. #define ETH_START_BIT BIT(0)
  13. #define ETH_STOP_BIT BIT(1)
  14. #define ETH_CONNECT_BIT BIT(2)
  15. #define ETH_GOT_IP_BIT BIT(3)
  16. #define ETH_START_TIMEOUT_MS (10000)
  17. #define ETH_CONNECT_TIMEOUT_MS (40000)
  18. #define ETH_STOP_TIMEOUT_MS (10000)
  19. #define ETH_GET_IP_TIMEOUT_MS (60000)
  20. #define ETH_DOWNLOAD_END_TIMEOUT_MS (240000)
  21. typedef struct {
  22. uint8_t dest[ETH_ADDR_LEN];
  23. uint8_t src[ETH_ADDR_LEN];
  24. uint16_t proto;
  25. uint8_t data[];
  26. } __attribute__((__packed__)) emac_frame_t;
  27. esp_eth_mac_t *mac_init(void *vendor_emac_config, eth_mac_config_t *mac_config);
  28. esp_eth_phy_t *phy_init(eth_phy_config_t *phy_config);
  29. void extra_eth_config(esp_eth_handle_t eth_handle);
  30. void extra_cleanup(void);
  31. /** Event handler for Ethernet events */
  32. void eth_event_handler(void *arg, esp_event_base_t event_base,
  33. int32_t event_id, void *event_data);
  34. /** Event handler for IP_EVENT_ETH_GOT_IP */
  35. void got_ip_event_handler(void *arg, esp_event_base_t event_base,
  36. int32_t event_id, void *event_data);