diff --git a/APP_Framework/Framework/control/shared/control_io.c b/APP_Framework/Framework/control/shared/control_io.c index adeac87e..f6691715 100644 --- a/APP_Framework/Framework/control/shared/control_io.c +++ b/APP_Framework/Framework/control/shared/control_io.c @@ -76,7 +76,7 @@ void Uart485Init(uint32_t baud_rate, uint8_t data_bits, uint8_t stop_bits, uint8 ioctl_cfg.args = &pin_param; PrivIoctl(pin_fd, OPE_CFG, &ioctl_cfg); - uart_fd = open(CONTROL_FRAMEWORK_UART_DEV, O_RDWR); + uart_fd = PrivOpen(CONTROL_FRAMEWORK_UART_DEV, O_RDWR); if (uart_fd < 0) { printf("open fd error %d\n", uart_fd); return; diff --git a/APP_Framework/Framework/transform_layer/xizi/transform.h b/APP_Framework/Framework/transform_layer/xizi/transform.h index ef1894c3..6bcbbe8c 100644 --- a/APP_Framework/Framework/transform_layer/xizi/transform.h +++ b/APP_Framework/Framework/transform_layer/xizi/transform.h @@ -43,6 +43,9 @@ extern "C" { #define NAME_NUM_MAX 32 +#define LINKLIST_FLAG_FIFO 0x00 +#define LINKLIST_FLAG_PRIO 0x01 + #ifndef EVENT_AND #define EVENT_AND (1 << 0) #endif @@ -169,6 +172,8 @@ struct SerialDataCfg uint16_t serial_buffer_size; int32 serial_timeout; + int (*dev_recv_callback) (void *dev, size_t length); + uint8_t is_ext_uart; uint8_t ext_uart_no; enum ExtSerialPortConfigure port_configure; diff --git a/APP_Framework/lib/lorawan/lora_radio_driver b/APP_Framework/lib/lorawan/lora_radio_driver index 1c3adb91..2d8abd3e 160000 --- a/APP_Framework/lib/lorawan/lora_radio_driver +++ b/APP_Framework/lib/lorawan/lora_radio_driver @@ -1 +1 @@ -Subproject commit 1c3adb9154f30ed25877ae00f81a636d28141b08 +Subproject commit 2d8abd3eff2a2d5257e17c7f59acb2ba938cb90e diff --git a/APP_Framework/lib/lorawan/lorawan_devicenode b/APP_Framework/lib/lorawan/lorawan_devicenode index dbced0da..197c320b 160000 --- a/APP_Framework/lib/lorawan/lorawan_devicenode +++ b/APP_Framework/lib/lorawan/lorawan_devicenode @@ -1 +1 @@ -Subproject commit dbced0da18e8378f2a5c921a67321b7a88401465 +Subproject commit 197c320b9917366b6107db30b05bbb51254e7eb4 diff --git a/APP_Framework/lib/lorawan/lorawan_gateway_single_channel b/APP_Framework/lib/lorawan/lorawan_gateway_single_channel index 1ad4dbc9..6ec2a3d2 160000 --- a/APP_Framework/lib/lorawan/lorawan_gateway_single_channel +++ b/APP_Framework/lib/lorawan/lorawan_gateway_single_channel @@ -1 +1 @@ -Subproject commit 1ad4dbc9ddf9472f461e19b8321b68b240fb7827 +Subproject commit 6ec2a3d2645b63a6d3d9c4db9f23c653525efbdf diff --git a/Ubiquitous/XiZi_IIoT/board/aiit-arm32-board/third_party_driver/uart/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/aiit-arm32-board/third_party_driver/uart/connect_usart.c index f8d0ca8a..9f882398 100644 --- a/Ubiquitous/XiZi_IIoT/board/aiit-arm32-board/third_party_driver/uart/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/aiit-arm32-board/third_party_driver/uart/connect_usart.c @@ -268,13 +268,17 @@ static uint32 Stm32SerialInit(struct SerialDriver *serial_drv, struct BusConfigu struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/aiit-riscv64-board/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/aiit-riscv64-board/third_party_driver/uart/connect_uart.c index 4e9a00dd..b92c5274 100644 --- a/Ubiquitous/XiZi_IIoT/board/aiit-riscv64-board/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/aiit-riscv64-board/third_party_driver/uart/connect_uart.c @@ -143,13 +143,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -226,13 +230,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/ch32v307vct6/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/ch32v307vct6/third_party_driver/uart/connect_uart.c index d6e1e91e..23d6fa90 100644 --- a/Ubiquitous/XiZi_IIoT/board/ch32v307vct6/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/ch32v307vct6/third_party_driver/uart/connect_uart.c @@ -81,14 +81,18 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam* serial_cfg = (struct SerialCfgParam*)serial_drv->private_data; // struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; - // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/cortex-m0-emulator/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/cortex-m0-emulator/connect_uart.c index 36046750..76cc7d91 100644 --- a/Ubiquitous/XiZi_IIoT/board/cortex-m0-emulator/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/cortex-m0-emulator/connect_uart.c @@ -120,6 +120,10 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + if (serial_cfg->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg->data_cfg.dev_recv_callback); + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/cortex-m3-emulator/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/cortex-m3-emulator/connect_uart.c index 008d70a6..42da1aa1 100644 --- a/Ubiquitous/XiZi_IIoT/board/cortex-m3-emulator/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/cortex-m3-emulator/connect_uart.c @@ -121,6 +121,10 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + if (serial_cfg->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg->data_cfg.dev_recv_callback); + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/cortex-m4-emulator/third_party_driver/uart/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/cortex-m4-emulator/third_party_driver/uart/connect_usart.c index dfe753aa..3d1082ca 100644 --- a/Ubiquitous/XiZi_IIoT/board/cortex-m4-emulator/third_party_driver/uart/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/cortex-m4-emulator/third_party_driver/uart/connect_usart.c @@ -269,13 +269,17 @@ static uint32 Stm32SerialInit(struct SerialDriver *serial_drv, struct BusConfigu struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/cortex-m7-emulator/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/cortex-m7-emulator/third_party_driver/uart/connect_uart.c index 660ca1d8..8c5a8da1 100644 --- a/Ubiquitous/XiZi_IIoT/board/cortex-m7-emulator/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/cortex-m7-emulator/third_party_driver/uart/connect_uart.c @@ -695,19 +695,23 @@ static void UartIsr(struct SerialBus *serial, struct SerialDriver *serial_drv, s static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInfo *configure_info) { - NULL_PARAM_CHECK(serial_drv); + NULL_PARAM_CHECK(serial_drv); - struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; - // LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; - - if (configure_info->private_data) { - struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; - SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } + struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + // LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { + struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; + SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/usart/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/usart/connect_usart.c index b16c709b..db65253e 100644 --- a/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/usart/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/usart/connect_usart.c @@ -234,13 +234,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/edu-riscv64/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/edu-riscv64/third_party_driver/uart/connect_uart.c index d60373bf..bd18a97c 100644 --- a/Ubiquitous/XiZi_IIoT/board/edu-riscv64/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/edu-riscv64/third_party_driver/uart/connect_uart.c @@ -145,13 +145,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -227,15 +231,19 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf { NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; - - if (configure_info->private_data) { - struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; - SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { + struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; + SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/gapuino/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/gapuino/third_party_driver/uart/connect_uart.c index 23661ad4..cf3d79ea 100755 --- a/Ubiquitous/XiZi_IIoT/board/gapuino/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/gapuino/third_party_driver/uart/connect_uart.c @@ -78,13 +78,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/gd32vf103-rvstar/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/gd32vf103-rvstar/third_party_driver/uart/connect_uart.c index bef8ff1d..97ec31f6 100755 --- a/Ubiquitous/XiZi_IIoT/board/gd32vf103-rvstar/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/gd32vf103-rvstar/third_party_driver/uart/connect_uart.c @@ -103,13 +103,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; // struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/hifive1-emulator/third_party_driver/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/hifive1-emulator/third_party_driver/connect_usart.c index c8aeb5b7..10a9dda9 100644 --- a/Ubiquitous/XiZi_IIoT/board/hifive1-emulator/third_party_driver/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/hifive1-emulator/third_party_driver/connect_usart.c @@ -78,13 +78,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/hifive1-rev-B/third_party_driver/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/hifive1-rev-B/third_party_driver/connect_usart.c index c8aeb5b7..10a9dda9 100644 --- a/Ubiquitous/XiZi_IIoT/board/hifive1-rev-B/third_party_driver/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/hifive1-rev-B/third_party_driver/connect_usart.c @@ -78,13 +78,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/imxrt1176-sbc/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/imxrt1176-sbc/third_party_driver/uart/connect_uart.c index 3811da74..25786d77 100644 --- a/Ubiquitous/XiZi_IIoT/board/imxrt1176-sbc/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/imxrt1176-sbc/third_party_driver/uart/connect_uart.c @@ -133,13 +133,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/k210-emulator/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/k210-emulator/third_party_driver/uart/connect_uart.c index ee564e4d..e6b2d140 100644 --- a/Ubiquitous/XiZi_IIoT/board/k210-emulator/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/k210-emulator/third_party_driver/uart/connect_uart.c @@ -145,13 +145,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -228,12 +232,22 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf { NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } } + // config serial receive sem timeout + dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; + UartBitwidthPointer DataWidth = (UartBitwidthPointer)serial_cfg->data_cfg.serial_data_bits; UartStopbitT stopbit = (UartStopbitT)(serial_cfg->data_cfg.serial_stop_bits - 1); UartParityT parity = (UartParityT)(serial_cfg->data_cfg.serial_parity_mode - 1); diff --git a/Ubiquitous/XiZi_IIoT/board/kd233/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/kd233/third_party_driver/uart/connect_uart.c index 38bbb360..9df4effd 100644 --- a/Ubiquitous/XiZi_IIoT/board/kd233/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/kd233/third_party_driver/uart/connect_uart.c @@ -145,13 +145,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -227,15 +231,19 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf { NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; - - if (configure_info->private_data) { - struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; - SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { + struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; + SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/maix-go/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/maix-go/third_party_driver/uart/connect_uart.c index 2c8c73f9..c02e6326 100644 --- a/Ubiquitous/XiZi_IIoT/board/maix-go/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/maix-go/third_party_driver/uart/connect_uart.c @@ -145,13 +145,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -227,15 +231,19 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf { NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; - - if (configure_info->private_data) { - struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; - SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { + struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; + SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/nuvoton-m2354/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/nuvoton-m2354/third_party_driver/uart/connect_uart.c index a9822d76..bda310e1 100644 --- a/Ubiquitous/XiZi_IIoT/board/nuvoton-m2354/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/nuvoton-m2354/third_party_driver/uart/connect_uart.c @@ -115,13 +115,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct M2354UartHwCfg *serial_hw_cfg = (struct M2354UartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/ok1052-c/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/ok1052-c/third_party_driver/uart/connect_uart.c index 3dffb12f..e8d21463 100644 --- a/Ubiquitous/XiZi_IIoT/board/ok1052-c/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/ok1052-c/third_party_driver/uart/connect_uart.c @@ -141,13 +141,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/rv32m1-vega/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/rv32m1-vega/third_party_driver/uart/connect_uart.c index 446741d9..cf5e72f4 100755 --- a/Ubiquitous/XiZi_IIoT/board/rv32m1-vega/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/rv32m1-vega/third_party_driver/uart/connect_uart.c @@ -90,13 +90,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/stm32f103-nano/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/stm32f103-nano/third_party_driver/uart/connect_uart.c index 93069521..b3e68b3c 100644 --- a/Ubiquitous/XiZi_IIoT/board/stm32f103-nano/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/stm32f103-nano/third_party_driver/uart/connect_uart.c @@ -126,13 +126,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct Stm32UartHwCfg *serial_hw_cfg = (struct Stm32UartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/stm32f407-st-discovery/third_party_driver/uart/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/stm32f407-st-discovery/third_party_driver/uart/connect_usart.c index 85561917..c2052950 100644 --- a/Ubiquitous/XiZi_IIoT/board/stm32f407-st-discovery/third_party_driver/uart/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/stm32f407-st-discovery/third_party_driver/uart/connect_usart.c @@ -269,13 +269,17 @@ static uint32 Stm32SerialInit(struct SerialDriver *serial_drv, struct BusConfigu struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/stm32f407zgt6/third_party_driver/uart/connect_usart.c b/Ubiquitous/XiZi_IIoT/board/stm32f407zgt6/third_party_driver/uart/connect_usart.c index eb5287ee..f89a4327 100644 --- a/Ubiquitous/XiZi_IIoT/board/stm32f407zgt6/third_party_driver/uart/connect_usart.c +++ b/Ubiquitous/XiZi_IIoT/board/stm32f407zgt6/third_party_driver/uart/connect_usart.c @@ -217,13 +217,17 @@ static uint32 Stm32SerialInit(struct SerialDriver *serial_drv, struct BusConfigu struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; struct UsartHwCfg *serial_hw_cfg = (struct UsartHwCfg *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/uart/connect_uart.c index ea503f35..27c379b3 100644 --- a/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/xidatong-arm32/third_party_driver/uart/connect_uart.c @@ -193,13 +193,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/uart/connect_uart.c index f6d2dbdd..d128a559 100644 --- a/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/xidatong-riscv64/third_party_driver/uart/connect_uart.c @@ -145,13 +145,17 @@ static uint32 SerialHsInit(struct SerialDriver *serial_drv, struct BusConfigureI struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; @@ -227,15 +231,19 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf { NULL_PARAM_CHECK(serial_drv); struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; - - if (configure_info->private_data) { - struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; - SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { + struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; + SerialCfgParamCheck(serial_cfg, serial_cfg_new); + + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } + // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/board/xiwangtong-arm32/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi_IIoT/board/xiwangtong-arm32/third_party_driver/uart/connect_uart.c index 01edbe36..58924a1c 100644 --- a/Ubiquitous/XiZi_IIoT/board/xiwangtong-arm32/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi_IIoT/board/xiwangtong-arm32/third_party_driver/uart/connect_uart.c @@ -159,13 +159,17 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; LPUART_Type *uart_base = (LPUART_Type *)serial_cfg->hw_cfg.private_data; + struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; + struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (configure_info->private_data) { struct SerialCfgParam *serial_cfg_new = (struct SerialCfgParam *)configure_info->private_data; SerialCfgParamCheck(serial_cfg, serial_cfg_new); - } - struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; - struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + if (serial_cfg_new->data_cfg.dev_recv_callback) { + BusDevRecvCallback(&(serial_dev->haldev), serial_cfg_new->data_cfg.dev_recv_callback); + } + } // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi_IIoT/resources/include/bus_serial.h b/Ubiquitous/XiZi_IIoT/resources/include/bus_serial.h index 96af36dc..62cb67f0 100644 --- a/Ubiquitous/XiZi_IIoT/resources/include/bus_serial.h +++ b/Ubiquitous/XiZi_IIoT/resources/include/bus_serial.h @@ -46,6 +46,8 @@ struct SerialDataCfg uint16 serial_buffer_size; int32 serial_timeout; + int (*dev_recv_callback) (void *dev, x_size_t length); + uint8 is_ext_uart; uint8 ext_uart_no; enum ExtSerialPortConfigure port_configure;