Browse Source

增加了看门狗设置,修改了版本信息发送的Bug

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
1b37c1956e
3 changed files with 39 additions and 9 deletions
  1. 8 1
      ARMCC/Makefile
  2. 2 6
      src/TcpTask.c
  3. 29 2
      src/bsp_custom.c

+ 8 - 1
ARMCC/Makefile

@@ -10,7 +10,7 @@ THIRDPARTY_WAKAAMA_ENABLE   = n
 THIRDPARTY_ERCOAP_ENABLE    = y
 THIRDPARTY_TINYDTLS_ENABLE  = y
 THIRDPARTY_MBEDTLS_ENABLE   = y
-
+FLASH_MONITOR_ENABLE = y
 CFLAGS_INC        +=  -I ../inc
 
 
@@ -30,3 +30,10 @@ obj-y             += PLAT/project/$(TARGET)/apps/qx_app/src/app.o \
 					PLAT/project/$(TARGET)/apps/qx_app/src/sensor.o
 
 include $(TOP)/PLAT/tools/scripts/Makefile.rules
+
+ifeq ($(FLASH_MONITOR_ENABLE), y)
+#enable wdt
+CFLAGS += -DWDT_FEATURE_ENABLE=1  -DFS_FILE_OPERATION_STATISTIC
+else
+CFLAGS += -DWDT_FEATURE_ENABLE=1
+endif

+ 2 - 6
src/TcpTask.c

@@ -563,7 +563,7 @@ static void TcpDataInfoAssembleSend()
         VerMsgToTcpInfo.VerInfo.BmsInfo = BMS_INFO;
         VerMsgToTcpInfo.VerInfo.DataModuleType = DATA_MODULE_TYPE;
         VerMsgToTcpInfo.CRC = bcc_chk((UINT8 *)&VerMsgToTcpInfo, sizeof(VerMsgToTcpInfo)-1 );
-        if(UartBattInfoRecvFlag==TRUE&&NB_Fota_update_flag==FALSE)
+        if(NB_Fota_update_flag==FALSE)
         {
             len = tcpipConnectionSend(socContext.id, (UINT8 *)&VerMsgToTcpInfo, sizeof(VerMsgToTcpInfo), 0, 0, 0);
             if(len>0)
@@ -572,15 +572,11 @@ static void TcpDataInfoAssembleSend()
             }
             else
             {
+                send_counter = 0;
                 TcpSendLen = 0xFE & TcpSendLen;
                 sendQueueMsg(QMSG_ID_NW_IP_SUSPEND, 0);
             }
         }
-        else
-        {
-            send_counter = 1;
-            return;
-        }
     }
     if(send_counter==0)//发送本次文件中的调试信息
     {

+ 29 - 2
src/bsp_custom.c

@@ -13,7 +13,10 @@
 #include "slpman_ec616.h"
 #include "plat_config.h"
 #include "debug_log.h"
-
+#if (WDT_FEATURE_ENABLE==1)
+#include "wdt_ec616.h"
+#define WDT_TIMEOUT_VALUE     (20)            // in unit of second, shall be less than 256s
+#endif
 #ifdef BL_FILE_LOG
 extern uint8_t lockoutState;
 #endif
@@ -132,7 +135,25 @@ static void PMU_WakeupPadInit(void)
 
     slpManSetWakeupPad(cfg);
 }
+#if (WDT_FEATURE_ENABLE == 1)
 
+/*
+ *  WDT Initialize, wdt timeout value is 20s
+ *  Parameter:   none
+ */
+void BSP_WdtInit(void)
+{
+    // Config WDT clock, source from 32.768KHz and divide by WDT_TIMEOUT_VALUE
+    GPR_SetClockSrc(GPR_WDGFuncClk, GPR_WDGClkSel_32K);
+    GPR_SetClockDiv(GPR_WDGFuncClk, WDT_TIMEOUT_VALUE);
+
+    wdt_config_t wdtConfig;
+    wdtConfig.mode = WDT_InterruptResetMode;
+    wdtConfig.timeoutValue = 32768U;
+    WDT_Init(&wdtConfig);
+}
+
+#endif
 /*
  *  custom board related init
  *  Parameter:   none
@@ -167,7 +188,13 @@ void BSP_CustomInit(void)
     }
 #endif
 #endif
-
+#if (WDT_FEATURE_ENABLE == 1)
+    if(BSP_GetPlatConfigItemValue(PLAT_CONFIG_ITEM_START_WDT))
+    {
+        BSP_WdtInit();
+        WDT_Start();
+    }
+#endif
 	slpManGetPMUSettings();				
 
 	PMU_WakeupPadInit();