forked from xuos/xiuos
feat support DMA for aiit-arm32-board and stm32f407-st-discovery uart function
This commit is contained in:
parent
bac136c51d
commit
109ad93e9e
|
@ -9,8 +9,11 @@ menuconfig BSP_USING_USART1
|
|||
string "serial bus 1 driver name"
|
||||
default "usart1_drv"
|
||||
config SERIAL_1_DEVICE_NAME_0
|
||||
string "serial bus 1 device name"
|
||||
default "usart1_dev1"
|
||||
string "serial bus 1 device 0 name"
|
||||
default "usart1_dev1"
|
||||
config USART1_USING_DMA
|
||||
bool "usart1 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_USART2
|
||||
|
@ -24,8 +27,11 @@ menuconfig BSP_USING_USART2
|
|||
string "serial bus 2 driver name"
|
||||
default "usart2_drv"
|
||||
config SERIAL_2_DEVICE_NAME_0
|
||||
string "serial bus 2 device name"
|
||||
default "usart2_dev2"
|
||||
string "serial bus 2 device 0 name"
|
||||
default "usart2_dev2"
|
||||
config USART2_USING_DMA
|
||||
bool "usart2 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_USART3
|
||||
|
@ -39,8 +45,11 @@ menuconfig BSP_USING_USART3
|
|||
string "serial bus 3 driver name"
|
||||
default "usart3_drv"
|
||||
config SERIAL_3_DEVICE_NAME_0
|
||||
string "serial bus 3 device name"
|
||||
default "usart3_dev3"
|
||||
string "serial bus 3 device 0 name"
|
||||
default "usart3_dev3"
|
||||
config USART3_USING_DMA
|
||||
bool "usart3 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_UART4
|
||||
|
@ -54,8 +63,11 @@ menuconfig BSP_USING_UART4
|
|||
string "serial bus 4 driver name"
|
||||
default "uart4_drv"
|
||||
config SERIAL_4_DEVICE_NAME_0
|
||||
string "serial bus 4 device name"
|
||||
default "uart4_dev4"
|
||||
string "serial bus 4 device 0 name"
|
||||
default "uart4_dev4"
|
||||
config USART4_USING_DMA
|
||||
bool "usart4 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_UART5
|
||||
|
@ -69,6 +81,9 @@ menuconfig BSP_USING_UART5
|
|||
string "serial bus 5 driver name"
|
||||
default "uart5_drv"
|
||||
config SERIAL_5_DEVICE_NAME_0
|
||||
string "serial bus 5 device name"
|
||||
default "uart5_dev5"
|
||||
string "serial bus 5 device 0 name"
|
||||
default "uart5_dev5"
|
||||
config USART5_USING_DMA
|
||||
bool "usart5 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
|
|
@ -228,19 +228,19 @@ static void SerialCfgParamCheck(struct SerialCfgParam *serial_cfg_default, struc
|
|||
struct SerialDataCfg *data_cfg_default = &serial_cfg_default->data_cfg;
|
||||
struct SerialDataCfg *data_cfg_new = &serial_cfg_new->data_cfg;
|
||||
|
||||
if((data_cfg_default->serial_baud_rate != data_cfg_new->serial_baud_rate) && (data_cfg_new->serial_baud_rate)){
|
||||
if((data_cfg_default->serial_baud_rate != data_cfg_new->serial_baud_rate) && (data_cfg_new->serial_baud_rate)) {
|
||||
data_cfg_default->serial_baud_rate = data_cfg_new->serial_baud_rate;
|
||||
}
|
||||
|
||||
if((data_cfg_default->serial_bit_order != data_cfg_new->serial_bit_order) && (data_cfg_new->serial_bit_order)){
|
||||
if((data_cfg_default->serial_bit_order != data_cfg_new->serial_bit_order) && (data_cfg_new->serial_bit_order)) {
|
||||
data_cfg_default->serial_bit_order = data_cfg_new->serial_bit_order;
|
||||
}
|
||||
|
||||
if((data_cfg_default->serial_buffer_size != data_cfg_new->serial_buffer_size) && (data_cfg_new->serial_buffer_size)){
|
||||
if((data_cfg_default->serial_buffer_size != data_cfg_new->serial_buffer_size) && (data_cfg_new->serial_buffer_size)) {
|
||||
data_cfg_default->serial_buffer_size = data_cfg_new->serial_buffer_size;
|
||||
}
|
||||
|
||||
if((data_cfg_default->serial_data_bits != data_cfg_new->serial_data_bits) && (data_cfg_new->serial_data_bits)){
|
||||
if((data_cfg_default->serial_data_bits != data_cfg_new->serial_data_bits) && (data_cfg_new->serial_data_bits)) {
|
||||
data_cfg_default->serial_data_bits = data_cfg_new->serial_data_bits;
|
||||
}
|
||||
|
||||
|
@ -322,8 +322,7 @@ static uint32 Stm32SerialConfigure(struct SerialDriver *serial_drv, int serial_o
|
|||
USART_ITConfig(serial_hw_cfg->uart_device, USART_IT_RXNE, ENABLE);
|
||||
break;
|
||||
case OPER_CONFIG :
|
||||
if (SIGN_OPER_DMA_RX == serial_dev_param->serial_set_mode)
|
||||
{
|
||||
if (SIGN_OPER_DMA_RX == serial_dev_param->serial_set_mode) {
|
||||
DMAConfiguration(serial_dev, serial_hw_cfg->uart_device);
|
||||
}
|
||||
}
|
||||
|
@ -378,8 +377,16 @@ static void DmaRxDoneIsr(struct Stm32Usart *serial, struct SerialDriver *serial_
|
|||
if (DMA_GetFlagStatus(dma->RxStream, dma->RxFlag) != RESET) {
|
||||
x_base level = CriticalAreaLock();
|
||||
|
||||
x_size_t recv_len = dma->SettingRecvLen - dma->LastRecvIndex;
|
||||
dma->LastRecvIndex = 0;
|
||||
x_size_t recv_len;
|
||||
|
||||
x_size_t recv_total_index = dma->SettingRecvLen - DMA_GetCurrDataCounter(dma->RxStream);
|
||||
if (0 != recv_total_index) {
|
||||
recv_len = recv_total_index - dma->LastRecvIndex;
|
||||
} else {
|
||||
recv_len = dma->SettingRecvLen - dma->LastRecvIndex;
|
||||
}
|
||||
dma->LastRecvIndex = recv_total_index;
|
||||
|
||||
CriticalAreaUnLock(level);
|
||||
|
||||
if (recv_len) SerialSetIsr(serial_dev, SERIAL_EVENT_RX_DMADONE | (recv_len << 8));
|
||||
|
@ -397,15 +404,14 @@ static void UartIsr(struct Stm32Usart *serial, struct SerialDriver *serial_drv,
|
|||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_RXNE) != RESET) {
|
||||
SerialSetIsr(serial_dev, SERIAL_EVENT_RX_IND);
|
||||
USART_ClearITPendingBit(serial_hw_cfg->uart_device, USART_IT_RXNE);
|
||||
}
|
||||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_IDLE) != RESET) {
|
||||
} else if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_IDLE) != RESET) {
|
||||
DmaUartRxIdleIsr(serial_dev, dma, serial_hw_cfg->uart_device);
|
||||
}
|
||||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_TC) != RESET) {
|
||||
} else if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_TC) != RESET) {
|
||||
USART_ClearITPendingBit(serial_hw_cfg->uart_device, USART_IT_TC);
|
||||
}
|
||||
if (USART_GetFlagStatus(serial_hw_cfg->uart_device, USART_FLAG_ORE) == SET) {
|
||||
USART_ReceiveData(serial_hw_cfg->uart_device);
|
||||
} else {
|
||||
if (USART_GetFlagStatus(serial_hw_cfg->uart_device, USART_FLAG_ORE) == SET) {
|
||||
USART_ReceiveData(serial_hw_cfg->uart_device);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -673,6 +679,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_1.private_data = (void *)&serial_cfg_1;
|
||||
|
||||
serial_dev_param_1.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART1_USING_DMA
|
||||
serial_dev_param_1.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_1.haldev.private_data = (void *)&serial_dev_param_1;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_1.irq);
|
||||
|
@ -707,7 +716,6 @@ int Stm32HwUsartInit(void)
|
|||
serial_device_2.hwdev_done = &hwdev_done;
|
||||
|
||||
serial_cfg_2.data_cfg = data_cfg_init;
|
||||
serial_cfg_2.data_cfg.serial_baud_rate=BAUD_RATE_115200;
|
||||
|
||||
serial_hw_cfg_2.uart_device = USART2;
|
||||
serial_hw_cfg_2.irq = USART2_IRQn;
|
||||
|
@ -715,6 +723,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_2.private_data = (void *)&serial_cfg_2;
|
||||
|
||||
serial_dev_param_2.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART2_USING_DMA
|
||||
serial_dev_param_2.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_2.haldev.private_data = (void *)&serial_dev_param_2;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_2.irq);
|
||||
|
@ -749,7 +760,6 @@ int Stm32HwUsartInit(void)
|
|||
serial_device_3.hwdev_done = &hwdev_done;
|
||||
|
||||
serial_cfg_3.data_cfg = data_cfg_init;
|
||||
serial_cfg_3.data_cfg.serial_baud_rate=BAUD_RATE_57600;
|
||||
|
||||
serial_hw_cfg_3.uart_device = USART3;
|
||||
serial_hw_cfg_3.irq = USART3_IRQn;
|
||||
|
@ -757,6 +767,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_3.private_data = (void *)&serial_cfg_3;
|
||||
|
||||
serial_dev_param_3.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART3_USING_DMA
|
||||
serial_dev_param_3.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_3.haldev.private_data = (void *)&serial_dev_param_3;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_3.irq);
|
||||
|
@ -798,6 +811,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_4.private_data = (void *)&serial_cfg_4;
|
||||
|
||||
serial_dev_param_4.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART4_USING_DMA
|
||||
serial_dev_param_4.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_4.haldev.private_data = (void *)&serial_dev_param_4;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_4.irq);
|
||||
|
@ -839,6 +855,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_5.private_data = (void *)&serial_cfg_5;
|
||||
|
||||
serial_dev_param_5.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART5_USING_DMA
|
||||
serial_dev_param_5.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_5.haldev.private_data = (void *)&serial_dev_param_5;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_5.irq);
|
||||
|
|
|
@ -9,8 +9,11 @@ menuconfig BSP_USING_USART1
|
|||
string "serial bus 1 driver name"
|
||||
default "usart1_drv"
|
||||
config SERIAL_1_DEVICE_NAME_0
|
||||
string "serial bus 1 device 0 name"
|
||||
default "usart1_dev1"
|
||||
string "serial bus 1 device 0 name"
|
||||
default "usart1_dev1"
|
||||
config USART1_USING_DMA
|
||||
bool "usart1 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_USART2
|
||||
|
@ -24,8 +27,11 @@ menuconfig BSP_USING_USART2
|
|||
string "serial bus 2 driver name"
|
||||
default "usart2_drv"
|
||||
config SERIAL_2_DEVICE_NAME_0
|
||||
string "serial bus 2 device 0 name"
|
||||
default "usart2_dev2"
|
||||
string "serial bus 2 device 0 name"
|
||||
default "usart2_dev2"
|
||||
config USART2_USING_DMA
|
||||
bool "usart2 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_USART3
|
||||
|
@ -39,8 +45,11 @@ menuconfig BSP_USING_USART3
|
|||
string "serial bus 3 driver name"
|
||||
default "usart3_drv"
|
||||
config SERIAL_3_DEVICE_NAME_0
|
||||
string "serial bus 3 device 0 name"
|
||||
default "usart3_dev3"
|
||||
string "serial bus 3 device 0 name"
|
||||
default "usart3_dev3"
|
||||
config USART3_USING_DMA
|
||||
bool "usart3 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_UART4
|
||||
|
@ -54,8 +63,11 @@ menuconfig BSP_USING_UART4
|
|||
string "serial bus 4 driver name"
|
||||
default "uart4_drv"
|
||||
config SERIAL_4_DEVICE_NAME_0
|
||||
string "serial bus 4 device 0 name"
|
||||
default "uart4_dev4"
|
||||
string "serial bus 4 device 0 name"
|
||||
default "uart4_dev4"
|
||||
config USART4_USING_DMA
|
||||
bool "usart4 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
||||
menuconfig BSP_USING_UART5
|
||||
|
@ -69,6 +81,9 @@ menuconfig BSP_USING_UART5
|
|||
string "serial bus 5 driver name"
|
||||
default "uart5_drv"
|
||||
config SERIAL_5_DEVICE_NAME_0
|
||||
string "serial bus 5 device 0 name"
|
||||
default "uart5_dev5"
|
||||
string "serial bus 5 device 0 name"
|
||||
default "uart5_dev5"
|
||||
config USART5_USING_DMA
|
||||
bool "usart5 using DMA"
|
||||
default n
|
||||
endif
|
||||
|
|
|
@ -280,7 +280,7 @@ static uint32 Stm32SerialInit(struct SerialDriver *serial_drv, struct BusConfigu
|
|||
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
|
||||
}
|
||||
|
||||
if (serial_cfg->data_cfg.serial_stop_bits == STOP_BITS_1){
|
||||
if (serial_cfg->data_cfg.serial_stop_bits == STOP_BITS_1) {
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_1;
|
||||
} else if (serial_cfg->data_cfg.serial_stop_bits == STOP_BITS_2) {
|
||||
USART_InitStructure.USART_StopBits = USART_StopBits_2;
|
||||
|
@ -323,7 +323,7 @@ static uint32 Stm32SerialConfigure(struct SerialDriver *serial_drv, int serial_o
|
|||
USART_ITConfig(serial_hw_cfg->uart_device, USART_IT_RXNE, ENABLE);
|
||||
break;
|
||||
case OPER_CONFIG :
|
||||
if (SIGN_OPER_DMA_RX == serial_dev_param->serial_set_mode){
|
||||
if (SIGN_OPER_DMA_RX == serial_dev_param->serial_set_mode) {
|
||||
DMAConfiguration(serial_dev, serial_hw_cfg->uart_device);
|
||||
}
|
||||
}
|
||||
|
@ -378,8 +378,16 @@ static void DmaRxDoneIsr(struct Stm32Usart *serial, struct SerialDriver *serial_
|
|||
if (DMA_GetFlagStatus(dma->RxStream, dma->RxFlag) != RESET) {
|
||||
x_base level = CriticalAreaLock();
|
||||
|
||||
x_size_t recv_len = dma->SettingRecvLen - dma->LastRecvIndex;
|
||||
dma->LastRecvIndex = 0;
|
||||
x_size_t recv_len;
|
||||
|
||||
x_size_t recv_total_index = dma->SettingRecvLen - DMA_GetCurrDataCounter(dma->RxStream);
|
||||
if (0 != recv_total_index) {
|
||||
recv_len = recv_total_index - dma->LastRecvIndex;
|
||||
} else {
|
||||
recv_len = dma->SettingRecvLen - dma->LastRecvIndex;
|
||||
}
|
||||
dma->LastRecvIndex = recv_total_index;
|
||||
|
||||
CriticalAreaUnLock(level);
|
||||
|
||||
if (recv_len) SerialSetIsr(serial_dev, SERIAL_EVENT_RX_DMADONE | (recv_len << 8));
|
||||
|
@ -397,15 +405,14 @@ static void UartIsr(struct Stm32Usart *serial, struct SerialDriver *serial_drv,
|
|||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_RXNE) != RESET) {
|
||||
SerialSetIsr(serial_dev, SERIAL_EVENT_RX_IND);
|
||||
USART_ClearITPendingBit(serial_hw_cfg->uart_device, USART_IT_RXNE);
|
||||
}
|
||||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_IDLE) != RESET) {
|
||||
} else if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_IDLE) != RESET) {
|
||||
DmaUartRxIdleIsr(serial_dev, dma, serial_hw_cfg->uart_device);
|
||||
}
|
||||
if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_TC) != RESET) {
|
||||
} else if (USART_GetITStatus(serial_hw_cfg->uart_device, USART_IT_TC) != RESET) {
|
||||
USART_ClearITPendingBit(serial_hw_cfg->uart_device, USART_IT_TC);
|
||||
}
|
||||
if (USART_GetFlagStatus(serial_hw_cfg->uart_device, USART_FLAG_ORE) == SET) {
|
||||
USART_ReceiveData(serial_hw_cfg->uart_device);
|
||||
} else {
|
||||
if (USART_GetFlagStatus(serial_hw_cfg->uart_device, USART_FLAG_ORE) == SET) {
|
||||
USART_ReceiveData(serial_hw_cfg->uart_device);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -673,6 +680,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_1.private_data = (void *)&serial_cfg_1;
|
||||
|
||||
serial_dev_param_1.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART1_USING_DMA
|
||||
serial_dev_param_1.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_1.haldev.private_data = (void *)&serial_dev_param_1;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_1.irq);
|
||||
|
@ -714,6 +724,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_2.private_data = (void *)&serial_cfg_2;
|
||||
|
||||
serial_dev_param_2.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART2_USING_DMA
|
||||
serial_dev_param_2.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_2.haldev.private_data = (void *)&serial_dev_param_2;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_2.irq);
|
||||
|
@ -755,6 +768,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_3.private_data = (void *)&serial_cfg_3;
|
||||
|
||||
serial_dev_param_3.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART3_USING_DMA
|
||||
serial_dev_param_3.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_3.haldev.private_data = (void *)&serial_dev_param_3;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_3.irq);
|
||||
|
@ -796,6 +812,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_4.private_data = (void *)&serial_cfg_4;
|
||||
|
||||
serial_dev_param_4.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART4_USING_DMA
|
||||
serial_dev_param_4.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_4.haldev.private_data = (void *)&serial_dev_param_4;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_4.irq);
|
||||
|
@ -837,6 +856,9 @@ int Stm32HwUsartInit(void)
|
|||
serial_driver_5.private_data = (void *)&serial_cfg_5;
|
||||
|
||||
serial_dev_param_5.serial_work_mode = SIGN_OPER_INT_RX;
|
||||
#ifdef USART5_USING_DMA
|
||||
serial_dev_param_5.serial_work_mode = SIGN_OPER_DMA_RX;
|
||||
#endif
|
||||
serial_device_5.haldev.private_data = (void *)&serial_dev_param_5;
|
||||
|
||||
NVIC_Configuration(serial_hw_cfg_5.irq);
|
||||
|
|
|
@ -66,11 +66,13 @@ static void TestSerialRecvTask(void *parameter)
|
|||
read_param.buffer = &recv_data;
|
||||
read_param.read_length = 0;
|
||||
|
||||
KPrintf("ready to read data\n");
|
||||
BusDevReadData(bus_device, &read_param);
|
||||
for (i = 0; i < read_param.read_length; i ++) {
|
||||
KPrintf("TestSerialRecvTask i %d char 0x%x\n", i, recv_data);
|
||||
}
|
||||
|
||||
KPrintf("send data %c\n", recv_data);
|
||||
write_param.buffer = &recv_data;
|
||||
write_param.size = 1;
|
||||
BusDevWriteData(bus_device, &write_param);
|
||||
|
@ -141,7 +143,8 @@ static int SerialBusCheck(const char *bus_name, const char *driver_name, const c
|
|||
bus->match(bus_driver, bus_device);
|
||||
|
||||
/*step 3: open bus_device, configure struct SerialDevParam if necessary*/
|
||||
serial_dev_param->serial_set_mode = SIGN_OPER_INT_RX;
|
||||
serial_dev_param->serial_set_mode = 0;
|
||||
serial_dev_param->serial_work_mode = SIGN_OPER_DMA_RX;//SIGN_OPER_INT_RX;
|
||||
serial_dev_param->serial_stream_mode = SIGN_OPER_STREAM;
|
||||
BusDevOpen(bus_device);
|
||||
KPrintf("BusDevOpen done\n");
|
||||
|
|
|
@ -303,6 +303,7 @@ static inline int SerialDevDMARead(struct SerialHardwareDevice *serial_dev, stru
|
|||
serial_dev->serial_fifo.serial_rx->serial_rx_buffer, read_dma_length + serial_dev->serial_fifo.serial_rx->serial_recv_num - serial_cfg->data_cfg.serial_buffer_size);
|
||||
}
|
||||
SerialDmaRxSetRecvLength(serial_dev, read_dma_length);
|
||||
read_param->read_length = read_dma_length;
|
||||
CriticalAreaUnLock(lock);
|
||||
return EOK;
|
||||
} else {
|
||||
|
|
|
@ -1642,14 +1642,12 @@ void shellTask(void *param)
|
|||
/* One input key from the the keyboard/uart may consist of mutliple characters (e.g., arrow keys). */
|
||||
char data[KEY_LENGTH];
|
||||
int i;
|
||||
int data_len;
|
||||
char data_len;
|
||||
|
||||
while(RET_TRUE)
|
||||
{
|
||||
if (shell->read && shell->read(data) == 0) {
|
||||
// KPrintf("in 1741 the char is: '%c' and ascii code is %d.\n\n",data,data);
|
||||
// KPrintf("the buffer is:'%s'\n\n",shell->parser.);
|
||||
data_len = strlen(data);
|
||||
if (shell->read) {
|
||||
data_len = shell->read(data);
|
||||
for (i = 0; i < data_len; i++) {
|
||||
shellHandler(shell, data[i]);
|
||||
}
|
||||
|
|
|
@ -46,13 +46,17 @@ void userShellWrite(char data)
|
|||
*/
|
||||
signed char userShellRead(char *data)
|
||||
{
|
||||
char read_length = 0;
|
||||
struct BusBlockReadParam read_param;
|
||||
read_param.read_length = 0;
|
||||
read_param.size = 1;
|
||||
read_param.buffer = data;
|
||||
|
||||
BusDevReadData(console, &read_param);
|
||||
|
||||
return 0;
|
||||
read_length = (char)read_param.read_length;
|
||||
|
||||
return read_length;
|
||||
}
|
||||
|
||||
#ifdef SHELL_ENABLE_FILESYSTEM
|
||||
|
@ -107,7 +111,7 @@ int userShellInit(void)
|
|||
|
||||
/*Open the serial device in interrupt receiving and polling sending mode */
|
||||
struct SerialDevParam *serial_dev_param = (struct SerialDevParam *)console->private_data;
|
||||
serial_dev_param->serial_set_mode = SIGN_OPER_INT_RX;
|
||||
serial_dev_param->serial_set_mode = 0;
|
||||
serial_dev_param->serial_stream_mode = SIGN_OPER_STREAM;
|
||||
BusDevOpen(console);
|
||||
|
||||
|
|
Loading…
Reference in New Issue