feat(temperature_sensor): Add new support for temperature sensor ETM on ESP32C6/H2

This commit is contained in:
Cao Sen Miao
2024-02-29 18:29:24 +08:00
parent e4f167df25
commit 2b2b3be98f
15 changed files with 244 additions and 11 deletions
@@ -0,0 +1,64 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_err.h"
#include "esp_etm.h"
#include "driver/temperature_sensor.h"
#include "hal/temperature_sensor_types.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Temperature Sensor ETM event configuration
*/
typedef struct {
temperature_sensor_etm_event_type_t event_type; /*!< Temperature Sensor ETM event type */
} temperature_sensor_etm_event_config_t;
/**
* @brief Get the ETM event for Temperature Sensor
*
* @note The created ETM event object can be deleted later by calling `esp_etm_del_event`
*
* @param[in] tsens Temperature Sensor handle, allocated by `temperature_sensor_install()`
* @param[in] config Temperature Sensor ETM event configuration
* @param[out] out_event Returned ETM event handle
* @return
* - ESP_OK: Get ETM event successfully
* - ESP_ERR_INVALID_ARG: Get ETM event failed because of invalid argument
* - ESP_FAIL: Get ETM event failed because of other error
*/
esp_err_t temperature_sensor_new_etm_event(temperature_sensor_handle_t tsens, const temperature_sensor_etm_event_config_t *config, esp_etm_event_handle_t *out_event);
/**
* @brief Temperature Sensor ETM task configuration
*/
typedef struct {
temperature_sensor_etm_task_type_t task_type; /*!< Temperature Sensor ETM task type */
} temperature_sensor_etm_task_config_t;
/**
* @brief Get the ETM task for Temperature Sensor
*
* @note The created ETM event object can be deleted later by calling `esp_etm_del_event`
*
* @param[in] tsens Temperature Sensor, allocated by `temperature_sensor_install()`
* @param[in] config Temperature Sensor ETM event configuration
* @param[out] out_task Returned ETM event handle
* @return
* - ESP_OK: Get ETM event successfully
* - ESP_ERR_INVALID_ARG: Get ETM event failed because of invalid argument
* - ESP_FAIL: Get ETM event failed because of other error
*/
esp_err_t temperature_sensor_new_etm_task(temperature_sensor_handle_t tsens, const temperature_sensor_etm_task_config_t *config, esp_etm_task_handle_t *out_task);
#ifdef __cplusplus
}
#endif