From c96a602721e060a0691c2c3b8a991f4753bdaf89 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Thu, 21 Nov 2024 15:51:38 +0800 Subject: [PATCH] =?utf8?q?=E5=8F=96=E6=B6=88=E6=89=80=E6=9C=89custom=5Futi?= =?utf8?q?ls=E9=87=8C=E5=8A=A0=E7=9A=84irq=5Flock=E3=80=82=E8=A7=A3?= =?utf8?q?=E5=86=B3ipc=20error=E9=80=A0=E6=88=90=E7=9A=84=20=E8=93=9D?= =?utf8?q?=E7=89=99=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../drivers/peripheral/utils/custom_utils.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 372093009..964a930ac 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -229,10 +229,10 @@ void uapi_poweroff_device(void) reset_deal_with_fs(); osDelay(50); // uapi_sys_shipmode(0); - uint32_t irq = osal_irq_lock(); + // uint32_t irq = osal_irq_lock(); poweroff_bt_dsp_display(); mcu_poweroff(); - osal_irq_restore(irq); + // osal_irq_restore(irq); } @@ -406,7 +406,7 @@ extern void bluetooth_enable_all(void); bool start_custom_ble_service(void) { //加锁避免bt 初始化失败 - uint32_t irq_sts = osal_irq_lock(); + // uint32_t irq_sts = osal_irq_lock(); #ifdef SUPPORT_BLE_SERVICE PRINT("start custom protocol classic bt ble service !\r\n"); bluetooth_enable_all(); @@ -415,7 +415,7 @@ bool start_custom_ble_service(void) { uapi_dev_runtime_set_bt_powerstat(1); } - osal_irq_restore(irq_sts); + // osal_irq_restore(irq_sts); return true; } @@ -2460,7 +2460,7 @@ errcode_t custom_i2c_read_regs(uint16_t slaveAddr, uint16_t reg, int regLength, data.receive_buf = readData; data.receive_len = readDataSize; - uint32_t irq_sts = osal_irq_lock(); + // uint32_t irq_sts = osal_irq_lock(); for (retry = 0; retry < CUSTOM_I2C_TIME_MAX; retry++) { ret = uapi_i2c_master_writeread(busIndex, slaveAddr, &data); @@ -2471,8 +2471,8 @@ errcode_t custom_i2c_read_regs(uint16_t slaveAddr, uint16_t reg, int regLength, if (ret != ERRCODE_SUCC) { PRINT("i2cRead data read fail! busIndex %d, slaveAddr 0x%x, regaddr 0x%X,reglength %d, ret=0x%x\n",busIndex, slaveAddr,reg,regLength, ret); } + // osal_irq_restore(irq_sts); osal_kfree(write_data); - osal_irq_restore(irq_sts); error: cnt = pm_veto_get_id_cnt(PM_ID_GSENSOR); @@ -2527,8 +2527,9 @@ errcode_t custom_i2c_write_reg(uint16_t slaveAddr, uint16_t reg, int regLength, data.receive_len = 0; - uint32_t irq_sts = osal_irq_lock(); - + //irqlock 要求不可以超过1ms,因此在此处是不合理的,取消此操作。 超过15ms会造成ipc error,蓝牙重启 + // uint32_t irq_sts = osal_irq_lock(); + for (retry = 0; retry < CUSTOM_I2C_TIME_MAX; retry++) { ret = uapi_i2c_master_write(busIndex, slaveAddr, &data); if (ret == ERRCODE_SUCC) { @@ -2539,7 +2540,7 @@ errcode_t custom_i2c_write_reg(uint16_t slaveAddr, uint16_t reg, int regLength, PRINT("i2cWrite cywee data write fail! ret=0x%x\n", ret); } - osal_irq_restore(irq_sts); + // osal_irq_restore(irq_sts); free_mem: osal_kfree(write_data); error: -- 2.17.1