forked from espressif/esp-idf
Merge branch 'bugfix/twai_assert_program_logic' into 'master'
TWAI: Remove asserts used for program logic Closes IDFGH-3729 See merge request espressif/esp-idf!9834
This commit is contained in:
@@ -130,7 +130,8 @@ static inline void twai_handle_bus_off(int *alert_req)
|
|||||||
static inline void twai_handle_recovery_complete(int *alert_req)
|
static inline void twai_handle_recovery_complete(int *alert_req)
|
||||||
{
|
{
|
||||||
//Bus recovery complete.
|
//Bus recovery complete.
|
||||||
assert(twai_hal_handle_bus_recov_cplt(&twai_context));
|
bool recov_cplt = twai_hal_handle_bus_recov_cplt(&twai_context);
|
||||||
|
assert(recov_cplt);
|
||||||
|
|
||||||
//Reset and set flags to the equivalent of the stopped state
|
//Reset and set flags to the equivalent of the stopped state
|
||||||
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_RECOVERING | CTRL_FLAG_ERR_WARN |
|
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_RECOVERING | CTRL_FLAG_ERR_WARN |
|
||||||
@@ -381,7 +382,8 @@ esp_err_t twai_driver_install(const twai_general_config_t *g_config, const twai_
|
|||||||
}
|
}
|
||||||
periph_module_reset(PERIPH_TWAI_MODULE);
|
periph_module_reset(PERIPH_TWAI_MODULE);
|
||||||
periph_module_enable(PERIPH_TWAI_MODULE); //Enable APB CLK to TWAI peripheral
|
periph_module_enable(PERIPH_TWAI_MODULE); //Enable APB CLK to TWAI peripheral
|
||||||
assert(twai_hal_init(&twai_context));
|
bool init = twai_hal_init(&twai_context);
|
||||||
|
assert(init);
|
||||||
twai_hal_configure(&twai_context, t_config, f_config, DRIVER_DEFAULT_INTERRUPTS, g_config->clkout_divider);
|
twai_hal_configure(&twai_context, t_config, f_config, DRIVER_DEFAULT_INTERRUPTS, g_config->clkout_divider);
|
||||||
//Todo: Allow interrupt to be registered to specified CPU
|
//Todo: Allow interrupt to be registered to specified CPU
|
||||||
TWAI_EXIT_CRITICAL();
|
TWAI_EXIT_CRITICAL();
|
||||||
@@ -467,7 +469,8 @@ esp_err_t twai_start(void)
|
|||||||
//Todo: Add assert to see if in reset mode. //Should already be in bus-off mode, set again to make sure
|
//Todo: Add assert to see if in reset mode. //Should already be in bus-off mode, set again to make sure
|
||||||
|
|
||||||
//Currently in listen only mode, need to set to mode specified by configuration
|
//Currently in listen only mode, need to set to mode specified by configuration
|
||||||
assert(twai_hal_start(&twai_context, p_twai_obj->mode));
|
bool started = twai_hal_start(&twai_context, p_twai_obj->mode);
|
||||||
|
assert(started);
|
||||||
|
|
||||||
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_STOPPED);
|
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_STOPPED);
|
||||||
TWAI_EXIT_CRITICAL();
|
TWAI_EXIT_CRITICAL();
|
||||||
@@ -481,7 +484,8 @@ esp_err_t twai_stop(void)
|
|||||||
TWAI_CHECK_FROM_CRIT(p_twai_obj != NULL, ESP_ERR_INVALID_STATE);
|
TWAI_CHECK_FROM_CRIT(p_twai_obj != NULL, ESP_ERR_INVALID_STATE);
|
||||||
TWAI_CHECK_FROM_CRIT(!(p_twai_obj->control_flags & (CTRL_FLAG_STOPPED | CTRL_FLAG_BUS_OFF)), ESP_ERR_INVALID_STATE);
|
TWAI_CHECK_FROM_CRIT(!(p_twai_obj->control_flags & (CTRL_FLAG_STOPPED | CTRL_FLAG_BUS_OFF)), ESP_ERR_INVALID_STATE);
|
||||||
|
|
||||||
assert(twai_hal_stop(&twai_context));
|
bool stopped = twai_hal_stop(&twai_context);
|
||||||
|
assert(stopped);
|
||||||
|
|
||||||
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_TX_BUFF_OCCUPIED);
|
TWAI_RESET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_TX_BUFF_OCCUPIED);
|
||||||
TWAI_SET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_STOPPED);
|
TWAI_SET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_STOPPED);
|
||||||
@@ -630,7 +634,8 @@ esp_err_t twai_initiate_recovery(void)
|
|||||||
TWAI_SET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_RECOVERING);
|
TWAI_SET_FLAG(p_twai_obj->control_flags, CTRL_FLAG_RECOVERING);
|
||||||
|
|
||||||
//Trigger start of recovery process
|
//Trigger start of recovery process
|
||||||
assert(twai_hal_start_bus_recovery(&twai_context));
|
bool started = twai_hal_start_bus_recovery(&twai_context);
|
||||||
|
assert(started);
|
||||||
TWAI_EXIT_CRITICAL();
|
TWAI_EXIT_CRITICAL();
|
||||||
|
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
|
Reference in New Issue
Block a user