Przeglądaj źródła

fix: ch390,长时间挂测4g转以太网,概率出现掉网

https://gitee.com/openLuat/LuatOS/issues/ID2M9C?from=project-issue
??? 3 miesięcy temu
rodzic
commit
d981ac2be5

+ 3 - 0
components/airlink/src/task/luat_airlink_spi_master_task.c

@@ -221,8 +221,11 @@ __USER_FUNC_IN_RAM__ void airlink_transfer_and_exec(uint8_t *txbuff, uint8_t *rx
     g_airlink_statistic.tx_pkg.total++;
     // 拉低片选, 准备发送数据
     luat_gpio_set(AIRLINK_SPI_CS_PIN, 0);
+    
+    luat_spi_lock(MASTER_SPI_ID);
     // 发送数据
     luat_spi_transfer(MASTER_SPI_ID, (const char *)txbuff, TEST_BUFF_SIZE, (char *)rxbuff, TEST_BUFF_SIZE);
+    luat_spi_unlock(MASTER_SPI_ID);
     // 拉高片选之前,先检查一下是否有RDY事件未处理,如果有,则全部清除
     size_t qlen = 0;
     luat_rtos_queue_get_cnt(rdy_evt_queue, &qlen);

+ 1 - 0
components/network/netdrv/src/ch390h_api.c

@@ -227,6 +227,7 @@ int luat_ch390h_write_pkg(ch390h_t* ch, uint8_t *buff, uint16_t len) {
         }
         // return 1;
     }
+    luat_ch390h_write_reg(ch, 0x55, 2);     // 发数据之前重置一下tx的内存指针
     // 写入下一个数据
     luat_ch390h_write(ch, 0x78, len, buff);
     // TCR == 0之后, 才能写入长度