diff --git a/components/net/at/include/at.h b/components/net/at/include/at.h index aafb819e5e0788950f4034cd590462c4eee66c26..746d56b2ac78782863db7f888400eeba41e6c302 100644 --- a/components/net/at/include/at.h +++ b/components/net/at/include/at.h @@ -27,7 +27,7 @@ #include -#define AT_SW_VERSION "0.2.4" +#define AT_SW_VERSION "0.2.5" #define DBG_ENABLE #define DBG_SECTION_NAME "AT" diff --git a/components/net/at/src/at_cli.c b/components/net/at/src/at_cli.c index 0136922199b0937dbc10acb4cc6b850dd6696789..804602c4dd547381367aa3d3989c869d439ced54 100644 --- a/components/net/at/src/at_cli.c +++ b/components/net/at/src/at_cli.c @@ -100,9 +100,6 @@ void at_cli_deinit(void) rt_base_t int_lvl; rt_device_t console; - rt_sem_detach(&console_rx_notice); - rt_ringbuffer_destroy(console_rx_fifo); - int_lvl = rt_hw_interrupt_disable(); console = rt_console_get_device(); if (console && odev_rx_ind) @@ -111,6 +108,9 @@ void at_cli_deinit(void) rt_device_set_rx_indicate(console, odev_rx_ind); } rt_hw_interrupt_enable(int_lvl); + + rt_sem_detach(&console_rx_notice); + rt_ringbuffer_destroy(console_rx_fifo); } #ifdef AT_USING_SERVER @@ -272,15 +272,16 @@ static void client_cli_parser(void) } } - rt_thread_delete(at_client); - rt_sem_detach(&client_rx_notice); - rt_ringbuffer_destroy(client_rx_fifo); /* restore client device RX indicate */ { int_lvl = rt_hw_interrupt_disable(); rt_device_set_rx_indicate(client->device, client_odev_rx_ind); rt_hw_interrupt_enable(int_lvl); } + + rt_thread_delete(at_client); + rt_sem_detach(&client_rx_notice); + rt_ringbuffer_destroy(client_rx_fifo); } else {