소스 검색

增加了唤醒源检查,增加了强制投票

CHENJIE-PC\QiXiang_CHENJIE 4 년 전
부모
커밋
ac8a9c8e7c
2개의 변경된 파일14개의 추가작업 그리고 4개의 파일을 삭제
  1. 12 2
      src/app.c
  2. 2 2
      src/bsp_custom.c

+ 12 - 2
src/app.c

@@ -172,6 +172,7 @@ static void Main_Task(void* arg)
     UINT16 Tcp_index  = 0;
     uint32_t sleep_index = 0;
     int32_t inParam = 0xAABBCCDD;
+    slpManWakeSrc_e Wakeup_source;
     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
     NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
     NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
@@ -197,14 +198,19 @@ static void Main_Task(void* arg)
     #ifdef USING_PRINTF
             printf("slpstate:%d \n",slpstate);
     #endif
+    Wakeup_source =  slpManGetWakeupSrc();//获取唤醒源
+    #ifdef USING_PRINTF
+            printf("Wakeup_source:%d \n",Wakeup_source);
+    #endif
     if((slpstate == SLP_SLP2_STATE) || (slpstate == SLP_HIB_STATE))
     {
-        PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
+        PROC_MAIN_STATE_SWITCH(PROCESS_STATE_WORK);
     }
     else
     {
         PROC_MAIN_STATE_SWITCH(PROCESS_STATE_WORK);
     }
+
     //线程初始化完成
     while (true)
     {
@@ -269,7 +275,7 @@ static void Main_Task(void* arg)
                         printf("[%d]We Can Check Vote State, state=%d, cnt=%d\r\n",__LINE__,State,cnt);
                     #endif						
                 }
-                slpManPlatVoteEnableSleep(MainSlpHandler, SLP_SLP2_STATE); 
+                slpManPlatVoteForceEnableSleep(MainSlpHandler, SLP_SLP2_STATE); //增加强制投票
                 if(slpManCheckVoteState(MainSlpHandler, &State, &cnt)==RET_TRUE)
                 {
                     #ifdef USING_PRINTF
@@ -284,6 +290,10 @@ static void Main_Task(void* arg)
                 #endif
                 FaultDisplay(LED_TURN_ON);
                 slpManDeepSlpTimerStart(deepslpTimerID,300000); 
+                slpManSlpState_t slpstate = slpManPlatGetSlpState();
+                #ifdef USING_PRINTF
+                    printf("which slpstate can go now :%d \n",slpstate);
+                #endif
                 while(1)
                 {
                     osDelay(30000/portTICK_PERIOD_MS);

+ 2 - 2
src/bsp_custom.c

@@ -109,8 +109,8 @@ static void PMU_WakeupPadInit(void)
 {
     const padWakeupSettings_t cfg =
     {
-        false, true,             // group0 posedge, negedge
-        true, true,             // group1 posedge, negedge
+        true, true,             // group0 posedge, negedge
+        false, false,             // group1 posedge, negedge
         false, false,             // group2 posedge, negedge
     };