[net][at] Fix receive error data when AT CLI exits.

This commit is contained in:
chenyong 2018-08-20 20:51:47 +08:00
parent 3bfb9eec25
commit 622fa0e7ce
2 changed files with 8 additions and 7 deletions

View File

@ -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"

View File

@ -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
{