Browse Source

更新fastboot与MCU工程(iram版本和sram-nos版本)
使能rtc watchdog(超时2s)以优化唤醒后低概率卡死在bootrom等场景的问题。

helen 1 tháng trước cách đây
mục cha
commit
b39ee53b76

+ 2 - 2
amt630hv160-fastboot/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_rtc.c

@@ -105,12 +105,12 @@ void RTC_PowerDown(int fastboot)
 {
 	u32 val = RTC->PARA;
 
+	RTC_SetWatchdog(RTC_WDT_2S, 1);
+
 	val &= ~(0xffff << 16);
 	if (fastboot) {
-		RTC_SetWatchdog(RTC_WDT_2S, 1);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val | 0x5a << 24 | 0xa5 << 16);
 	} else {
-		RTC_SetWatchdog(RTC_WDT_2S, 0);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val);
 	}
 

+ 0 - 6
amt630hv160-fastboot/src/main.c

@@ -46,10 +46,6 @@ static void prvSetupHardware( void )
 	/* Config the Clock */
 	SYSCLK_Init();
 
-#ifdef _RTC
-	RTC_SendCmd(RTC_Clk32KSel, 0);
-#endif
-
 #ifdef _CANFD0
 	CANFD0_SetBusClk(CANFD0_FREQ);
 #endif
@@ -78,8 +74,6 @@ void entry_rtc_sleep(u32 time_s)
 
 int main(void)
 {
-	RTC_SetWatchdog(RTC_WDT_2S, 0);
-
 	//1.8V低电压复位
 	//LPR_TH 00:<1.45V 01:<1.41V 10:<1.38V 11:<1.35V
 	SYSCTRL->ANA_REG[0] &= ~7;

+ 1 - 2
amt630hv160-mcu/amt630hv160-mcu-iram/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_rtc.c

@@ -117,13 +117,12 @@ void RTC_PowerDown(int fastboot)
 
 	RTC_SendCmd(RTC_SleepMode, 1);
 	RTC_SendCmd(RTC_ISOForce, 0);
+	RTC_SetWatchdog(RTC_WDT_2S, 1);
 
 	val &= ~(0xffff << 16);
 	if (fastboot) {
-		RTC_SetWatchdog(RTC_WDT_2S, 1);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val | 0x5a << 24 | 0xa5 << 16);
 	} else {
-		RTC_SetWatchdog(RTC_WDT_2S, 0);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val);
 	}
 

+ 2 - 0
amt630hv160-mcu/amt630hv160-mcu-iram/src/main.c

@@ -92,6 +92,8 @@ static void prvSetupHardware( void )
 	printf("gpu_pll=%d\n", CLK_GetPLLFreq(SYSCTRL->GPUPLL_CFG));
 
 #ifdef _RTC
+	//唤醒后关wdt,默认为关
+	RTC_SetWatchdog(RTC_WDT_2S, 0);
 	RTC_SendCmd(RTC_Clk32KSel, 0);
 #endif
 #ifdef _SPI0

+ 1 - 2
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/ArkmicroFiles/libcpu-amt630hv160/source/amt630hv160_rtc.c

@@ -117,13 +117,12 @@ void RTC_PowerDown(int fastboot)
 
 	RTC_SendCmd(RTC_SleepMode, 1);
 	RTC_SendCmd(RTC_ISOForce, 0);
+	RTC_SetWatchdog(RTC_WDT_2S, 1);
 
 	val &= ~(0xffff << 16);
 	if (fastboot) {
-		RTC_SetWatchdog(RTC_WDT_2S, 1);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val | 0x5a << 24 | 0xa5 << 16);
 	} else {
-		RTC_SetWatchdog(RTC_WDT_2S, 0);
 		RTC_WriteReg(RTC_PARA, &RTC->PARA, val);
 	}
 

+ 2 - 0
amt630hv160-mcu/amt630hv160-mcu-sram-nos/src/main.c

@@ -92,6 +92,8 @@ static void prvSetupHardware( void )
 	printf("gpu_pll=%d\n", CLK_GetPLLFreq(SYSCTRL->GPUPLL_CFG));
 
 #ifdef _RTC
+	//唤醒后关wdt,默认为关
+	RTC_SetWatchdog(RTC_WDT_2S, 0);
 	RTC_SendCmd(RTC_Clk32KSel, 0);
 #endif
 #ifdef _SPI0