forked from espressif/esp-modbus
Merge branch 'bugfix/fix_transport_master_slave_destroy_sequence' into 'main'
fix transport master-slave destroy sequence See merge request idf/esp-modbus!119
This commit is contained in:
@@ -5,3 +5,5 @@ CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
||||
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=400
|
||||
CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -5,3 +5,5 @@ CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
|
||||
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=400
|
||||
CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -3,4 +3,6 @@ CONFIG_MB_COMM_MODE_RTU=n
|
||||
CONFIG_MB_SLAVE_ADDR=1
|
||||
CONFIG_MB_UART_BAUD_RATE=115200
|
||||
CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
@@ -4,3 +4,5 @@ CONFIG_MB_SLAVE_ADDR=1
|
||||
CONFIG_MB_UART_BAUD_RATE=115200
|
||||
CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -6,3 +6,5 @@ CONFIG_MB_SLAVE_ADDR=1
|
||||
CONFIG_MB_UART_BAUD_RATE=115200
|
||||
CONFIG_FMB_TIMER_USE_ISR_DISPATCH_METHOD=y
|
||||
CONFIG_FMB_EXT_TYPE_SUPPORT=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -31,3 +31,6 @@ CONFIG_ETH_ENABLED=y
|
||||
CONFIG_ETH_USE_ESP32_EMAC=y
|
||||
CONFIG_ETH_PHY_INTERFACE_RMII=y
|
||||
CONFIG_ETH_USE_SPI_ETHERNET=n
|
||||
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -18,3 +18,6 @@ CONFIG_EXAMPLE_CONNECT_ETHERNET=n
|
||||
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
||||
CONFIG_EXAMPLE_WIFI_SSID="${CI_WIFI_SSID}"
|
||||
CONFIG_EXAMPLE_WIFI_PASSWORD="${CI_WIFI_PASSW}"
|
||||
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -30,3 +30,6 @@ CONFIG_ETH_ENABLED=y
|
||||
CONFIG_ETH_USE_ESP32_EMAC=y
|
||||
CONFIG_ETH_PHY_INTERFACE_RMII=y
|
||||
CONFIG_ETH_USE_SPI_ETHERNET=n
|
||||
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -17,3 +17,6 @@ CONFIG_EXAMPLE_CONNECT_ETHERNET=n
|
||||
CONFIG_EXAMPLE_CONNECT_WIFI=y
|
||||
CONFIG_EXAMPLE_WIFI_SSID="${CI_WIFI_SSID}"
|
||||
CONFIG_EXAMPLE_WIFI_PASSWORD="${CI_WIFI_PASSW}"
|
||||
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
||||
|
@@ -185,7 +185,6 @@ void mbs_port_tcp_delete(mb_port_base_t *inst)
|
||||
mbs_port_tcp_unregister_handlers(port_obj->pdriver);
|
||||
}
|
||||
(void)mb_drv_unregister(port_obj->pdriver);
|
||||
CRITICAL_SECTION_CLOSE(port_obj->base.lock);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(port_obj);
|
||||
|
@@ -97,10 +97,12 @@ error:
|
||||
bool mbm_ascii_transp_delete(mb_trans_base_t *inst)
|
||||
{
|
||||
mbm_ascii_trasp_t *trans = __containerof(inst, mbm_ascii_trasp_t, base);
|
||||
mb_port_timer_delete(trans->base.port_obj);
|
||||
mb_port_event_delete(trans->base.port_obj);
|
||||
mb_port_ser_delete(trans->base.port_obj);
|
||||
free((void *)trans->pascii_puf);
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mb_port_timer_delete(trans->base.port_obj);
|
||||
mb_port_event_delete(trans->base.port_obj);
|
||||
mb_port_ser_delete(trans->base.port_obj);
|
||||
free((void *)trans->pascii_puf);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(trans);
|
||||
return true;
|
||||
|
@@ -94,9 +94,11 @@ error:
|
||||
bool mbs_ascii_transp_delete(mb_trans_base_t *inst)
|
||||
{
|
||||
mbs_ascii_trasp_t *transp = __containerof(inst, mbs_ascii_trasp_t, base);
|
||||
mb_port_timer_delete(transp->base.port_obj);
|
||||
mb_port_event_delete(transp->base.port_obj);
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mb_port_timer_delete(transp->base.port_obj);
|
||||
mb_port_event_delete(transp->base.port_obj);
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
}
|
||||
free(transp->pascii_puf);
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(transp);
|
||||
|
@@ -104,9 +104,11 @@ error:
|
||||
bool mbm_rtu_transp_delete(mb_trans_base_t *inst)
|
||||
{
|
||||
mbm_rtu_transp_t *transp = __containerof(inst, mbm_rtu_transp_t, base);
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
mb_port_timer_delete(transp->base.port_obj);
|
||||
mb_port_event_delete(transp->base.port_obj);
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mb_port_timer_delete(transp->base.port_obj);
|
||||
mb_port_event_delete(transp->base.port_obj);
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(transp);
|
||||
return true;
|
||||
|
@@ -93,9 +93,9 @@ bool mbs_rtu_transp_delete(mb_trans_base_t *inst)
|
||||
{
|
||||
mbs_rtu_transp_t *transp = __containerof(inst, mbs_rtu_transp_t, base);
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
mb_port_timer_delete(transp->base.port_obj);
|
||||
mb_port_event_delete(transp->base.port_obj);
|
||||
mb_port_ser_delete(transp->base.port_obj);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(transp);
|
||||
|
@@ -93,9 +93,9 @@ bool mbm_tcp_transp_delete(mb_trans_base_t *inst)
|
||||
mbm_tcp_transp_t *transp = __containerof(inst, mbm_tcp_transp_t, base);
|
||||
// destroy method of port tcp master is here
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mbm_port_tcp_delete(inst->port_obj);
|
||||
mb_port_timer_delete(inst->port_obj);
|
||||
mb_port_event_delete(inst->port_obj);
|
||||
mbm_port_tcp_delete(inst->port_obj);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(transp);
|
||||
|
@@ -91,9 +91,9 @@ bool mbs_tcp_transp_delete(mb_trans_base_t *inst)
|
||||
mbs_tcp_transp_t *transp = __containerof(inst, mbs_tcp_transp_t, base);
|
||||
// destroy method of port tcp slave is here
|
||||
CRITICAL_SECTION(inst->lock) {
|
||||
mbs_port_tcp_delete(inst->port_obj);
|
||||
mb_port_timer_delete(inst->port_obj);
|
||||
mb_port_event_delete(inst->port_obj);
|
||||
mbs_port_tcp_delete(inst->port_obj);
|
||||
}
|
||||
CRITICAL_SECTION_CLOSE(inst->lock);
|
||||
free(transp);
|
||||
|
3
test_apps/cpp/modbus_serial_cpp_test/sdkconfig.defaults
Normal file
3
test_apps/cpp/modbus_serial_cpp_test/sdkconfig.defaults
Normal file
@@ -0,0 +1,3 @@
|
||||
# General options for test
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_HEAP_TRACING_OFF=y
|
Reference in New Issue
Block a user