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 f8d0ca8a2..9f882398d 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 4e9a00dda..b92c52745 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 d6e1e91eb..23d6fa900 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 360467509..76cc7d911 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 008d70a61..42da1aa16 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 dfe753aa6..3d1082cab 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 660ca1d80..8c5a8da18 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 b16c709bd..db65253ef 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 d60373bf5..bd18a97ca 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 23661ad47..cf3d79ea4 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 bef8ff1de..97ec31f6b 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 c8aeb5b75..10a9dda93 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 c8aeb5b75..10a9dda93 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 3811da74a..25786d772 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 ee564e4d4..e6b2d140a 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 38bbb3605..9df4effdc 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 2c8c73f99..c02e6326f 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 a9822d76d..bda310e1a 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 3dffb12ff..e8d214639 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 446741d94..cf5e72f46 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 93069521d..b3e68b3c0 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 855619178..c20529503 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 eb5287ee9..f89a43271 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 ea503f351..27c379b3b 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 f6d2dbdd3..d128a559f 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 01edbe363..58924a1c4 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 96af36dc6..62cb67f0f 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;