From fcee100231d507b6b78442fdaea99314103f24a9 Mon Sep 17 00:00:00 2001 From: SnickerSun Date: Wed, 27 Nov 2024 16:17:52 +0800 Subject: [PATCH] patch_615_1104_pm_sleep --- .../target_config/brandy/target_config.py | 8 ++++---- .../drivers/drivers/driver/rtc_unified/rtc.c | 4 ++-- .../chips/brandy/pm/service/pm_sleep.c | 7 +++---- patch_615_1104_pm_sleep.txt | 19 +++++++++++++++++++ 4 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 patch_615_1104_pm_sleep.txt diff --git a/code/sdk/build/config/target_config/brandy/target_config.py b/code/sdk/build/config/target_config/brandy/target_config.py index eb231f350..dcebb306b 100644 --- a/code/sdk/build/config/target_config/brandy/target_config.py +++ b/code/sdk/build/config/target_config/brandy/target_config.py @@ -53,8 +53,8 @@ target_template = { "USE_CMSIS_OS", "USE_LITEOS", "VERSION_STANDARD", "_ALL_SOURCE", "__LITEOS__", "CONFIG_NV_SUPPORT_SINGLE_CORE_SYSTEM", 'CONFIG_NV_FEATURE_SUPPORT', 'CONFIG_SPI_SUPPORT_LPC', "RISCV_70", 'SUPPORT_DIAG_V2_PROTOCOL', 'CONFIG_PINCTRL_SUPPORT_IE', 'CONFIG_TIMER_SUPPORT_HIGH_PRECISION', - 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', "DUMP_MEM_SUPPORT", "DUMP_REG_SUPPORT", "SUPPORT_DFX_EXCEPTION", 'CONFIG_SPI_SUPPORT_DMA', + 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', 'CONFIG_RTC_SUPPORT_LPM', 'CONFIG_I2C_SUPPORT_DMA', 'CONFIG_I2C_SUPPORT_LPC', 'CONFIG_EFUSE_CLK_EN'], 'defines_set': ['chip_defines', 'version_defines'], 'ram_component': ['brandy_std_lds', 'liteos_207_1_0', 'partition', 'chip_brandy', 'driver_header', 'nand_flash', @@ -89,11 +89,11 @@ target_template = { "LIBBUILD_VERSION", "LIBCMD", "LIBCONNECTIVITY", "LIBCPU_LOAD", "LIBCPU_UTILS", "LIBCRC", "LIBDFX", "LIBLIB_UTILS", "LIBLOG", "LIBLOG_READER", "LIBOSAL", "LIBPANIC", "LIBTEST_COMMON", "MASTER_LOAD_SLAVE", "SRCPACKGE_BUILD", "SUPPORT_CXX", 'CONFIG_TIMER_SUPPORT_HIGH_PRECISION', - 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', "USE_CMSIS_OS", "VERSION_STANDARD", "_ALL_SOURCE", "__FREERTOS__", "RISCV_70", "CONFIG_NV_SUPPORT_SINGLE_CORE_SYSTEM", 'CONFIG_NV_FEATURE_SUPPORT', 'CONFIG_SPI_SUPPORT_LPC', "CONFIG_XIP_ENABLE_READ_OVERTIME", 'SUPPORT_DIAG_V2_PROTOCOL', 'CONFIG_PINCTRL_SUPPORT_IE', "DUMP_MEM_SUPPORT", "DUMP_REG_SUPPORT", "SUPPORT_DFX_EXCEPTION", 'CONFIG_SPI_SUPPORT_DMA', + 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', 'CONFIG_RTC_SUPPORT_LPM', 'CONFIG_I2C_SUPPORT_DMA', 'FREERTOS_DEBUG', 'CONFIG_I2C_SUPPORT_LPC', 'CONFIG_EFUSE_CLK_EN'], 'defines_set': ['chip_defines', 'version_defines'], 'ram_component': ['brandy_std_lds', 'chip_brandy', 'brandy_app_standard', 'driver_header', @@ -169,7 +169,7 @@ target_template = { "LIBOSAL", "LIBPANIC", "LIBTEST_COMMON", "MASTER_LOAD_SLAVE", 'CONFIG_SPI_SUPPORT_LPC', "SRCPACKGE_BUILD", "SUPPORT_CXX", "USE_CMSIS_OS", 'SUPPORT_DIAG_V2_PROTOCOL', "VERSION_STANDARD", "_ALL_SOURCE", "__FREERTOS__", "CONFIG_UART_SUPPORT_TX", "OSALLOG_DISABLE", - "CONFIG_UART_SUPPORT_RX", "RISCV_70", 'CONFIG_PINCTRL_SUPPORT_IE', + "CONFIG_UART_SUPPORT_RX", "RISCV_70", 'CONFIG_PINCTRL_SUPPORT_IE', "-:UPG_CFG_DEBUG_PRINT_ENABLED=1", 'CONFIG_I2C_SUPPORT_LPC', 'CONFIG_DFX_SUPPORT_TRANSMIT_FILE=0', 'CONFIG_DFX_SUPPORT_SOC_LOG=0', 'CONFIG_DFX_SUPPORT_DIAG_BEAT_HEART=0', 'CONFIG_DFX_SUPPORT_DIAG_VRTTUAL_SHELL=0', 'CONFIG_DFX_SUPPORT_DIAG_CONNECT_BLE=0', 'CONFIG_DFX_SUPPORT_OFFLINE_LOG_FILE=0', @@ -213,7 +213,7 @@ target_template = { "RISCV_70", "CONFIG_XIP_ENABLE_READ_OVERTIME", 'SUPPORT_DIAG_V2_PROTOCOL', 'CONFIG_SPI_SUPPORT_LPC', "SUPPORT_GPU_JPEG", "SUPPORT_GPU_GMMU", "SUPPORT_GPU_OPENVG", 'CONFIG_PINCTRL_SUPPORT_IE', 'CONFIG_SPI_SUPPORT_DMA', 'CONFIG_I2C_SUPPORT_DMA', 'CONFIG_UART_SUPPORT_DMA', - 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', + 'CONFIG_RTC_START_DELAY_SUPPORT', 'CONFIG_RTC_START_DELAY_USING_TCXO', 'CONFIG_RTC_SUPPORT_LPM', 'CONFIG_I2C_SUPPORT_LPC', 'CONFIG_EFUSE_CLK_EN', 'CONFIG_TIMER_SUPPORT_HIGH_PRECISION'], 'defines_set': ['chip_defines', 'version_defines'], 'ram_component': ['brandy_std_lds', 'liteos_207_1_0', 'chip_brandy', 'driver_header', 'nand_flash', diff --git a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c index 851f58908..d161ba2ee 100644 --- a/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c +++ b/code/sdk/drivers/drivers/driver/rtc_unified/rtc.c @@ -660,8 +660,8 @@ uint32_t uapi_rtc_get_latest_timeout(void) } nxt_count = cur_count < nxt_count ? cur_count : nxt_count; } - uint32_t nxt_ms = rtc_porting_cycle_2_ms(nxt_count); - return nxt_ms; + uint32_t nxt_us = rtc_porting_cycle_2_us(nxt_count); + return nxt_us; } errcode_t uapi_rtc_suspend(uintptr_t val) diff --git a/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c b/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c index 2d7d18b56..e1f6194f9 100644 --- a/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c +++ b/code/sdk/middleware/chips/brandy/pm/service/pm_sleep.c @@ -14,6 +14,7 @@ #include "pm_lpc.h" #include "pm_core.h" #include "pm_clocks.h" +#include "hal_rtc.h" #include "arch_encoding.h" #include "arch_barrier.h" #include "debug_print.h" @@ -297,7 +298,7 @@ void pm_enter_sleep(uint32_t sleep_ms_val) return; } rtc_times /= PM_OS_US_TO_MS; - if (sleep_ms > rtc_times && rtc_times != 0 && sleep_ms <= g_pm_sleep_threshold) { + if (sleep_ms > rtc_times && rtc_times != 0) { sleep_ms = rtc_times; } if (sleep_ms <= PM_SLEEP_THRESHOLD_WFI_ONLY_MS || pm_get_sleep_veto()) { @@ -314,7 +315,7 @@ void pm_enter_sleep(uint32_t sleep_ms_val) pm_enter_deepsleep_set_flag(); status = pm_os_irq_lock(); - if ((sleep_ms <= g_pm_sleep_threshold) || pm_get_sleep_veto()) { + if ((sleep_ms <= g_pm_sleep_threshold) || pm_get_sleep_veto() || hal_rtc_get_int_status(0) == 1) { pm_enter_deepsleep_cancel_flag(); pm_enter_light_sleep(); } else { @@ -345,8 +346,6 @@ void pm_set_mcu_dynamic_power_flag(uint8_t flag) void uapi_pm_enter_sleep(void) { - uint32_t status = pm_os_irq_lock(); uint32_t sleep_ms = pm_os_get_sleep_ms(); pm_enter_sleep(sleep_ms); - pm_os_irq_restore(status); } diff --git a/patch_615_1104_pm_sleep.txt b/patch_615_1104_pm_sleep.txt new file mode 100644 index 000000000..a4bb7a49e --- /dev/null +++ b/patch_615_1104_pm_sleep.txt @@ -0,0 +1,19 @@ +【补丁名称】patch_615_1104_pm_sleep +【基础版本】b615 + 0906 + 1009 +1029 +【修复问题】 +PLT合入内容 + 1、深睡前如果有rtc中断产生则进浅睡 + 2、去掉低功耗流程外层中断锁保护 +【修改影响】NA + +【使用方法】 + 1、合入0906补丁 + 2、合入1009补丁 + 3、合入1029补丁 + 4、合入patch_615_1104_pm_sleep +【自测情况】 + 自验证范围: + 全功能冒烟 + 自验证target: + Native-js、target3 rc版本 +【是否合入版本】根据测试结果确定 -- 2.17.1