summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author朱天龙 (Armink) <[email protected]>2018-08-21 10:51:12 +0800
committerGitHub <[email protected]>2018-08-21 10:51:12 +0800
commit312897d2ce27740cd39c16f594202342aae89966 (patch)
treec9d2bbd3dc964e23684295c1bcc8c10d7e0821f8
parent3bfb9eec25c737f2f64ba7da9a724932e233fff1 (diff)
parent622fa0e7ce14325839dd14db2321a1dacfc09c9c (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.h2
-rw-r--r--components/net/at/src/at_cli.c13
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
{