gptimer_etm.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include "esp_err.h"
  8. #include "esp_etm.h"
  9. #include "driver/gptimer_types.h"
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. /**
  14. * @brief GPTimer ETM event configuration
  15. */
  16. typedef struct {
  17. gptimer_etm_event_type_t event_type; /*!< GPTimer ETM event type */
  18. } gptimer_etm_event_config_t;
  19. /**
  20. * @brief Get the ETM event for GPTimer
  21. *
  22. * @note The created ETM event object can be deleted later by calling `esp_etm_del_event`
  23. *
  24. * @param[in] timer Timer handle created by `gptimer_new_timer`
  25. * @param[in] config GPTimer ETM event configuration
  26. * @param[out] out_event Returned ETM event handle
  27. * @return
  28. * - ESP_OK: Get ETM event successfully
  29. * - ESP_ERR_INVALID_ARG: Get ETM event failed because of invalid argument
  30. * - ESP_FAIL: Get ETM event failed because of other error
  31. */
  32. esp_err_t gptimer_new_etm_event(gptimer_handle_t timer, const gptimer_etm_event_config_t *config, esp_etm_event_handle_t *out_event);
  33. /**
  34. * @brief GPTimer ETM task configuration
  35. */
  36. typedef struct {
  37. gptimer_etm_task_type_t task_type; /*!< GPTimer ETM task type */
  38. } gptimer_etm_task_config_t;
  39. /**
  40. * @brief Get the ETM task for GPTimer
  41. *
  42. * @note The created ETM task object can be deleted later by calling `esp_etm_del_task`
  43. *
  44. * @param[in] timer Timer handle created by `gptimer_new_timer`
  45. * @param[in] config GPTimer ETM task configuration
  46. * @param[out] out_task Returned ETM task handle
  47. * @return
  48. * - ESP_OK: Get ETM task successfully
  49. * - ESP_ERR_INVALID_ARG: Get ETM task failed because of invalid argument
  50. * - ESP_FAIL: Get ETM task failed because of other error
  51. */
  52. esp_err_t gptimer_new_etm_task(gptimer_handle_t timer, const gptimer_etm_task_config_t *config, esp_etm_task_handle_t *out_task);
  53. #ifdef __cplusplus
  54. }
  55. #endif