diff options
| author | 朱天龙 (Armink) <[email protected]> | 2018-08-21 10:51:12 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-08-21 10:51:12 +0800 |
| commit | 312897d2ce27740cd39c16f594202342aae89966 (patch) | |
| tree | c9d2bbd3dc964e23684295c1bcc8c10d7e0821f8 | |
| parent | 3bfb9eec25c737f2f64ba7da9a724932e233fff1 (diff) | |
| parent | 622fa0e7ce14325839dd14db2321a1dacfc09c9c (diff) | |
Merge pull request #1727 from chenyong111/master
[net][at] Fix receive error data when AT CLI exits.
| -rw-r--r-- | components/net/at/include/at.h | 2 | ||||
| -rw-r--r-- | components/net/at/src/at_cli.c | 13 |
2 files changed, 8 insertions, 7 deletions
diff --git a/components/net/at/include/at.h b/components/net/at/include/at.h index aafb819e5e..746d56b2ac 100644 --- a/components/net/at/include/at.h +++ b/components/net/at/include/at.h @@ -27,7 +27,7 @@ #include <rtthread.h> -#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 0136922199..804602c4dd 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 { |
