From 3c9347b8568d1a83e96497f66c4b8f89dfcfe9a9 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Tue, 10 May 2022 13:43:24 +0800 Subject: [PATCH 01/15] feat add ch438 register clear when receiving interrrupts --- .../third_party_driver/ch438/connect_ch438.c | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/ch438/connect_ch438.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/ch438/connect_ch438.c index b17d9225e..4932bcf7b 100644 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/ch438/connect_ch438.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/ch438/connect_ch438.c @@ -1027,15 +1027,15 @@ static uint32 ImxrtCh438ReadData(void *dev, struct BusBlockReadParam *read_param if (EOK == result) { gInterruptStatus = ReadCH438Data(REG_SSR_ADDR); if (!gInterruptStatus) { - // dat = ReadCH438Data(REG_LCR0_ADDR); - // dat = ReadCH438Data(REG_IER0_ADDR); - // dat = ReadCH438Data(REG_MCR0_ADDR); - // dat = ReadCH438Data(REG_LSR0_ADDR); - // dat = ReadCH438Data(REG_MSR0_ADDR); - // dat = ReadCH438Data(REG_RBR0_ADDR); - // dat = ReadCH438Data(REG_THR0_ADDR); - // dat = ReadCH438Data(REG_IIR0_ADDR); - // dat = dat; + dat = ReadCH438Data(REG_LCR0_ADDR); + dat = ReadCH438Data(REG_IER0_ADDR); + dat = ReadCH438Data(REG_MCR0_ADDR); + dat = ReadCH438Data(REG_LSR0_ADDR); + dat = ReadCH438Data(REG_MSR0_ADDR); + dat = ReadCH438Data(REG_RBR0_ADDR); + dat = ReadCH438Data(REG_THR0_ADDR); + dat = ReadCH438Data(REG_IIR0_ADDR); + dat = dat; interrupt_done = 0; } else { if (gInterruptStatus & interrupt_num[dev_param->ext_uart_no]) { /* check which uart port triggers interrupt*/ @@ -1053,17 +1053,26 @@ static uint32 ImxrtCh438ReadData(void *dev, struct BusBlockReadParam *read_param InterruptStatus = ReadCH438Data( REG_IIR_ADDR ) & 0x0f; /* read the status of the uart port*/ - if ((INT_RCV_OVERTIME == InterruptStatus) || (INT_RCV_SUCCESS == InterruptStatus)) { - rcv_num = Ch438UartRcv(dev_param->ext_uart_no, (uint8 *)read_param->buffer, read_param->size); - read_param->read_length = rcv_num; - - interrupt_done = 1; - - // int i; - // uint8 *buffer = (uint8 *)read_param->buffer; - // for (i = 0; i < rcv_num; i ++) { - // KPrintf("Ch438UartRcv i %u data 0x%x\n", i, buffer[i]); - // } + switch( InterruptStatus ) + { + case INT_NOINT: /* NO INTERRUPT */ + break; + case INT_THR_EMPTY: /* THR EMPTY INTERRUPT */ + break; + case INT_RCV_OVERTIME: /* RECV OVERTIME INTERRUPT */ + case INT_RCV_SUCCESS: /* RECV INTERRUPT SUCCESSFULLY */ + rcv_num = Ch438UartRcv(dev_param->ext_uart_no, (uint8 *)read_param->buffer, read_param->size); + read_param->read_length = rcv_num; + interrupt_done = 1; + break; + case INT_RCV_LINES: /* RECV LINES INTERRUPT */ + ReadCH438Data( REG_LSR_ADDR ); + break; + case INT_MODEM_CHANGE: /* MODEM CHANGE INTERRUPT */ + ReadCH438Data( REG_MSR_ADDR ); + break; + default: + break; } } } From dadfdb85a3a330ec8c38cfff5bad35f3cb3c9ba5 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Tue, 17 May 2022 17:05:40 +0800 Subject: [PATCH 02/15] feat support bluetooth on xidatong bsp --- .../Framework/connection/adapter_agent.c | 41 ++++------ .../connection/bluetooth/adapter_bluetooth.c | 7 +- .../connection/bluetooth/hc08/hc08.c | 75 +++++++++++++++++-- 3 files changed, 89 insertions(+), 34 deletions(-) diff --git a/APP_Framework/Framework/connection/adapter_agent.c b/APP_Framework/Framework/connection/adapter_agent.c index 15d1f7641..f5559e0bf 100755 --- a/APP_Framework/Framework/connection/adapter_agent.c +++ b/APP_Framework/Framework/connection/adapter_agent.c @@ -178,7 +178,6 @@ int ATOrderSend(ATAgentType agent, uint32_t timeout_s, ATReplyType reply, const } __out: - // agent->reply = NULL; return result; } @@ -306,7 +305,6 @@ int EntmRecv(ATAgentType agent, char *rev_buffer, int buffer_len, int timeout_s) } PrivMutexObtain(&agent->lock); - printf("EntmRecv once len %d.\n", agent->entm_recv_len); memcpy(rev_buffer, agent->entm_recv_buf, agent->entm_recv_len); @@ -335,29 +333,24 @@ static int GetCompleteATReply(ATAgentType agent) PrivMutexAbandon(&agent->lock); - while (1) - { + while (1) { PrivRead(agent->fd, &ch, 1); #ifdef CONNECTION_FRAMEWORK_DEBUG - if(ch != 0){ + if(ch != 0) { printf(" %c (0x%x)\n", ch, ch); } #endif PrivMutexObtain(&agent->lock); - if (agent->receive_mode == ENTM_MODE) - { - if (agent->entm_recv_len < ENTM_RECV_MAX) - { + if (agent->receive_mode == ENTM_MODE) { + if (agent->entm_recv_len < ENTM_RECV_MAX) { agent->entm_recv_buf[agent->entm_recv_len] = ch; agent->entm_recv_len++; - if(agent->entm_recv_len < agent->read_len){ + if(agent->entm_recv_len < agent->read_len) { PrivMutexAbandon(&agent->lock); continue; - } - else - { + } else { printf("ENTM_MODE recv %d Bytes done.\n",agent->entm_recv_len); agent->receive_mode = DEFAULT_MODE; PrivSemaphoreAbandon(&agent->entm_rx_notice); @@ -367,12 +360,9 @@ static int GetCompleteATReply(ATAgentType agent) printf("entm_recv_buf is_full ...\n"); } } - else if (agent->receive_mode == AT_MODE) - { - if (read_len < agent->maintain_max) - { - if(ch != 0) ///< if the char is null then do not save it to the buff - { + else if (agent->receive_mode == AT_MODE) { + if (read_len < agent->maintain_max) { + if(ch != 0) { ///< if the char is null then do not save it to the buff agent->maintain_buffer[read_len] = ch; read_len++; agent->maintain_len = read_len; @@ -386,7 +376,7 @@ static int GetCompleteATReply(ATAgentType agent) if (((ch == '\n') && (last_ch == '\r') && (agent->reply_lr_end)) || ((ch == agent->reply_end_char) && (agent->reply_end_char) && (last_ch == agent->reply_end_last_char) && (agent->reply_end_last_char)) || - ((read_len == agent->reply_char_num) && (agent->reply_char_num))){ + ((read_len == agent->reply_char_num) && (agent->reply_char_num))) { if (is_full) { printf("read line failed. The line data length is out of buffer size(%d)!", agent->maintain_max); memset(agent->maintain_buffer, 0x00, agent->maintain_max); @@ -471,10 +461,9 @@ static void *ATAgentReceiveProcess(void *param) const struct at_urc *urc; while (1) { - if (GetCompleteATReply(agent) > 0) - { + if (GetCompleteATReply(agent) > 0) { PrivMutexObtain(&agent->lock); - if (agent->reply != NULL){ + if (agent->reply != NULL) { ATReplyType reply = agent->reply; agent->maintain_buffer[agent->maintain_len] = '\0'; @@ -513,13 +502,13 @@ static int ATAgentInit(ATAgentType agent) printf("ATAgentInit create entm sem error\n"); goto __out; } - printf("create entm_rx_notice_sem %d\n ",agent->entm_rx_notice); + result = PrivSemaphoreCreate(&agent->rsp_sem, 0, 0); if (result < 0) { printf("ATAgentInit create rsp sem error\n"); goto __out; } - printf("create rsp_sem %d\n ",agent->rsp_sem); + if(PrivMutexCreate(&agent->lock, 0) < 0) { printf("AdapterFrameworkInit mutex create failed.\n"); goto __out; @@ -539,7 +528,7 @@ static int ATAgentInit(ATAgentType agent) #endif PrivTaskCreate(&agent->at_handler, &attr, ATAgentReceiveProcess, agent); - printf("create agent->at_handler = %d\n",agent->at_handler); + return result; __out: diff --git a/APP_Framework/Framework/connection/bluetooth/adapter_bluetooth.c b/APP_Framework/Framework/connection/bluetooth/adapter_bluetooth.c index 8b2c87bbb..03d116376 100644 --- a/APP_Framework/Framework/connection/bluetooth/adapter_bluetooth.c +++ b/APP_Framework/Framework/connection/bluetooth/adapter_bluetooth.c @@ -90,12 +90,15 @@ int AdapterBlueToothTest(void) #ifdef ADAPTER_HC08 AdapterDeviceOpen(adapter); + + //if bluetooth master and slave have already match, no need to AdapterDeviceControl and AdapterDeviceConnect AdapterDeviceControl(adapter, OPE_INT, &baud_rate); + //AdapterDeviceConnect(adapter, adapter->net_role, NULL, NULL, 0); len = strlen(bluetooth_msg); while (1) { - AdapterDeviceRecv(adapter, bluetooth_recv_msg, 128); + AdapterDeviceRecv(adapter, bluetooth_recv_msg, 8); printf("bluetooth_recv_msg %s\n", bluetooth_recv_msg); AdapterDeviceSend(adapter, bluetooth_msg, len); printf("send %s after recv\n", bluetooth_msg); @@ -111,5 +114,5 @@ int AdapterBlueToothTest(void) MSH_CMD_EXPORT(AdapterBlueToothTest,a bt adpter sample); #endif #ifdef ADD_XIZI_FETURES -SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterWifiTest, AdapterWifiTest, show adapter wifi information); +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterBlueToothTest, AdapterBlueToothTest, show adapter bluetooth information); #endif \ No newline at end of file diff --git a/APP_Framework/Framework/connection/bluetooth/hc08/hc08.c b/APP_Framework/Framework/connection/bluetooth/hc08/hc08.c index bc20ef8bc..be7ba9e2a 100644 --- a/APP_Framework/Framework/connection/bluetooth/hc08/hc08.c +++ b/APP_Framework/Framework/connection/bluetooth/hc08/hc08.c @@ -37,6 +37,12 @@ #define HC08_SET_ADDR_CMD "AT+ADDR=%s" #define HC08_GET_NAME_CMD "AT+NAME=%s" #define HC08_SET_NAME_CMD "AT+NAME=?" +#define HC08_GET_LUUID_CMD "AT+LUUID=?" +#define HC08_SET_LUUID_CMD "AT+LUUID=%u" +#define HC08_GET_SUUID_CMD "AT+SUUID=?" +#define HC08_SET_SUUID_CMD "AT+SUUID=%u" +#define HC08_GET_TUUID_CMD "AT+TUUID=?" +#define HC08_SET_TUUID_CMD "AT+TUUID=%u" #define HC08_OK_RESP "OK" @@ -60,6 +66,12 @@ enum Hc08AtCmd HC08_AT_CMD_GET_ADDR, HC08_AT_CMD_SET_NAME, HC08_AT_CMD_GET_NAME, + HC08_AT_CMD_SET_LUUID, + HC08_AT_CMD_GET_LUUID, + HC08_AT_CMD_SET_SUUID, + HC08_AT_CMD_GET_SUUID, + HC08_AT_CMD_SET_TUUID, + HC08_AT_CMD_GET_TUUID, HC08_AT_CMD_END, }; @@ -85,7 +97,7 @@ static int Hc08AtConfigure(ATAgentType agent, enum Hc08AtCmd hc08_at_cmd, void * { const char *result_buf; char *connectable, *role; - unsigned int baudrate; + unsigned int baudrate, luuid; char reply_ok_flag = 1; char cmd_str[HC08_CMD_STR_DEFAULT_SIZE] = {0}; @@ -166,6 +178,18 @@ static int Hc08AtConfigure(ATAgentType agent, enum Hc08AtCmd hc08_at_cmd, void * ATOrderSend(agent, REPLY_TIME_OUT, reply, HC08_GET_NAME_CMD); reply_ok_flag = 0; break; + case HC08_AT_CMD_GET_LUUID: + AtSetReplyCharNum(agent, 13); + ATOrderSend(agent, REPLY_TIME_OUT, reply, HC08_GET_LUUID_CMD); + reply_ok_flag = 0; + break; + case HC08_AT_CMD_SET_LUUID: + luuid = *(unsigned int *)param; + sprintf(cmd_str, HC08_SET_LUUID_CMD, luuid); + AtSetReplyCharNum(agent, 13); + ATOrderSend(agent, REPLY_TIME_OUT, reply, cmd_str); + reply_ok_flag = 0; + break; default: printf("hc08 do not support no.%d cmd\n", hc08_at_cmd); DeleteATReply(reply); @@ -205,10 +229,29 @@ static int Hc08Open(struct Adapter *adapter) return -1; } + struct SerialDataCfg serial_cfg; + memset(&serial_cfg, 0 ,sizeof(struct SerialDataCfg)); + serial_cfg.serial_baud_rate = 9600; + serial_cfg.serial_data_bits = DATA_BITS_8; + serial_cfg.serial_stop_bits = STOP_BITS_1; + serial_cfg.serial_buffer_size = SERIAL_RB_BUFSZ; + serial_cfg.serial_parity_mode = PARITY_NONE; + serial_cfg.serial_bit_order = STOP_BITS_1; + serial_cfg.serial_invert_mode = NRZ_NORMAL; +#ifdef ADAPTER_HC08_DRIVER_EXT_PORT + serial_cfg.ext_uart_no = ADAPTER_HC08_DRIVER_EXT_PORT; + serial_cfg.port_configure = PORT_CFG_INIT; +#endif + + struct PrivIoctlCfg ioctl_cfg; + ioctl_cfg.ioctl_driver_type = SERIAL_TYPE; + ioctl_cfg.args = &serial_cfg; + PrivIoctl(adapter->fd, OPE_INT, &ioctl_cfg); + //step2: init AT agent if (!adapter->agent) { char *agent_name = "bluetooth_uart_client"; - printf("InitATAgent agent_name %s fd %u\n", agent_name, adapter->fd); + if (0 != InitATAgent(agent_name, adapter->fd, 512)) { printf("at agent init failed !\n"); return -1; @@ -239,8 +282,8 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args) return -1; } - char hc08_baudrate[HC08_RESP_DEFAULT_SIZE] = {0}; uint32_t baud_rate = *((uint32_t *)args); + uint32_t luuid; struct SerialDataCfg serial_cfg; memset(&serial_cfg, 0 ,sizeof(struct SerialDataCfg)); @@ -256,6 +299,8 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args) serial_cfg.port_configure = PORT_CFG_INIT; #endif + serial_cfg.serial_timeout = -1; + struct PrivIoctlCfg ioctl_cfg; ioctl_cfg.ioctl_driver_type = SERIAL_TYPE; ioctl_cfg.args = &serial_cfg; @@ -271,11 +316,29 @@ static int Hc08Ioctl(struct Adapter *adapter, int cmd, void *args) return -1; } - PrivTaskDelay(200); + //Step3 : clear hc08 configure + if (MASTER == adapter->net_role) { + PrivTaskDelay(300); + if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_CLEAR, NULL, NULL) < 0) { + return -1; + } + } + + PrivTaskDelay(500); //Step3 : show hc08 device info, hc08_get send "AT+RX" response device info - char device_info[HC08_RESP_DEFAULT_SIZE * 2] = {0}; - if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_DEVICE_INFO, NULL, device_info) < 0) { + // char device_info[HC08_RESP_DEFAULT_SIZE * 2] = {0}; + // if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_DEVICE_INFO, NULL, device_info) < 0) { + // return -1; + // } + + //Step4 : set LUUID、SUUID、TUUID, slave and master need to have same uuid param + luuid = 1234; + if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_SET_LUUID, &luuid, NULL) < 0) { + return -1; + } + + if (Hc08AtConfigure(adapter->agent, HC08_AT_CMD_GET_LUUID, NULL, NULL) < 0) { return -1; } From c14f2f73e07821e8d3aaa41e408b97ab001f07b8 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Wed, 8 Jun 2022 10:41:21 +0800 Subject: [PATCH 03/15] feat support uart8 and ec200t device on xidatong board --- .../Framework/connection/4g/ec200t/Kconfig | 18 +++-- .../Framework/connection/4g/ec200t/ec200t.c | 2 + .../third_party_driver/common/pin_mux.c | 15 +++++ .../xidatong/third_party_driver/uart/Kconfig | 67 ++++++++++++------- .../third_party_driver/uart/connect_uart.c | 52 +++++++++++++- 5 files changed, 121 insertions(+), 33 deletions(-) diff --git a/APP_Framework/Framework/connection/4g/ec200t/Kconfig b/APP_Framework/Framework/connection/4g/ec200t/Kconfig index 71f692f27..c5ac4a37f 100644 --- a/APP_Framework/Framework/connection/4g/ec200t/Kconfig +++ b/APP_Framework/Framework/connection/4g/ec200t/Kconfig @@ -3,13 +3,19 @@ config ADAPTER_4G_EC200T default "ec200t" if ADD_XIZI_FETURES - config ADAPTER_EC200T_PWRKEY - int "EC200T PWRKEY pin number" - default "97" + config ADAPTER_EC200T_USING_PWRKEY + bool "EC200T using PWRKEY pin number" + default n - config ADAPTER_EC200T_PIN_DRIVER - string "EC200T device pin driver path" - default "/dev/pin_dev" + if ADAPTER_EC200T_USING_PWRKEY + config ADAPTER_EC200T_PWRKEY + int "EC200T PWRKEY pin number" + default "97" + + config ADAPTER_EC200T_PIN_DRIVER + string "EC200T device pin driver path" + default "/dev/pin_dev" + endif config ADAPTER_EC200T_DRIVER_EXTUART bool "Using extra uart to support 4G" diff --git a/APP_Framework/Framework/connection/4g/ec200t/ec200t.c b/APP_Framework/Framework/connection/4g/ec200t/ec200t.c index cdf55707a..44ce40d63 100644 --- a/APP_Framework/Framework/connection/4g/ec200t/ec200t.c +++ b/APP_Framework/Framework/connection/4g/ec200t/ec200t.c @@ -43,6 +43,7 @@ static void Ec200tPowerSet(void){ return; } #else static void Ec200tPowerSet(void) { +#ifdef ADAPTER_EC200T_USING_PWRKEY int pin_fd; pin_fd = PrivOpen(ADAPTER_EC200T_PIN_DRIVER, O_RDWR); if (pin_fd < 0) { @@ -73,6 +74,7 @@ static void Ec200tPowerSet(void) PrivClose(pin_fd); PrivTaskDelay(10000); +#endif } #endif diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c index 63eed88b2..be6b733b1 100755 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c @@ -995,6 +995,21 @@ void BOARD_InitUartPins(void) IOMUXC_GPIO_AD_B1_03_LPUART2_RX, 0x10B0u); #endif + +#ifdef BSP_USING_LPUART8 + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0U); + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0U); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0x10B0u); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0x10B0u); +#endif } /*********************************************************************************************************************** diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig index 93c86b33f..148c78116 100644 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig @@ -1,29 +1,44 @@ config BSP_USING_LPUART1 -bool "Enable LPUART1" -default y -if BSP_USING_LPUART1 - config SERIAL_BUS_NAME_1 - string "serial bus 1 name" - default "uart1" - config SERIAL_DRV_NAME_1 - string "serial bus 1 driver name" - default "uart1_drv" - config SERIAL_1_DEVICE_NAME_0 - string "serial bus 1 device name" - default "uart1_dev1" -endif + bool "Enable LPUART1" + default y + if BSP_USING_LPUART1 + config SERIAL_BUS_NAME_1 + string "serial bus 1 name" + default "uart1" + config SERIAL_DRV_NAME_1 + string "serial bus 1 driver name" + default "uart1_drv" + config SERIAL_1_DEVICE_NAME_0 + string "serial bus 1 device name" + default "uart1_dev1" + endif config BSP_USING_LPUART2 -bool "Enable LPUART2" -default y -if BSP_USING_LPUART2 - config SERIAL_BUS_NAME_2 - string "serial bus 2 name" - default "uart2" - config SERIAL_DRV_NAME_2 - string "serial bus 2 driver name" - default "uart2_drv" - config SERIAL_2_DEVICE_NAME_0 - string "serial bus 2 device name" - default "uart2_dev2" -endif + bool "Enable LPUART2" + default y + if BSP_USING_LPUART2 + config SERIAL_BUS_NAME_2 + string "serial bus 2 name" + default "uart2" + config SERIAL_DRV_NAME_2 + string "serial bus 2 driver name" + default "uart2_drv" + config SERIAL_2_DEVICE_NAME_0 + string "serial bus 2 device name" + default "uart2_dev2" + endif + +config BSP_USING_LPUART8 + bool "Enable LPUART8" + default n + if BSP_USING_LPUART8 + config SERIAL_BUS_NAME_8 + string "serial bus 8 name" + default "uart8" + config SERIAL_DRV_NAME_8 + string "serial bus 8 driver name" + default "uart8_drv" + config SERIAL_8_DEVICE_NAME_0 + string "serial bus 8 device name" + default "uart8_dev8" + endif diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c index 6ce8b6695..01edbe363 100644 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c @@ -43,7 +43,7 @@ void LPUART1_IRQHandler(int irqn, void *arg) DisableIRQ(UART1_IRQn); UartIsr(&serial_bus_1, &serial_driver_1, &serial_device_1); - EnableIRQ(UART1_IRQn); + EnableIRQ(UART1_IRQn); } DECLARE_HW_IRQ(UART1_IRQn, LPUART1_IRQHandler, NONE); @@ -66,6 +66,23 @@ void LPUART2_IRQHandler(int irqn, void *arg) DECLARE_HW_IRQ(UART2_IRQn, LPUART2_IRQHandler, NONE); #endif +#ifdef BSP_USING_LPUART8 +struct SerialBus serial_bus_8; +struct SerialDriver serial_driver_8; +struct SerialHardwareDevice serial_device_8; + +void LPUART8_IRQHandler(int irqn, void *arg) +{ + + DisableIRQ(LPUART8_IRQn); + + UartIsr(&serial_bus_8, &serial_driver_8, &serial_device_8); + EnableIRQ(LPUART8_IRQn); + +} +DECLARE_HW_IRQ(LPUART8_IRQn, LPUART8_IRQHandler, NONE); +#endif + static void SerialCfgParamCheck(struct SerialCfgParam *serial_cfg_default, struct SerialCfgParam *serial_cfg_new) { struct SerialDataCfg *data_cfg_default = &serial_cfg_default->data_cfg; @@ -426,5 +443,38 @@ int Imxrt1052HwUartInit(void) } #endif +#ifdef BSP_USING_LPUART8 + static struct SerialCfgParam serial_cfg_8; + memset(&serial_cfg_8, 0, sizeof(struct SerialCfgParam)); + + static struct SerialDevParam serial_dev_param_8; + memset(&serial_dev_param_8, 0, sizeof(struct SerialDevParam)); + + serial_driver_8.drv_done = &drv_done; + serial_driver_8.configure = &SerialDrvConfigure; + serial_device_8.hwdev_done = &hwdev_done; + + serial_cfg_8.data_cfg = data_cfg_init; + + serial_cfg_8.hw_cfg.private_data = (void *)LPUART8; + serial_cfg_8.hw_cfg.serial_irq_interrupt = LPUART8_IRQn; + serial_driver_8.private_data = (void *)&serial_cfg_8; + + serial_dev_param_8.serial_work_mode = SIGN_OPER_INT_RX; + serial_device_8.haldev.private_data = (void *)&serial_dev_param_8; + + ret = BoardSerialBusInit(&serial_bus_8, &serial_driver_8, SERIAL_BUS_NAME_8, SERIAL_DRV_NAME_8); + if (EOK != ret) { + KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret); + return ERROR; + } + + ret = BoardSerialDevBend(&serial_device_8, (void *)&serial_cfg_8, SERIAL_BUS_NAME_8, SERIAL_8_DEVICE_NAME_0); + if (EOK != ret) { + KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret); + return ERROR; + } +#endif + return ret; } From 80e08450fe05285d8fb447fef364eed8d1d97d95 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Wed, 8 Jun 2022 11:09:50 +0800 Subject: [PATCH 04/15] fix compile error include watchdog and uart configure error --- .../third_party_driver/watchdog/connect_wdg.c | 11 +++++++++++ .../third_party_driver/watchdog/connect_wdt.c | 11 +++++++++++ .../XiZi/board/cortex-m0-emulator/connect_uart.c | 1 + .../XiZi/board/cortex-m3-emulator/connect_uart.c | 1 + .../third_party_driver/watchdog/connect_wdt.c | 11 +++++++++++ .../kd233/third_party_driver/watchdog/connect_wdt.c | 11 +++++++++++ .../third_party_driver/watchdog/connect_wdg.c | 11 +++++++++++ Ubiquitous/XiZi/kernel/thread/init.c | 8 ++++---- 8 files changed, 61 insertions(+), 4 deletions(-) diff --git a/Ubiquitous/XiZi/board/aiit-arm32-board/third_party_driver/watchdog/connect_wdg.c b/Ubiquitous/XiZi/board/aiit-arm32-board/third_party_driver/watchdog/connect_wdg.c index ac28504ea..75ce7251e 100644 --- a/Ubiquitous/XiZi/board/aiit-arm32-board/third_party_driver/watchdog/connect_wdg.c +++ b/Ubiquitous/XiZi/board/aiit-arm32-board/third_party_driver/watchdog/connect_wdg.c @@ -87,6 +87,17 @@ static const struct WdtDevDone dev_done = NONE, }; +/** + * @description: Watchdog function + * @return success: EOK, failure: other + */ +int StartWatchdog(void) +{ + //add feed watchdog task function + + return EOK; +} + /** * This function Watchdog initialization * diff --git a/Ubiquitous/XiZi/board/aiit-riscv64-board/third_party_driver/watchdog/connect_wdt.c b/Ubiquitous/XiZi/board/aiit-riscv64-board/third_party_driver/watchdog/connect_wdt.c index ce4fd180c..30ac2630e 100644 --- a/Ubiquitous/XiZi/board/aiit-riscv64-board/third_party_driver/watchdog/connect_wdt.c +++ b/Ubiquitous/XiZi/board/aiit-riscv64-board/third_party_driver/watchdog/connect_wdt.c @@ -65,6 +65,17 @@ static const struct WdtDevDone dev_done = NONE, }; +/** + * @description: Watchdog function + * @return success: EOK, failure: other + */ +int StartWatchdog(void) +{ + //add feed watchdog task function + + return EOK; +} + int HwWdtInit(void) { wdt_device_number_t id; diff --git a/Ubiquitous/XiZi/board/cortex-m0-emulator/connect_uart.c b/Ubiquitous/XiZi/board/cortex-m0-emulator/connect_uart.c index 8cc0e8975..360467509 100644 --- a/Ubiquitous/XiZi/board/cortex-m0-emulator/connect_uart.c +++ b/Ubiquitous/XiZi/board/cortex-m0-emulator/connect_uart.c @@ -118,6 +118,7 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi/board/cortex-m3-emulator/connect_uart.c b/Ubiquitous/XiZi/board/cortex-m3-emulator/connect_uart.c index 3c378709b..008d70a61 100644 --- a/Ubiquitous/XiZi/board/cortex-m3-emulator/connect_uart.c +++ b/Ubiquitous/XiZi/board/cortex-m3-emulator/connect_uart.c @@ -119,6 +119,7 @@ static uint32 SerialInit(struct SerialDriver *serial_drv, struct BusConfigureInf struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)serial_drv->driver.owner_bus->owner_haldev; struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data; + struct SerialCfgParam *serial_cfg = (struct SerialCfgParam *)serial_drv->private_data; // config serial receive sem timeout dev_param->serial_timeout = serial_cfg->data_cfg.serial_timeout; diff --git a/Ubiquitous/XiZi/board/k210-emulator/third_party_driver/watchdog/connect_wdt.c b/Ubiquitous/XiZi/board/k210-emulator/third_party_driver/watchdog/connect_wdt.c index 1ebcd6ba7..19c445525 100644 --- a/Ubiquitous/XiZi/board/k210-emulator/third_party_driver/watchdog/connect_wdt.c +++ b/Ubiquitous/XiZi/board/k210-emulator/third_party_driver/watchdog/connect_wdt.c @@ -66,6 +66,17 @@ static const struct WdtDevDone dev_done = NONE, }; +/** + * @description: Watchdog function + * @return success: EOK, failure: other + */ +int StartWatchdog(void) +{ + //add feed watchdog task function + + return EOK; +} + int HwWdtInit(void) { wdt_device_number_t id; diff --git a/Ubiquitous/XiZi/board/kd233/third_party_driver/watchdog/connect_wdt.c b/Ubiquitous/XiZi/board/kd233/third_party_driver/watchdog/connect_wdt.c index 1ebcd6ba7..19c445525 100644 --- a/Ubiquitous/XiZi/board/kd233/third_party_driver/watchdog/connect_wdt.c +++ b/Ubiquitous/XiZi/board/kd233/third_party_driver/watchdog/connect_wdt.c @@ -66,6 +66,17 @@ static const struct WdtDevDone dev_done = NONE, }; +/** + * @description: Watchdog function + * @return success: EOK, failure: other + */ +int StartWatchdog(void) +{ + //add feed watchdog task function + + return EOK; +} + int HwWdtInit(void) { wdt_device_number_t id; diff --git a/Ubiquitous/XiZi/board/stm32f407-st-discovery/third_party_driver/watchdog/connect_wdg.c b/Ubiquitous/XiZi/board/stm32f407-st-discovery/third_party_driver/watchdog/connect_wdg.c index bbbad0fd5..c23a259f6 100644 --- a/Ubiquitous/XiZi/board/stm32f407-st-discovery/third_party_driver/watchdog/connect_wdg.c +++ b/Ubiquitous/XiZi/board/stm32f407-st-discovery/third_party_driver/watchdog/connect_wdg.c @@ -86,6 +86,17 @@ static const struct WdtDevDone dev_done = NONE, }; +/** + * @description: Watchdog function + * @return success: EOK, failure: other + */ +int StartWatchdog(void) +{ + //add feed watchdog task function + + return EOK; +} + /** * This function Watchdog initialization * diff --git a/Ubiquitous/XiZi/kernel/thread/init.c b/Ubiquitous/XiZi/kernel/thread/init.c index 583f9d7a5..8504a3ba7 100644 --- a/Ubiquitous/XiZi/kernel/thread/init.c +++ b/Ubiquitous/XiZi/kernel/thread/init.c @@ -31,10 +31,6 @@ #include "connect_usb.h" #endif -#ifdef BSP_USING_WDT -#include "connect_wdt.h" -#endif - #ifdef KERNEL_USER_MAIN #ifndef MAIN_KTASK_STACK_SIZE #define MAIN_KTASK_STACK_SIZE 2048 @@ -44,6 +40,10 @@ #endif #endif +#ifdef BSP_USING_WDT +extern int StartWatchdog(void); +#endif + extern void CreateKServiceKTask(void); extern int main(void); void InitBoardHardware(void); From b3d51efc13f2350c6ec196a7e8d26903c03e37d9 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Tue, 14 Jun 2022 14:46:18 +0800 Subject: [PATCH 05/15] fix pin_mux compile error --- .../third_party_driver/common/pin_mux.c | 100 +++--------------- 1 file changed, 15 insertions(+), 85 deletions(-) diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c index 84576605f..3a5e320fd 100755 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c @@ -1094,6 +1094,21 @@ void BOARD_InitUartPins(void) IOMUXC_GPIO_AD_B1_03_LPUART2_RX, 0x10B0u); #endif + +#ifdef BSP_USING_LPUART8 + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0U); + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0U); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0x10B0u); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0x10B0u); +#endif } /* FUNCTION ************************************************************************************************************ @@ -1191,30 +1206,6 @@ void BOARD_InitPins(void) Pull Up / Down Config. Field: 100K Ohm Pull Up Hyst. Enable Field: Hysteresis Disabled */ -#if UART_DEBUG - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B0_12_LPUART1_TX, /* GPIO_AD_B0_12 PAD functional properties : */ - 0x10B0u); /* Slew Rate Field: Slow Slew Rate - Drive Strength Field: R0/6 - Speed Field: medium(100MHz) - Open Drain Enable Field: Open Drain Disabled - Pull / Keep Enable Field: Pull/Keeper Enabled - Pull / Keep Select Field: Keeper - Pull Up / Down Config. Field: 100K Ohm Pull Down - Hyst. Enable Field: Hysteresis Disabled */ - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B0_13_LPUART1_RX, /* GPIO_AD_B0_13 PAD functional properties : */ - 0x10B0u); /* Slew Rate Field: Slow Slew Rate - Drive Strength Field: R0/6 - Speed Field: medium(100MHz) - Open Drain Enable Field: Open Drain Disabled - Pull / Keep Enable Field: Pull/Keeper Enabled - Pull / Keep Select Field: Keeper - Pull Up / Down Config. Field: 100K Ohm Pull Down - Hyst. Enable Field: Hysteresis Disabled */ - -#endif - IOMUXC_SetPinConfig( IOMUXC_GPIO_B1_04_ENET_RX_DATA00, /* GPIO_B1_04 PAD functional properties : */ 0xB0E9u); /* Slew Rate Field: Fast Slew Rate @@ -1317,67 +1308,6 @@ void BOARD_InitPins(void) Hyst. Enable Field: Hysteresis Disabled */ } -void BOARD_InitUartPins(void) -{ -#ifdef BSP_USING_LPUART1 - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B0_12_LPUART1_TX, /* GPIO_AD_B0_12 is configured as LPUART1_TX */ - 0U); /* Software Input On Field: Input Path is determined by functionality */ - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B0_13_LPUART1_RX, /* GPIO_AD_B0_13 is configured as LPUART1_RX */ - 0U); /* Software Input On Field: Input Path is determined by functionality */ - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B0_12_LPUART1_TX, /* GPIO_AD_B0_12 PAD functional properties : */ - 0x10B0u); /* Slew Rate Field: Slow Slew Rate - Drive Strength Field: R0/6 - Speed Field: medium(100MHz) - Open Drain Enable Field: Open Drain Disabled - Pull / Keep Enable Field: Pull/Keeper Enabled - Pull / Keep Select Field: Keeper - Pull Up / Down Config. Field: 100K Ohm Pull Down - Hyst. Enable Field: Hysteresis Disabled */ - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B0_13_LPUART1_RX, /* GPIO_AD_B0_13 PAD functional properties : */ - 0x10B0u); /* Slew Rate Field: Slow Slew Rate - Drive Strength Field: R0/6 - Speed Field: medium(100MHz) - Open Drain Enable Field: Open Drain Disabled - Pull / Keep Enable Field: Pull/Keeper Enabled - Pull / Keep Select Field: Keeper - Pull Up / Down Config. Field: 100K Ohm Pull Down - Hyst. Enable Field: Hysteresis Disabled */ -#endif -#ifdef BSP_USING_LPUART2 - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B1_02_LPUART2_TX, - 0U); - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B1_03_LPUART2_RX, - 0U); - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B1_02_LPUART2_TX, - 0x10B0u); - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B1_03_LPUART2_RX, - 0x10B0u); -#endif - -#ifdef BSP_USING_LPUART8 - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B1_10_LPUART8_TX, - 0U); - IOMUXC_SetPinMux( - IOMUXC_GPIO_AD_B1_11_LPUART8_RX, - 0U); - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B1_10_LPUART8_TX, - 0x10B0u); - IOMUXC_SetPinConfig( - IOMUXC_GPIO_AD_B1_11_LPUART8_RX, - 0x10B0u); -#endif -} - /*********************************************************************************************************************** * EOF **********************************************************************************************************************/ From f0f1b1c988d47b2b740151252547e8363bade540 Mon Sep 17 00:00:00 2001 From: Liu_Weichao Date: Tue, 14 Jun 2022 16:43:00 +0800 Subject: [PATCH 06/15] delete error description and wrong define --- Ubiquitous/XiZi/fs/shared/src/poll.c | 32 +++++++++---------- .../resources/ethernet/LwIP/arch/sys_arch.h | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Ubiquitous/XiZi/fs/shared/src/poll.c b/Ubiquitous/XiZi/fs/shared/src/poll.c index 95b451086..efd25bb27 100644 --- a/Ubiquitous/XiZi/fs/shared/src/poll.c +++ b/Ubiquitous/XiZi/fs/shared/src/poll.c @@ -24,31 +24,31 @@ void PollAdd(WaitQueueType *wq, pollreqType *req) } -struct rt_poll_node; +struct poll_node; -struct rt_poll_table +struct poll_table { pollreqType req; uint32 triggered; KTaskDescriptorType polling_thread; - struct rt_poll_node *nodes; + struct poll_node *nodes; }; -struct rt_poll_node +struct poll_node { struct WaitqueueNode wqn; - struct rt_poll_table *pt; - struct rt_poll_node *next; + struct poll_table *pt; + struct poll_node *next; }; static int WqueuePollWake(struct WaitqueueNode *wait, void *key) { - struct rt_poll_node *pn; + struct poll_node *pn; if (key && !((x_ubase)key & wait->key)) return -1; - pn =CONTAINER_OF(wait, struct rt_poll_node, wqn); + pn =CONTAINER_OF(wait, struct poll_node, wqn); pn->pt->triggered = 1; return 0; @@ -56,14 +56,14 @@ static int WqueuePollWake(struct WaitqueueNode *wait, void *key) static void _poll_add(WaitQueueType *wq, pollreqType *req) { - struct rt_poll_table *pt; - struct rt_poll_node *node; + struct poll_table *pt; + struct poll_node *node; - node = (struct rt_poll_node *)x_malloc(sizeof(struct rt_poll_node)); + node = (struct poll_node *)x_malloc(sizeof(struct poll_node)); if (node == NONE) return; - pt =CONTAINER_OF(req, struct rt_poll_table, req); + pt =CONTAINER_OF(req, struct poll_table, req); node->wqn.key = req->_key; InitDoubleLinkList(&(node->wqn.list)); @@ -77,7 +77,7 @@ static void _poll_add(WaitQueueType *wq, pollreqType *req) -static int PollWaitTimeout(struct rt_poll_table *pt, int msec) +static int PollWaitTimeout(struct poll_table *pt, int msec) { int32 timeout; int ret = 0; @@ -135,7 +135,7 @@ static int DoPollFd(struct pollfd *pollfd, pollreqType *req) return mask; } -static int PollDo(struct pollfd *fds, NfdsType nfds, struct rt_poll_table *pt, int msec) +static int PollDo(struct pollfd *fds, NfdsType nfds, struct poll_table *pt, int msec) { int num; int istimeout = 0; @@ -175,8 +175,8 @@ static int PollDo(struct pollfd *fds, NfdsType nfds, struct rt_poll_table *pt, i int poll(struct pollfd *fds, NfdsType nfds, int timeout) { int num; - struct rt_poll_table table; - struct rt_poll_node *node, *temp; + struct poll_table table; + struct poll_node *node, *temp; table.req._proc = _poll_add; table.triggered = 0; diff --git a/Ubiquitous/XiZi/resources/ethernet/LwIP/arch/sys_arch.h b/Ubiquitous/XiZi/resources/ethernet/LwIP/arch/sys_arch.h index bea4e6943..83c4a1526 100644 --- a/Ubiquitous/XiZi/resources/ethernet/LwIP/arch/sys_arch.h +++ b/Ubiquitous/XiZi/resources/ethernet/LwIP/arch/sys_arch.h @@ -39,7 +39,7 @@ */ #ifndef __SYS_ARCH__ -#define __SYS_ATCH__ +#define __SYS_ARCH__ #include #include From 65d7a2b1a0c6159720de0fef663060c12671b5a1 Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Mon, 23 May 2022 15:11:20 +0800 Subject: [PATCH 07/15] APP_Framework/Applications/:update the configuration file. --- APP_Framework/Applications/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/APP_Framework/Applications/Kconfig b/APP_Framework/Applications/Kconfig index 7d66db54a..20429c9c7 100644 --- a/APP_Framework/Applications/Kconfig +++ b/APP_Framework/Applications/Kconfig @@ -19,4 +19,5 @@ menu "Applications" source "$APP_DIR/Applications/knowing_app/Kconfig" source "$APP_DIR/Applications/sensor_app/Kconfig" source "$APP_DIR/Applications/embedded_database_app/Kconfig" + source "$APP_DIR/Applications/WebNet_XiUOS/Kconfig" endmenu From 8b82b0cb65129904db9c5f5af7ffc9f8aee65fa4 Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Mon, 23 May 2022 15:13:00 +0800 Subject: [PATCH 08/15] =?UTF-8?q?APP=5FFramework/Framework/=EF=BC=9Aupdate?= =?UTF-8?q?=20the=20=20transform=20layer=20about=20rt-thread.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transform_layer/rtthread/transform.c | 9 +++++++++ .../transform_layer/rtthread/transform.h | 15 +++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/APP_Framework/Framework/transform_layer/rtthread/transform.c b/APP_Framework/Framework/transform_layer/rtthread/transform.c index e792184ac..661babf8f 100644 --- a/APP_Framework/Framework/transform_layer/rtthread/transform.c +++ b/APP_Framework/Framework/transform_layer/rtthread/transform.c @@ -195,3 +195,12 @@ void PrivFree(void *pointer) free(pointer); } +/*********************kernel**********************/ +void PrivTaskenterCritical() +{ + rt_enter_critical(); +} +void PrivTaskexitCritical() +{ + rt_exit_critical(); +} diff --git a/APP_Framework/Framework/transform_layer/rtthread/transform.h b/APP_Framework/Framework/transform_layer/rtthread/transform.h index 1210976dc..786302911 100644 --- a/APP_Framework/Framework/transform_layer/rtthread/transform.h +++ b/APP_Framework/Framework/transform_layer/rtthread/transform.h @@ -38,6 +38,7 @@ #include #include #include +#include #ifdef RT_USING_POSIX_TERMIOS #include #endif @@ -60,7 +61,7 @@ #ifdef __cplusplus extern "C" { #endif - +typedef signed char bool; typedef signed char int8; typedef signed short int16; typedef signed int int32; @@ -77,7 +78,7 @@ typedef unsigned long long uint64; #endif #define OPE_INT 0x0000 -#define OPE_CFG 0x0001 +#define OPE_CFG 0x0001 #define NAME_NUM_MAX 32 @@ -96,6 +97,9 @@ typedef unsigned long long uint64; #define SERIAL_RB_BUFSZ 128 #endif +#define TRUE (1) +#define FALSE (0) + struct PinDevIrq { int irq_mode;//< RISING/FALLING/HIGH/LOW @@ -197,6 +201,13 @@ void *PrivCalloc(size_t count, size_t size); void PrivFree(void *pointer); + +/*********************kernel**********************/ +void PrivTaskenterCritical(); +void PrivTaskexitCritical(); + + + #ifdef __cplusplus } #endif From 8f86dddd57d04f0099b186212be58eeb4b21fd77 Mon Sep 17 00:00:00 2001 From: yl1185 <1182784652@qq.com> Date: Mon, 9 May 2022 09:50:33 +0800 Subject: [PATCH 09/15] connection/nbiot/ nb verify 1.SConscript is ok 2.modify Kconfig --- .../Framework/connection/nbiot/SConscript | 18 ++++++++++++++++++ .../Framework/connection/nbiot/bc28/Kconfig | 10 +++++++++- .../Framework/connection/nbiot/bc28/SConscript | 10 ++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 APP_Framework/Framework/connection/nbiot/SConscript create mode 100644 APP_Framework/Framework/connection/nbiot/bc28/SConscript diff --git a/APP_Framework/Framework/connection/nbiot/SConscript b/APP_Framework/Framework/connection/nbiot/SConscript new file mode 100644 index 000000000..2020cce28 --- /dev/null +++ b/APP_Framework/Framework/connection/nbiot/SConscript @@ -0,0 +1,18 @@ +import os +Import('RTT_ROOT') +from building import * +SOURCES = [] +SOURCES = ['adapter_nbiot.c'] + SOURCES +objs = [] +cwd = GetCurrentDir() +path = [cwd] +group = DefineGroup('nb', SOURCES, depend = [], CPPPATH = [cwd]) +objs = objs + group +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') \ No newline at end of file diff --git a/APP_Framework/Framework/connection/nbiot/bc28/Kconfig b/APP_Framework/Framework/connection/nbiot/bc28/Kconfig index ae773a1d8..dcb7e3d5c 100644 --- a/APP_Framework/Framework/connection/nbiot/bc28/Kconfig +++ b/APP_Framework/Framework/connection/nbiot/bc28/Kconfig @@ -36,5 +36,13 @@ if ADD_NUTTX_FETURES endif if ADD_RTTHREAD_FETURES - + config ADAPTER_BC28_DRIVER + string "BC28 device uart driver path" + default "/dev/uart2" + config ADAPTER_BC28_PIN_DRIVER + string "BC28 device pin driver path" + default "/dev/pin" + config ADAPTER_BC28_RESETPIN + string "BC28 RESET pin number" + default "100" endif diff --git a/APP_Framework/Framework/connection/nbiot/bc28/SConscript b/APP_Framework/Framework/connection/nbiot/bc28/SConscript new file mode 100644 index 000000000..f657dc41a --- /dev/null +++ b/APP_Framework/Framework/connection/nbiot/bc28/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['ADAPTER_BC28']): + src += ['bc28.c'] +group = DefineGroup('connection nb bc28', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file From 8845864e46f550252f81119089a3102d9d8e9fe3 Mon Sep 17 00:00:00 2001 From: yl1185 <1182784652@qq.com> Date: Tue, 10 May 2022 09:32:20 +0800 Subject: [PATCH 10/15] connection/nbiot/ nb verify 1.modify macro control for rt-thread 2.gcc is ok. --- .../connection/nbiot/adapter_nbiot.c | 41 +++++++++++++++---- .../Framework/connection/nbiot/bc28/bc28.c | 2 +- .../aiit_board/aiit-arm32-board/.config | 19 +++++---- .../aiit_board/aiit-arm32-board/rtconfig.h | 14 +++---- 4 files changed, 52 insertions(+), 24 deletions(-) diff --git a/APP_Framework/Framework/connection/nbiot/adapter_nbiot.c b/APP_Framework/Framework/connection/nbiot/adapter_nbiot.c index 873ff6d1f..952aab005 100644 --- a/APP_Framework/Framework/connection/nbiot/adapter_nbiot.c +++ b/APP_Framework/Framework/connection/nbiot/adapter_nbiot.c @@ -25,6 +25,8 @@ extern AdapterProductInfoType BC28Attach(struct Adapter *adapter); #endif +#define ADAPTER_NBIOT_NAME "nbiot" + static int AdapterNbiotRegister(struct Adapter *adapter) { int ret = 0; @@ -95,7 +97,13 @@ int opennb(void) return 0; } -// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, opennb, opennb, show adapter nb information); +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(opennb,open nb sample); +#endif +#ifdef ADD_XIZI_FETURES +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, opennb, opennb, show adapter nb information); +#endif + int closenb(void) { int ret = 0; @@ -113,8 +121,13 @@ int closenb(void) return 0; } -// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, closenb, closenb, show adapter nb information); - +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(closenb,close nb sample); +#endif +#ifdef ADD_XIZI_FETURES +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, closenb, closenb, show adapter nb information); +#endif + int connectnb(int argc, char *argv[]) { const char *send_msg = argv[1]; @@ -133,7 +146,12 @@ int closenb(void) return 0; } -// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, connectnb, connectnb, show adapter nb information); +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(connectnb,connect nb test); +#endif +#ifdef ADD_XIZI_FETURES +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, connectnb, connectnb, show adapter nb information); +#endif int sendnb(int argc, char *argv[]) { @@ -154,7 +172,12 @@ int closenb(void) return 0; } -// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, sendnb, sendnb, show adapter nb information); +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(sendnb,send nb test); +#endif +#ifdef ADD_XIZI_FETURES +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN)|SHELL_CMD_PARAM_NUM(2)|SHELL_CMD_DISABLE_RETURN, sendnb, sendnb, show adapter nb information); +#endif int recvnb(void) { @@ -167,5 +190,9 @@ int closenb(void) return 0; } -// SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, recvnb, recvnb, show adapter nb information); - +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(recvnb,receive nb test); +#endif +#ifdef ADD_XIZI_FETURES +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, recvnb, recvnb, show adapter nb information); +#endif diff --git a/APP_Framework/Framework/connection/nbiot/bc28/bc28.c b/APP_Framework/Framework/connection/nbiot/bc28/bc28.c index e9c83ac34..e290172ba 100644 --- a/APP_Framework/Framework/connection/nbiot/bc28/bc28.c +++ b/APP_Framework/Framework/connection/nbiot/bc28/bc28.c @@ -490,7 +490,7 @@ static int BC28Open(struct Adapter *adapter) /*step2: init AT agent*/ if (!adapter->agent) { char *agent_name = "niot_device"; - if (EOK != InitATAgent(agent_name, adapter->fd, 512)) { + if (0 != InitATAgent(agent_name, adapter->fd, 512)) { PrivClose(adapter->fd); PrivMutexDelete(&nbiot_lock); printf("at agent init failed !\n"); diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config index a6863efd4..c8f24b787 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config @@ -284,9 +284,9 @@ CONFIG_SOC_STM32F407ZG=y CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_UART=y CONFIG_BSP_USING_UART1=y -# CONFIG_BSP_USING_UART2 is not set -CONFIG_BSP_USING_UART3=y -CONFIG_BSP_USING_UART4=y +CONFIG_BSP_USING_UART2=y +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_UART4 is not set # CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_SPI is not set # CONFIG_BSP_USING_CH438 is not set @@ -328,14 +328,15 @@ CONFIG_CONNECTION_FRAMEWORK_DEBUG=y # CONFIG_CONNECTION_INDUSTRIAL_WLAN is not set # CONFIG_CONNECTION_ADAPTER_LORA is not set # CONFIG_CONNECTION_ADAPTER_4G is not set -# CONFIG_CONNECTION_ADAPTER_NB is not set +CONFIG_CONNECTION_ADAPTER_NB=y +CONFIG_ADAPTER_BC28=y +CONFIG_ADAPTER_NBIOT_BC28="bc28" +CONFIG_ADAPTER_BC28_RESETPIN=100 +CONFIG_ADAPTER_BC28_PIN_DRIVER="/dev/pin" +CONFIG_ADAPTER_BC28_DRIVER="/dev/uart2" # CONFIG_CONNECTION_ADAPTER_WIFI is not set # CONFIG_CONNECTION_ADAPTER_ETHERNET is not set -CONFIG_CONNECTION_ADAPTER_BLUETOOTH=y -CONFIG_ADAPTER_HC08=y -CONFIG_ADAPTER_BLUETOOTH_HC08="hc08" -CONFIG_ADAPTER_HC08_WORK_ROLE="M" -CONFIG_ADAPTER_HC08_DRIVER="/dev/uart4" +# CONFIG_CONNECTION_ADAPTER_BLUETOOTH is not set # CONFIG_CONNECTION_ADAPTER_ZIGBEE is not set # CONFIG_CONNECTION_ADAPTER_5G is not set # CONFIG_SUPPORT_KNOWING_FRAMEWORK is not set diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h index 8d36278d9..f5629c499 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h @@ -174,8 +174,7 @@ #define BSP_USING_GPIO #define BSP_USING_UART #define BSP_USING_UART1 -#define BSP_USING_UART3 -#define BSP_USING_UART4 +#define BSP_USING_UART2 #define BSP_USING_USB #define BSP_USING_STM32_USBH #define USB_BUS_NAME "usb" @@ -196,11 +195,12 @@ #define ADD_RTTHREAD_FETURES #define SUPPORT_CONNECTION_FRAMEWORK #define CONNECTION_FRAMEWORK_DEBUG -#define CONNECTION_ADAPTER_BLUETOOTH -#define ADAPTER_HC08 -#define ADAPTER_BLUETOOTH_HC08 "hc08" -#define ADAPTER_HC08_WORK_ROLE "M" -#define ADAPTER_HC08_DRIVER "/dev/uart4" +#define CONNECTION_ADAPTER_NB +#define ADAPTER_BC28 +#define ADAPTER_NBIOT_BC28 "bc28" +#define ADAPTER_BC28_RESETPIN 100 +#define ADAPTER_BC28_PIN_DRIVER "/dev/pin" +#define ADAPTER_BC28_DRIVER "/dev/uart2" /* Security */ From 582a5a4043ef43569a095d8abcd366c3e284e31e Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Tue, 24 May 2022 20:04:29 +0800 Subject: [PATCH 11/15] APP_Framework/Framework/: solve the bug about link --- APP_Framework/Framework/connection/bluetooth/SConscript | 3 ++- APP_Framework/Framework/connection/nbiot/SConscript | 3 ++- APP_Framework/Framework/connection/wifi/SConscript | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/APP_Framework/Framework/connection/bluetooth/SConscript b/APP_Framework/Framework/connection/bluetooth/SConscript index 3fecfb61c..4a341d50a 100644 --- a/APP_Framework/Framework/connection/bluetooth/SConscript +++ b/APP_Framework/Framework/connection/bluetooth/SConscript @@ -2,7 +2,8 @@ import os Import('RTT_ROOT') from building import * SOURCES = [] -SOURCES = ['adapter_bluetooth.c'] + SOURCES +if GetDepend(['CONNECTION_ADAPTER_BLUETOOTH']): + SOURCES = ['adapter_bluetooth.c'] + SOURCES objs = [] cwd = GetCurrentDir() path = [cwd] diff --git a/APP_Framework/Framework/connection/nbiot/SConscript b/APP_Framework/Framework/connection/nbiot/SConscript index 2020cce28..457bee16c 100644 --- a/APP_Framework/Framework/connection/nbiot/SConscript +++ b/APP_Framework/Framework/connection/nbiot/SConscript @@ -2,7 +2,8 @@ import os Import('RTT_ROOT') from building import * SOURCES = [] -SOURCES = ['adapter_nbiot.c'] + SOURCES +if GetDepend(['CONNECTION_ADAPTER_NB']): + SOURCES = ['adapter_nbiot.c'] + SOURCES objs = [] cwd = GetCurrentDir() path = [cwd] diff --git a/APP_Framework/Framework/connection/wifi/SConscript b/APP_Framework/Framework/connection/wifi/SConscript index 49378ad9f..7eb5f670e 100644 --- a/APP_Framework/Framework/connection/wifi/SConscript +++ b/APP_Framework/Framework/connection/wifi/SConscript @@ -2,7 +2,8 @@ import os Import('RTT_ROOT') from building import * SOURCES = [] -SOURCES = ['adapter_wifi.c'] + SOURCES +if GetDepend(['CONNECTION_ADAPTER_WIFI']): + SOURCES = ['adapter_wifi.c'] + SOURCES objs = [] cwd = GetCurrentDir() path = [cwd] From 888d981f8f4f4b40f761961851f97374e32c6224 Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Wed, 25 May 2022 16:02:52 +0800 Subject: [PATCH 12/15] APP_Framework/Framework/:add enthernet SConscript file. --- .../Framework/connection/ethernet/SConscript | 19 +++++++++++++++++++ .../ethernet/hfa21_ethernet/Kconfig | 4 +++- .../ethernet/hfa21_ethernet/SConscript | 10 ++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 APP_Framework/Framework/connection/ethernet/SConscript create mode 100644 APP_Framework/Framework/connection/ethernet/hfa21_ethernet/SConscript diff --git a/APP_Framework/Framework/connection/ethernet/SConscript b/APP_Framework/Framework/connection/ethernet/SConscript new file mode 100644 index 000000000..872676e5c --- /dev/null +++ b/APP_Framework/Framework/connection/ethernet/SConscript @@ -0,0 +1,19 @@ +import os +Import('RTT_ROOT') +from building import * +SOURCES = [] +if GetDepend(['CONNECTION_ADAPTER_ETHERNET']): + SOURCES = ['adapter_ethernet.c'] + SOURCES +objs = [] +cwd = GetCurrentDir() +path = [cwd] +group = DefineGroup('ethernet', SOURCES, depend = [], CPPPATH = [cwd]) +objs = objs + group +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') \ No newline at end of file diff --git a/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/Kconfig b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/Kconfig index 2efc7a0b2..808272cfa 100644 --- a/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/Kconfig +++ b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/Kconfig @@ -29,5 +29,7 @@ if ADD_NUTTX_FETURES endif if ADD_RTTHREAD_FETURES - + config ADAPTER_HFA21_DRIVER + string "HFA21 device uart driver path" + default "/dev/uart3" endif diff --git a/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/SConscript b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/SConscript new file mode 100644 index 000000000..e388a22d4 --- /dev/null +++ b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/SConscript @@ -0,0 +1,10 @@ +from building import * +import os + +cwd = GetCurrentDir() +src = [] +if GetDepend(['ADAPTER_HFA21_ETHERNET']): + src += ['hfa21_ethernet.c'] +group = DefineGroup('connection ethernet hfa21', src, depend = [], CPPPATH = [cwd]) + +Return('group') \ No newline at end of file From 876a6c8ff1842c2939c74f92cdb533d03c2873ec Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Wed, 25 May 2022 16:04:43 +0800 Subject: [PATCH 13/15] APP_Framework/Framework/:update ethernet driver and update the connection files,and the mcu can communicate with the ethernet module correctly, but the module can't connect the local server. --- .../Framework/connection/adapter_agent.c | 4 ++- APP_Framework/Framework/connection/at_agent.h | 4 +++ .../connection/ethernet/adapter_ethernet.c | 13 +++++++--- .../ethernet/hfa21_ethernet/hfa21_ethernet.c | 13 +++++----- .../aiit_board/aiit-arm32-board/.config | 25 ++++++++----------- .../aiit_board/aiit-arm32-board/rtconfig.h | 16 +++++------- 6 files changed, 39 insertions(+), 36 deletions(-) diff --git a/APP_Framework/Framework/connection/adapter_agent.c b/APP_Framework/Framework/connection/adapter_agent.c index 15d1f7641..af74ad1f7 100755 --- a/APP_Framework/Framework/connection/adapter_agent.c +++ b/APP_Framework/Framework/connection/adapter_agent.c @@ -446,11 +446,13 @@ int DeleteATAgent(ATAgentType agent) PrivMutexDelete(&agent->lock); } #endif - +#ifdef ADD_XIZI_FETURES if (agent->entm_rx_notice) { printf("delete agent entm_rx_notice = %d\n",agent->entm_rx_notice); PrivSemaphoreDelete(&agent->entm_rx_notice); } +#else +#endif #ifdef ADD_XIZI_FETURES if (agent->rsp_sem) { printf("delete agent rsp_sem = %d\n",agent->rsp_sem); diff --git a/APP_Framework/Framework/connection/at_agent.h b/APP_Framework/Framework/connection/at_agent.h index 4ac0b4099..42d589a0c 100755 --- a/APP_Framework/Framework/connection/at_agent.h +++ b/APP_Framework/Framework/connection/at_agent.h @@ -74,7 +74,11 @@ struct ATAgent char entm_recv_buf[ENTM_RECV_MAX]; uint32 entm_recv_len; enum ReceiveMode receive_mode; +#ifdef ADD_XIZI_FETURES int entm_rx_notice; +#else + sem_t entm_rx_notice; +#endif }; typedef struct ATAgent *ATAgentType; diff --git a/APP_Framework/Framework/connection/ethernet/adapter_ethernet.c b/APP_Framework/Framework/connection/ethernet/adapter_ethernet.c index 239472e38..d687d0268 100644 --- a/APP_Framework/Framework/connection/ethernet/adapter_ethernet.c +++ b/APP_Framework/Framework/connection/ethernet/adapter_ethernet.c @@ -97,28 +97,33 @@ int AdapterEthernetTest(void) AdapterDeviceSetUp(adapter); - const char *ip = "10.10.100.50"; - const char *port = "12345"; + const char *ip = "192.168.131.26"; + const char *port = "9999"; enum NetRoleType net_role = CLIENT;//SERVER enum IpType ip_type = IPV4; AdapterDeviceConnect(adapter, net_role, ip, port, ip_type); printf("ready to test data transfer\n"); - + PrivTaskDelay(2000); len = strlen(ethernet_msg); for (i = 0;i < 10; i ++) { printf("AdapterEthernetTest send %s\n", ethernet_msg); AdapterDeviceSend(adapter, ethernet_msg, len); PrivTaskDelay(4000); } - + while (1) { AdapterDeviceRecv(adapter, ethernet_recv_msg, 128); printf("AdapterEthernetTest recv %s\n", ethernet_recv_msg); memset(ethernet_recv_msg, 0, 128); } + #endif return 0; } +#ifdef ADD_RTTHREAD_FETURES +MSH_CMD_EXPORT(AdapterEthernetTest,a ethernet adpter sample); +#elif definded ADD_XIZI_FETURES SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC)|SHELL_CMD_PARAM_NUM(0)|SHELL_CMD_DISABLE_RETURN, AdapterEthernetTest, AdapterEthernetTest, show adapter ethernet information); +#endif diff --git a/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/hfa21_ethernet.c b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/hfa21_ethernet.c index 07bc3330a..ada295ecc 100644 --- a/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/hfa21_ethernet.c +++ b/APP_Framework/Framework/connection/ethernet/hfa21_ethernet/hfa21_ethernet.c @@ -72,7 +72,7 @@ static int Hfa21EthernetOpen(struct Adapter *adapter) /*step2: init AT agent*/ if (!adapter->agent) { char *agent_name = "ethernet_uart_client"; - if (EOK != InitATAgent(agent_name, adapter->fd, 512)) { + if (0 != InitATAgent(agent_name, adapter->fd, 512)) { printf("at agent init failed !\n"); return -1; } @@ -168,19 +168,20 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter) Hfa21EthernetInitAtCmd(adapter->agent); - /*Step3 : FEPHY enable phy function*/ + /*Step3 : FEPHY enable phy function*/ ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_FEPHY_CMD, HFA21_ETHERNET_OK_REPLY); if (ret < 0) { goto __exit; } + PrivTaskDelay(2000); /*Step4 : FVEW disable WANN function, ethernet work at LANN mode*/ ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_DISABLE_WANN_CMD, HFA21_ETHERNET_OK_REPLY); if (ret < 0) { goto __exit; } - /*Step5 : RELD enable F-AT cmd*/ + PrivTaskDelay(2000); ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_RELD_CMD, HFA21_ETHERNET_OK_REPLY); if (ret < 0) { goto __exit; @@ -195,13 +196,13 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter) if (ret < 0) { goto __exit; } - + PrivTaskDelay(2000); /*Step7 : AT+WANN check if get ip、netmask、gateway*/ ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_WANN_CMD, HFA21_ETHERNET_OK_REPLY); if (ret < 0) { goto __exit; } - + PrivTaskDelay(2000); /*Step8 : AT+Z reboot hfa21 device*/ ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_REBOOT_CMD, HFA21_ETHERNET_OK_REPLY); if (ret < 0) { @@ -209,7 +210,6 @@ static int Hfa21EthernetSetUp(struct Adapter *adapter) } PrivTaskDelay(10000); - return ret; __exit: @@ -365,6 +365,7 @@ static int Hfa21EthernetConnect(struct Adapter *adapter, enum NetRoleType net_ro } adapter->net_role = net_role; + PrivTaskDelay(2000); /*Step3 : AT+Z reboot hfa21 device*/ ret = AtCmdConfigAndCheck(adapter->agent, HFA21_ETHERNET_AT_REBOOT_CMD, HFA21_ETHERNET_OK_REPLY); diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config index c8f24b787..aa01305c9 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/.config @@ -25,14 +25,12 @@ CONFIG_RT_USING_HOOK=y CONFIG_RT_USING_IDLE_HOOK=y CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=256 -CONFIG_RT_USING_TIMER_SOFT=y -CONFIG_RT_TIMER_THREAD_PRIO=4 -CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +# CONFIG_RT_USING_TIMER_SOFT is not set # # kservice optimization # -# CONFIG_RT_KSERVICE_USING_STDLIB is not set +CONFIG_RT_KSERVICE_USING_STDLIB=y # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set # CONFIG_RT_USING_ASM_MEMCPY is not set CONFIG_RT_DEBUG=y @@ -186,9 +184,7 @@ CONFIG_RT_USING_PIN=y # CONFIG_RT_USING_MTD_NOR is not set # CONFIG_RT_USING_MTD_NAND is not set # CONFIG_RT_USING_PM is not set -CONFIG_RT_USING_RTC=y -# CONFIG_RT_USING_ALARM is not set -# CONFIG_RT_USING_SOFT_RTC is not set +# CONFIG_RT_USING_RTC is not set # CONFIG_RT_USING_SDIO is not set CONFIG_RT_USING_SPI=y # CONFIG_RT_USING_QSPI is not set @@ -285,7 +281,7 @@ CONFIG_BSP_USING_GPIO=y CONFIG_BSP_USING_UART=y CONFIG_BSP_USING_UART1=y CONFIG_BSP_USING_UART2=y -# CONFIG_BSP_USING_UART3 is not set +CONFIG_BSP_USING_UART3=y # CONFIG_BSP_USING_UART4 is not set # CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_SPI is not set @@ -328,14 +324,12 @@ CONFIG_CONNECTION_FRAMEWORK_DEBUG=y # CONFIG_CONNECTION_INDUSTRIAL_WLAN is not set # CONFIG_CONNECTION_ADAPTER_LORA is not set # CONFIG_CONNECTION_ADAPTER_4G is not set -CONFIG_CONNECTION_ADAPTER_NB=y -CONFIG_ADAPTER_BC28=y -CONFIG_ADAPTER_NBIOT_BC28="bc28" -CONFIG_ADAPTER_BC28_RESETPIN=100 -CONFIG_ADAPTER_BC28_PIN_DRIVER="/dev/pin" -CONFIG_ADAPTER_BC28_DRIVER="/dev/uart2" +# CONFIG_CONNECTION_ADAPTER_NB is not set # CONFIG_CONNECTION_ADAPTER_WIFI is not set -# CONFIG_CONNECTION_ADAPTER_ETHERNET is not set +CONFIG_ADAPTER_HFA21_DRIVER="/dev/uart3" +CONFIG_CONNECTION_ADAPTER_ETHERNET=y +CONFIG_ADAPTER_HFA21_ETHERNET=y +CONFIG_ADAPTER_ETHERNET_HFA21="hfa21_ethernet" # CONFIG_CONNECTION_ADAPTER_BLUETOOTH is not set # CONFIG_CONNECTION_ADAPTER_ZIGBEE is not set # CONFIG_CONNECTION_ADAPTER_5G is not set @@ -385,6 +379,7 @@ CONFIG_MAIN_KTASK_STACK_SIZE=1024 # # CONFIG_APPLICATION_SENSOR is not set # CONFIG_USING_EMBEDDED_DATABASE_APP is not set +# CONFIG_APP_USING_WEBNET is not set # # lib diff --git a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h index f5629c499..e71dc1826 100644 --- a/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h +++ b/Ubiquitous/RT-Thread_Fusion_XiUOS/aiit_board/aiit-arm32-board/rtconfig.h @@ -21,12 +21,10 @@ #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 256 -#define RT_USING_TIMER_SOFT -#define RT_TIMER_THREAD_PRIO 4 -#define RT_TIMER_THREAD_STACK_SIZE 512 /* kservice optimization */ +#define RT_KSERVICE_USING_STDLIB #define RT_DEBUG #define RT_DEBUG_COLOR @@ -123,7 +121,6 @@ #define RT_USING_I2C #define RT_USING_I2C_BITOPS #define RT_USING_PIN -#define RT_USING_RTC #define RT_USING_SPI #define RT_USING_SPI_MSD #define RT_USING_SFUD @@ -175,6 +172,7 @@ #define BSP_USING_UART #define BSP_USING_UART1 #define BSP_USING_UART2 +#define BSP_USING_UART3 #define BSP_USING_USB #define BSP_USING_STM32_USBH #define USB_BUS_NAME "usb" @@ -195,12 +193,10 @@ #define ADD_RTTHREAD_FETURES #define SUPPORT_CONNECTION_FRAMEWORK #define CONNECTION_FRAMEWORK_DEBUG -#define CONNECTION_ADAPTER_NB -#define ADAPTER_BC28 -#define ADAPTER_NBIOT_BC28 "bc28" -#define ADAPTER_BC28_RESETPIN 100 -#define ADAPTER_BC28_PIN_DRIVER "/dev/pin" -#define ADAPTER_BC28_DRIVER "/dev/uart2" +#define ADAPTER_HFA21_DRIVER "/dev/uart3" +#define CONNECTION_ADAPTER_ETHERNET +#define ADAPTER_HFA21_ETHERNET +#define ADAPTER_ETHERNET_HFA21 "hfa21_ethernet" /* Security */ From 87fade218ff751eefdf1b1dd92c54f652a21f98d Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Wed, 25 May 2022 17:37:42 +0800 Subject: [PATCH 14/15] APP_Framework/Applications/:add the compiling file about submodule --- APP_Framework/Applications/webnet/Kconfig | 92 ++++++++++++++++++++ APP_Framework/Applications/webnet/SConscript | 14 +++ 2 files changed, 106 insertions(+) create mode 100644 APP_Framework/Applications/webnet/Kconfig create mode 100644 APP_Framework/Applications/webnet/SConscript diff --git a/APP_Framework/Applications/webnet/Kconfig b/APP_Framework/Applications/webnet/Kconfig new file mode 100644 index 000000000..812518e11 --- /dev/null +++ b/APP_Framework/Applications/webnet/Kconfig @@ -0,0 +1,92 @@ +menuconfig APP_USING_WEBNET + bool "WebNet: A lightweight, customizable, embeddable Web Server for RT-Thread" + default n +if APP_USING_WEBNET + + config PKG_WEBNET_PATH + string + default "/packages/iot/webnet" + + config WEBNET_PORT + int "Server listen port" + default 80 + range 0 65535 + + config WEBNET_CONN_MAX + int "Maximum number of server connections" + default 16 + range 1 100 + + config WEBNET_ROOT + string "Server root directory" + default "/webnet" + + menu "Select supported modules" + + config WEBNET_USING_LOG + bool "LOG: Enable output log support" + default n + + config WEBNET_USING_AUTH + bool "AUTH: Enable basic HTTP authentication support" + default n + + config WEBNET_USING_CGI + bool "CGI: Enable Common Gateway Interface support" + default n + + config WEBNET_USING_ASP + bool "ASP: Enable Active Server Pages support" + default n + + config WEBNET_USING_SSI + bool "SSI: Enable Server Side Includes support" + default n + + config WEBNET_USING_INDEX + bool "INDEX: Enable list all the file in the directory support" + default n + + config WEBNET_USING_ALIAS + bool "ALIAS: Enable alias support" + default n + + config WEBNET_USING_DAV + bool "DAV: Enable Web-based Distributed Authoring and Versioning support" + default n + + config WEBNET_USING_UPLOAD + bool "UPLOAD: Enable upload file support" + default n + + config WEBNET_USING_GZIP + bool "GZIP: Enable compressed file support by GZIP" + default n + + config WEBNET_CACHE_LEVEL + int "CACHE: Configure cache level(0:disable 1:use Last-Modified 2:use Cache-Control)" + default 0 + range 0 2 + + if WEBNET_CACHE_LEVEL = 2 + + config WEBNET_CACHE_MAX_AGE + int "Cache-Control time in seconds" + default 1800 + + endif + + endmenu + + config WEBNET_USING_SAMPLES + bool "Enable webnet samples" + default n + select WEBNET_USING_ASP + select WEBNET_USING_AUTH + select WEBNET_USING_CGI + select WEBNET_USING_INDEX + select WEBNET_USING_ALIAS + select WEBNET_USING_SSI + select WEBNET_USING_UPLOAD +endif + diff --git a/APP_Framework/Applications/webnet/SConscript b/APP_Framework/Applications/webnet/SConscript new file mode 100644 index 000000000..f307e3f70 --- /dev/null +++ b/APP_Framework/Applications/webnet/SConscript @@ -0,0 +1,14 @@ +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(path, 'SConscript')) + +Return('objs') From 76039a8f0283da3d3d0eac253739269830ccbe8f Mon Sep 17 00:00:00 2001 From: chunyexixiaoyu <834670833@qq.com> Date: Wed, 25 May 2022 17:58:48 +0800 Subject: [PATCH 15/15] APP_Framework/Applications/: add the webnet submodule. --- .gitmodules | 3 +++ APP_Framework/Applications/Kconfig | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 59ee5c1d2..c90431278 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "Ubiquitous/Nuttx_Fusion_XiUOS/apps"] path = Ubiquitous/Nuttx_Fusion_XiUOS/apps url = https://code.gitlink.org.cn/wgzAIIT/incubator-nuttx-apps.git +[submodule "APP_Framework/Applications/webnet/WebNet_XiUOS"] + path = APP_Framework/Applications/webnet/WebNet_XiUOS + url = https://gitlink.org.cn/xuos/WebNet_XiUOS.git diff --git a/APP_Framework/Applications/Kconfig b/APP_Framework/Applications/Kconfig index 20429c9c7..eb11622e7 100644 --- a/APP_Framework/Applications/Kconfig +++ b/APP_Framework/Applications/Kconfig @@ -19,5 +19,5 @@ menu "Applications" source "$APP_DIR/Applications/knowing_app/Kconfig" source "$APP_DIR/Applications/sensor_app/Kconfig" source "$APP_DIR/Applications/embedded_database_app/Kconfig" - source "$APP_DIR/Applications/WebNet_XiUOS/Kconfig" + source "$APP_DIR/Applications/webnet/Kconfig" endmenu