support software-defined ethercat
This commit is contained in:
@@ -258,6 +258,10 @@ KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/connection #
|
||||
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/connection/zigbee #
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ADAPTER_HFA21_ETHERCAT), y)
|
||||
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/connection/ethercat #
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_SUPPORT_KNOWING_FRAMEWORK), y)
|
||||
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/knowing #
|
||||
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/knowing/tensorflow-lite/tensorflow-lite-for-mcu/source #
|
||||
|
||||
@@ -123,41 +123,30 @@ static inline int SerialDevIntRead(struct SerialHardwareDevice *serial_dev, stru
|
||||
NULL_PARAM_CHECK(serial_dev);
|
||||
NULL_PARAM_CHECK(read_param);
|
||||
|
||||
int char_num = 0;
|
||||
struct SerialHwDevDone *hwdev_done = serial_dev->hwdev_done;
|
||||
struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_dev->private_data;
|
||||
uint8 *read_data = (uint8 *)read_param->buffer;
|
||||
x_size_t read_length = read_param->size;
|
||||
|
||||
int start_pointer, end_pointer;
|
||||
int i;
|
||||
|
||||
while (read_length)
|
||||
{
|
||||
uint8 get_char;
|
||||
x_base lock;
|
||||
|
||||
start_pointer = serial_dev->serial_fifo.serial_rx->serial_recv_num;
|
||||
end_pointer = serial_dev->serial_fifo.serial_rx->serial_send_num;
|
||||
lock = CriticalAreaLock();
|
||||
|
||||
if (start_pointer == end_pointer) {
|
||||
if (serial_dev->serial_fifo.serial_rx->serial_recv_num == serial_dev->serial_fifo.serial_rx->serial_send_num) {
|
||||
if (RET_FALSE == serial_dev->serial_fifo.serial_rx->serial_rx_full) {
|
||||
CriticalAreaUnLock(lock);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Read all the chars from the serial_rx_buffer */
|
||||
while (start_pointer != end_pointer)
|
||||
{
|
||||
read_data[char_num] = serial_dev->serial_fifo.serial_rx->serial_rx_buffer[start_pointer];
|
||||
start_pointer += 1;
|
||||
if (start_pointer >= serial_cfg->data_cfg.serial_buffer_size) {
|
||||
start_pointer = 0;
|
||||
}
|
||||
char_num = char_num + 1;
|
||||
|
||||
get_char = serial_dev->serial_fifo.serial_rx->serial_rx_buffer[serial_dev->serial_fifo.serial_rx->serial_recv_num];
|
||||
serial_dev->serial_fifo.serial_rx->serial_recv_num += 1;
|
||||
if (serial_dev->serial_fifo.serial_rx->serial_recv_num >= serial_cfg->data_cfg.serial_buffer_size) {
|
||||
serial_dev->serial_fifo.serial_rx->serial_recv_num = 0;
|
||||
}
|
||||
read_data[char_num]='\0';
|
||||
|
||||
if (RET_TRUE == serial_dev->serial_fifo.serial_rx->serial_rx_full) {
|
||||
serial_dev->serial_fifo.serial_rx->serial_rx_full = RET_FALSE;
|
||||
@@ -165,9 +154,10 @@ static inline int SerialDevIntRead(struct SerialHardwareDevice *serial_dev, stru
|
||||
|
||||
CriticalAreaUnLock(lock);
|
||||
|
||||
*read_data = get_char;
|
||||
read_data++;
|
||||
read_length--;
|
||||
read_param->read_length += char_num;
|
||||
serial_dev->serial_fifo.serial_rx->serial_recv_num = start_pointer;
|
||||
read_param->read_length++;
|
||||
}
|
||||
|
||||
return EOK;
|
||||
|
||||
Reference in New Issue
Block a user