Kaynağa Gözat

V3.0.0.0测试

CHENJIE-PC\QiXiang_CHENJIE 3 yıl önce
ebeveyn
işleme
6433a1fa90
11 değiştirilmiş dosya ile 233 ekleme ve 75 silme
  1. 13 6
      inc/AppConfig.h
  2. 2 6
      inc/AppFunc.h
  3. 3 1
      inc/AppSignal.h
  4. 3 0
      inc/bsp_custom.h
  5. 68 9
      src/AppFunc.c
  6. 4 0
      src/AppSignal.c
  7. 3 3
      src/AppTaskCan.c
  8. 48 14
      src/AppTaskMain.c
  9. 50 10
      src/AppTaskTcp.c
  10. 2 1
      src/AppTaskUart.c
  11. 37 25
      src/bsp_custom.c

+ 13 - 6
inc/AppConfig.h

@@ -24,16 +24,22 @@
 #define	DRVSWVERSION		        0x01050000          //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 
 #define APP_CONFIG_FILE_NAME                "qxappconfig.nvm"
-#define APP_DATAINFO_FILE_NAME              "qxappDataInfo.nvm"
+#define APP_DATAINFO_FILE_NAME              "qxappDataInfo3.nvm"
 #define BATT_SN_LEN                17
-
 #define BMS_OTHER_TEMP          2
+
+
+#define BATT_IDLE_SYM         0x00    //静置
+#define BATT_CHARGE_SYM 		0x02    //充电
+#define BATT_DISCHARGE_SYM      0x01    //放电
+#define BATT_MOVE_SYM	    0x01    //移动
+#define BATT_NO_MOVE_SYM 		0x00    //静止
+
 #define TCP_START_SYM1			0x23
 #define TCP_START_SYM2			0x23
 #define TCP_CMD_SYM				0x02	//实时信息上报是0x02
 #define TCP_HEART_SYM           0x07    //心跳包标志
 #define TCP_ANS_SYM 			0xFE
-
 /*-------以下为下行指令定义区----------*/
 #define TCP_QUERY_SYM				0x80
 #define TCP_SETCMD_SYM				0x81
@@ -62,10 +68,11 @@ typedef struct _AppConfigDataType
     BOOL   appDataModify;		//数据更改标志位
 	UINT8  battSN[BATT_SN_LEN]; //电池SN号码
    	BOOL   isBattLocked;		//0:not locked;	1:locked
-    UINT8  BattCellCount;       //电池电压串数
+    UINT8  chargEndWorkTime;     //
     UINT8  BattTempCount;       //电池温度个数
-    UINT8  sleepTime;
-    UINT16 HwVersion;
+    UINT8  BattCellCount;       //电池电压串数
+    UINT8  BmsHwVersion;
+    UINT8  BmsSwVersion;
     UINT32 BLSwVersion;
     UINT32 DrvSwVersion;
     UINT32 AppSwVersion;        //APP软件版本

+ 2 - 6
inc/AppFunc.h

@@ -13,11 +13,7 @@
 #include "mem_map.h"
 #include "AppConfig.h"
 #include "ec_tcpip_api.h"
-#include "AppSignal.h"
-#define getbit(x,y)     ((x) >> (y)&1)                        //获取x的第y位的数值
-#define setbit(x,y)     x|=(1<<y)                             //x的第y位置1
-#define clrbit(x,y)     x&=~(1<<y)                            //x的第y位置0    
-
+#include "AppSignal.h"  
 typedef struct _Fota_Type
 {
     BOOL    Fota_update_error ;
@@ -29,7 +25,7 @@ typedef struct _Fota_Type
     UINT8   Fota_CRC ;
 
 }Fota_Type;
-
+void BattWorkDelayFunc(UINT8 battWorkCurrentState);
 UINT8 bcc_chk(UINT8* data, UINT8 length);
 void LEDDisplay(void);
 BOOL uartBattInfoDecode(UINT8* dataPtr);

+ 3 - 1
inc/AppSignal.h

@@ -14,7 +14,6 @@
 //declear the bool vars
 extern volatile BOOL NB_Fota_update_flag;
 extern volatile BOOL BMS_Fota_update_flag;
-extern volatile BOOL CanInterruptFlag;
 
 extern BOOL downloadReady;
 
@@ -62,6 +61,9 @@ extern UINT8	UDSSubServiceActionCode[2];  // uds 子服务状态
 extern UINT8    GpsFlag;
 extern UINT8    BuzzerControl;
 extern UINT8    BattWorkStateDelay;
+
+extern UINT8   PadInterrupt ;
+
 //declear the UINT16 vars
 extern UINT16	battCellU[28];
 extern UINT16	minCellVol;

+ 3 - 0
inc/bsp_custom.h

@@ -7,6 +7,9 @@ extern "C" {
 
 #include "bsp.h"
 #include "hal_module_adapter.h"
+#define getbit(x,y)     ((x) >> (y)&1)                        //获取x的第y位的数值
+#define setbit(x,y)     x|=(1<<y)                             //x的第y位置1
+#define clrbit(x,y)     x&=~(1<<y)                            //x的第y位置0  
 void BSP_CustomInit(void);
 
 #ifdef __cplusplus

+ 68 - 9
src/AppFunc.c

@@ -9,6 +9,53 @@
 #include "AppFunc.h"
 #include "numeric.h"
 #include "hal_module_adapter.h"
+void BattWorkDelayFunc(UINT8 battWorkCurrentState)
+{
+	static UINT16 workDelayCounter = 0;
+	if(battWorkCurrentState==BATT_IDLE_SYM&&BattWorkStateDelay==BATT_DISCHARGE_SYM)//从放电转静置 10s延时
+	{
+		workDelayCounter++;
+		if(workDelayCounter>=10)
+		{
+			workDelayCounter==0;
+			BattWorkStateDelay = battWorkCurrentState;
+		}
+	}
+	else if(battWorkCurrentState==BATT_IDLE_SYM&&BattWorkStateDelay==BATT_CHARGE_SYM)//从充电转静置1min延时
+	{
+		workDelayCounter++;
+		if(workDelayCounter>=60)
+		{
+			workDelayCounter==0;
+			BattWorkStateDelay = battWorkCurrentState;
+		}
+	}
+	else if(battWorkCurrentState==BATT_DISCHARGE_SYM)//从 充电或者静置 转放电 3s延时
+	{
+		workDelayCounter++;
+		if(workDelayCounter>=3)
+		{
+			workDelayCounter==0;
+			BattWorkStateDelay = battWorkCurrentState;
+		}
+	}
+	else if(battWorkCurrentState==BATT_CHARGE_SYM)//从 放电或者静置 转充电 1min延时
+	{
+		workDelayCounter++;
+		if(workDelayCounter>=60)
+		{
+			workDelayCounter==0;
+			BattWorkStateDelay = battWorkCurrentState;
+		}
+	}
+	else
+	{
+		BattWorkStateDelay = battWorkCurrentState;
+		workDelayCounter = 0;
+	}
+	return;
+}
+
 UINT8 LookUpRTtable(UINT32 R_value)
 {
 	UINT8 Temp_Table1[23] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
@@ -521,6 +568,12 @@ BOOL uartBattInfoDecode(UINT8* dataPtr)
     bmsHwVersion = dataPtr[(0x08+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1]; 
     bmsSwVersion = dataPtr[(0x08+BATT_CELL_VOL_NUM+TEMP_NUM)*2];    
 
+	if(AppNVMData.BmsHwVersion!=bmsHwVersion || AppNVMData.BmsSwVersion!=bmsSwVersion )
+	{
+		AppNVMData.appDataModify = TRUE;
+		AppNVMData.BmsHwVersion = bmsHwVersion;
+		AppNVMData.BmsSwVersion = bmsSwVersion;
+	}
     temp = ((dataPtr[(0x09+BATT_CELL_VOL_NUM+TEMP_NUM)*2+1])>>1)&0x03;    
     battMOSSwitchState = ((temp&0x01)<<1)|((temp&0x02)>>1);	
     if(AppDataInfo.BattLock==TRUE)
@@ -1051,15 +1104,21 @@ static void setDefaultAppConfigData(void)
 {
     UINT8  i = 0;
     memset(&AppNVMData, 0x00, sizeof(AppConfigDataType));
-	AppNVMData.appDataModify = FALSE;
-	char sn[BATT_SN_LEN];
-	appGetSNNumSync(sn);
-	memcpy(AppNVMData.battSN,sn,BATT_SN_LEN);
-	AppNVMData.EOLState = EOLSTATE; 
-    AppNVMData.AppSwVersion = APPSWVERSION;
-	AppNVMData.BattCellCount = 17;//默认17串
-	AppNVMData.BattTempCount = 5;//默认5个温度
-    return;
+	AppNVMData.appDataModify = TRUE;		//数据更改标志位
+	// char sn[BATT_SN_LEN];
+	// appGetSNNumSync(sn);
+	memcpy(AppNVMData.battSN,DEFAULT_SN,BATT_SN_LEN);
+   	AppNVMData.isBattLocked = 0;		//0:not locked;	1:locked
+    AppNVMData.chargEndWorkTime = 30;     //
+    AppNVMData.BattTempCount = 5;       //电池温度个数
+    AppNVMData.BattCellCount = 17;       //电池电压串数
+    AppNVMData.BmsHwVersion = 0;
+    AppNVMData.BmsSwVersion = 0;
+    AppNVMData.BLSwVersion = BLSWVERSION;
+    AppNVMData.DrvSwVersion = DRVSWVERSION;
+    AppNVMData.AppSwVersion = APPSWVERSION;        //APP软件版本
+	AppNVMData.EOLState = EOLSTATE;
+	return;
 }
 /***********************************************************************************************************************
  * 运行数据初始化函数

+ 4 - 0
src/AppSignal.c

@@ -61,6 +61,10 @@ UINT8	UDSSubServiceActionCode[2]  = {0};  // uds 子服务状态
 UINT8   GpsFlag = 0;                  //GPS 数据有效标志位
 UINT8   BuzzerControl = 0;          //蜂鸣器控制状态
 UINT8   BattWorkStateDelay = 0;     //电池工作状态(延时处理后的)
+
+UINT8   PadInterrupt = 0x00;           //每个bit代表一个中断标志
+
+
 /**declear the uint16 vars**/
 UINT16	battCellU[28] = {0xFFFF};    //电池包单体电压
 UINT16	minCellVol = 0xFFFF;    //最小单体电压

+ 3 - 3
src/AppTaskCan.c

@@ -72,7 +72,7 @@ static void CanTask()
 						PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_SLEEP);
 						break;
 					}
-					if(CanInterruptFlag==TRUE||ConvertCounter>=10)
+					if(getbit(PadInterrupt,0)==1||ConvertCounter>=10)
 					{
 						PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_WORK);
 						break;
@@ -131,7 +131,7 @@ static void CanTask()
 				if(delayconuter>=100 && msgFlag == 0)
 				{
 					delayconuter=0;
-					CanInterruptFlag=FALSE;
+					clrbit(PadInterrupt,0);
 					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);
 				}				
 				break;
@@ -141,7 +141,7 @@ static void CanTask()
 	            HAL_Can_Sleep();   
 				while (TRUE)
 				{
-					if (CanInterruptFlag==TRUE||(slpManGetWakeupPinValue() & 0x1)==0x00)//判断是否产生中断,产生中断则退出延时
+					if (getbit(PadInterrupt,0)==1||(slpManGetWakeupPinValue() & 0x1)==0x00)//判断是否产生中断,产生中断则退出延时
 					{
 						PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_INIT);
 						break;

+ 48 - 14
src/AppTaskMain.c

@@ -30,7 +30,7 @@ static void appAfterSlp2(void *pdata, slpManLpState state);
 UINT8 MainSlpHandler          = 0xff;//主线程睡眠句柄
 static void MainTask(void* arg)
 {
-    
+    UINT8 PadInterrupt1_clrCounter = 0;
     TimerHandle_t monitor_timer = NULL;
     TimerHandle_t work_timer = NULL;
     TimerHandle_t sleep_timer = NULL;
@@ -62,10 +62,6 @@ static void MainTask(void* arg)
         AppDataInfo.appDataModify = TRUE;
         AppDataInfo.SysReStartCount = AppDataInfo.SysReStartCount + 1;
     }
-    #ifdef DEBUGLOG
-        Debug_printf("wkp:%d,%d\n",Wakeup_source,AppDataInfo.SysReStartCount);
-    #endif
-    //
     xTimerStart(monitor_timer, 0);
     while(true)
     {
@@ -82,15 +78,23 @@ static void MainTask(void* arg)
             {
                 osDelay(100);
                 PROC_APP_STATE_SWITCH(WORK);
-                BattWorkStateDelay = battWorkState;//暂时未做延时处理
-                if(WorkTimerEnd&&CanInterruptFlag==FALSE&&BMS_Fota_update_flag==FALSE&&TCPWorkState==0x00)//从工作转换为监听的条件
+                //状态转换延时
+                if(TimeCounter%10==0)
+                {
+                    BattWorkDelayFunc(battWorkState);
+                    #ifdef USING_PRINTF1
+                        printf("[%d]-%x",__LINE__,battWorkState);
+                        printf("[%d]%x - %x - %x - %x - %x\n",__LINE__,WorkTimerEnd,BMS_Fota_update_flag,TCPWorkState,BattWorkStateDelay,PadInterrupt);
+                    #endif
+                }
+                if((WorkTimerEnd==TRUE)&&(BMS_Fota_update_flag==FALSE)&&(TCPWorkState==0x00)&&(BattWorkStateDelay==BATT_IDLE_SYM)&&(PadInterrupt==0x00))//从工作转换为监听的条件
                 {
                     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_LISTEN);
                     xTimerStop(work_timer,0);
                     xTimerStart(sleep_timer, 0);
                     WorkTimerEnd = FALSE;
                 }
-                if(TcpErrorcount>=10 && CanInterruptFlag==FALSE)
+                if(TcpErrorcount>=10 &&PadInterrupt==0x00)
                 {
                     AppDataInfo.appDataModify = true;
                     AppDataInfo.SysReStartCount = AppDataInfo.SysReStartCount +1;
@@ -114,8 +118,18 @@ static void MainTask(void* arg)
             }
             case PROCESS_STATE_LISTEN:
             {
-                osDelay(100);
                 PROC_APP_STATE_SWITCH(LISTEN);
+                osDelay(100);
+                if (TimeCounter%10==0 && PadInterrupt1_clrCounter<15)
+                {
+                    PadInterrupt1_clrCounter++;
+                    clrbit(PadInterrupt,1);
+                    if(PadInterrupt1_clrCounter==15)
+                    {
+                        NVIC_EnableIRQ(PadWakeup1_IRQn);
+                        clrbit(PadInterrupt,1);
+                    }
+                }
                 if(AppDataInfo.appDataModify)
                 {
                     SaveAppData();
@@ -124,11 +138,31 @@ static void MainTask(void* arg)
                 {
                     SaveAppConfig();
                 }
-                if(SleepTimerEnd||TCPWorkState==1||CanInterruptFlag==TRUE)//从监听转换为工作的条件
+                #ifdef USING_PRINTF1
+                    printf("[%d]%x - %x - %x - %x\n",__LINE__,SleepTimerEnd,BMS_Fota_update_flag,TCPWorkState,PadInterrupt);
+                #endif
+                if((SleepTimerEnd)||(TCPWorkState==1)||(PadInterrupt!=0x00))//从监听转换为工作的条件
                 {
                     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
                     xTimerStop(sleep_timer,0);
                     SleepTimerEnd = FALSE;
+                    PadInterrupt = 0x00;
+                    PadInterrupt1_clrCounter = 0;
+                    NVIC_DisableIRQ(PadWakeup1_IRQn);
+                }
+                if(NB_Fota_update_flag)
+                {
+                    if(AppDataInfo.appDataModify)
+                    {
+                        SaveAppData();
+                    }
+                    if(AppNVMData.appDataModify)
+                    {
+                        SaveAppConfig();
+                    }
+                    appSetCFUN(0);
+                    osDelay(1000);
+                    EC_SystemReset();
                 }
                 break;
             }
@@ -150,15 +184,15 @@ void monitor_timer_callback(TimerHandle_t xTimer)
 }
 void work_timer_callback(TimerHandle_t xTimer)
 {
-    #ifndef USING_PRINTF
-        printf("work_timer_callback\n")
+    #ifdef USING_PRINTF
+        printf("work_timer_callback\n");
     #endif
     WorkTimerEnd = true;
 }
 void sleep_timer_callback(TimerHandle_t xTimer)
 {
-    #ifndef USING_PRINTF
-        printf("sleep_timer_callback\n")
+    #ifdef USING_PRINTF
+        printf("sleep_timer_callback\n");
     #endif
     SleepTimerEnd = true;
 }

+ 50 - 10
src/AppTaskTcp.c

@@ -38,7 +38,7 @@ static void TcpTask(void* arg)
     }
     if(TcpRecvHandle == NULL)
 	{
-		TcpRecvHandle = osMessageQueueNew(1,sizeof(TcpipConnectionRecvDataInd*), NULL);
+		TcpRecvHandle = osMessageQueueNew(3,sizeof(TcpipConnectionRecvDataInd*), NULL);
 	}
     osDelay(5000);//等待驻网延时5s
     while (true)
@@ -226,7 +226,6 @@ static void TcpDataInfoAssembleSend()
     UINT16 DataLen=0;
     UINT8 BattSendFreq=30;
     UINT8 GpsSendFreq=30;
-    UINT8 WorkState=0;
 
     UINT16 year;
     UINT8 month,day,hour,minute,sec;
@@ -234,7 +233,43 @@ static void TcpDataInfoAssembleSend()
 	UINT8 i = 0;
 	INT8 len = -1;
     UINT8 *SendBuffer = NULL;
-    WorkState = battWorkState;   //电池工作模式的延迟转换由Maintask负责,发送频率调节由tcp负责
+    //电池工作模式的延迟转换由Maintask负责,发送频率调节由tcp负责
+    switch (BattWorkStateDelay)
+    {
+        case BATT_IDLE_SYM:
+        {
+            BattSendFreq = AppDataInfo.BattInfoSendFreqLow;
+            GpsSendFreq = AppDataInfo.PosInfoSendFreqLow;
+            break;
+        }
+        case BATT_CHARGE_SYM:
+        {
+            BattSendFreq = AppDataInfo.BattInfoSendFreqHigh;
+            GpsSendFreq = AppDataInfo.PosInfoSendFreqLow;
+            break;
+        }
+        case BATT_DISCHARGE_SYM:
+        {
+            BattSendFreq = AppDataInfo.BattInfoSendFreqNomal;
+            GpsSendFreq = AppDataInfo.PosInfoSendFreqHigh;
+            break;
+        }
+        default:
+        {
+            BattSendFreq = AppDataInfo.BattInfoSendFreqNomal;
+            GpsSendFreq = AppDataInfo.PosInfoSendFreqNormal;
+            break;
+        }
+    }
+    if(getbit(PadInterrupt,3)==1||getbit(PadInterrupt,4)==1)//有震动产生,提高位置信息发送频率
+    {
+        GpsSendFreq = AppDataInfo.PosInfoSendFreqHigh;
+        if(send_counter%10==0)
+        {
+            clrbit(PadInterrupt,3);
+            clrbit(PadInterrupt,4);
+        }
+    }
     if(send_counter%BattSendFreq==0 && send_counter!=0)
     {
         UINT16 ErrorTemp = 0x00;
@@ -465,12 +500,12 @@ static void TcpDataInfoAssembleSend()
         VerMsgToTcpInfo.VerInfo.msgCollectionTimeUTC[5] = UTC8TimeTcp.second & 0xFF;
         memcpy(VerMsgToTcpInfo.VerInfo.ICCID,iccid,20);
         memcpy(VerMsgToTcpInfo.VerInfo.IMEI,imei,15);
-		VerMsgToTcpInfo.VerInfo.BMSHwVersion[0] = bmsHwVersion /10;
-		VerMsgToTcpInfo.VerInfo.BMSHwVersion[1] = bmsHwVersion%10;
+		VerMsgToTcpInfo.VerInfo.BMSHwVersion[0] = AppNVMData.BmsHwVersion/10;
+		VerMsgToTcpInfo.VerInfo.BMSHwVersion[1] = AppNVMData.BmsHwVersion%10;
 		VerMsgToTcpInfo.VerInfo.BMSSwVersion[0] = 0;
 		VerMsgToTcpInfo.VerInfo.BMSSwVersion[1] = 0;
-		VerMsgToTcpInfo.VerInfo.BMSSwVersion[2] = bmsSwVersion/10;
-		VerMsgToTcpInfo.VerInfo.BMSSwVersion[3] = bmsSwVersion%10;
+		VerMsgToTcpInfo.VerInfo.BMSSwVersion[2] = AppNVMData.BmsSwVersion/10;
+		VerMsgToTcpInfo.VerInfo.BMSSwVersion[3] = AppNVMData.BmsSwVersion%10;
         VerMsgToTcpInfo.VerInfo.NBHwVersion[0] = (HWVERSION>>8)& 0xFF;
         VerMsgToTcpInfo.VerInfo.NBHwVersion[1] = (HWVERSION)& 0xFF;
         VerMsgToTcpInfo.VerInfo.BLVersion[0] = (BLSWVERSION>>24)& 0xFF;
@@ -507,6 +542,11 @@ static void TcpDataInfoAssembleSend()
     {
         DebugMsgtoTcpType DebugMsgInfo;
         UINT16 BufferLen = 0;
+        slpManWakeSrc_e Wakeup_source;
+        Wakeup_source =  slpManGetWakeupSrc();//获取唤醒源
+        #ifdef DEBUGLOG
+            Debug_printf("[%d,%d,%d]\n",Wakeup_source,AppDataInfo.SysReStartCount,AppDataInfo.AccMileage);
+        #endif
         BufferLen = Debug_GetSize();
         if(BufferLen==0)
         {
@@ -517,7 +557,7 @@ static void TcpDataInfoAssembleSend()
         {
             Debug_Del_Logfile();
             #ifdef DEBUGLOG
-                Debug_printf("Sys:%d\n",AppDataInfo.SysReStartCount);
+                Debug_printf("oversize-Sys:%d\n",AppDataInfo.SysReStartCount);
             #endif
             BufferLen = Debug_GetSize();
         }
@@ -614,7 +654,7 @@ static void TcpDataInfoRecvHandle()
     UINT8 TcpCmdAnswer[31];
     TcpCmdAnswer[0] = TCP_START_SYM1;
     TcpCmdAnswer[1] = TCP_START_SYM1;
-    if(TcpRecvData != NULL)
+    if(TcpRecvData!=NULL&&TcpRecvData->length!=0)
     {
         Ptr = TcpRecvData->data;
         if((*(Ptr+0)==TCP_START_SYM1)&&(*(Ptr+1)==TCP_START_SYM2))//服务器起始信息
@@ -656,7 +696,7 @@ static void TcpDataInfoRecvHandle()
                             AppDataInfo.BattLock = TRUE;
                             tcpipConnectionSend(socContext.id,TcpCmdAnswer,31,0,0,0);
                         }
-                        else                //0x02代表解锁
+                        else if(*(Ptr+31)==0x02)              //0x02代表解锁
                         {
                             AppDataInfo.appDataModify = TRUE;
                             AppDataInfo.BattLock = FALSE;

+ 2 - 1
src/AppTaskUart.c

@@ -73,7 +73,7 @@ static void UartTask(void* arg)
                 osDelay(100);
                 if(TimeCounter%10==0 && gProcess_app==WORK)
                 {
-                    #ifdef USING_PRINTF
+                    #ifdef USING_PRINTF1
                         printf("[%d]BattLock:%X,BattLockState:%X\n",__LINE__,AppDataInfo.BattLock,(UartAnswerData.data[(0x1B+AppNVMData.BattCellCount + AppNVMData.BattTempCount + BMS_OTHER_TEMP)*2+1])&0x03);    
                     #endif
                     if(osMessageQueueGet(UartWriteCmdHandle,&UartWriteData,0,0)==osOK&&UartRecvFlag==1)
@@ -177,6 +177,7 @@ static void UartTask(void* arg)
                         UartRecvFlagCounter = 0;
                     }
                 }
+				clrbit(PadInterrupt,1);
                 PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_IDLE);
                 #ifdef USING_PRINTF1
 					printf("[%d]Uart_Recv_buffer-%d: ",__LINE__,Uart_Recv_LEN);

+ 37 - 25
src/bsp_custom.c

@@ -221,10 +221,10 @@ void BSP_CustomInit(void)
 
 	PMU_WakeupPadInit();
 	NVIC_EnableIRQ(PadWakeup0_IRQn);//can
-	NVIC_EnableIRQ(PadWakeup1_IRQn);//rx
+	NVIC_DisableIRQ(PadWakeup1_IRQn);//rx
 	NVIC_EnableIRQ(PadWakeup2_IRQn);//lock
-	NVIC_EnableIRQ(PadWakeup3_IRQn);//gsensor
-	NVIC_EnableIRQ(PadWakeup4_IRQn);//gsensor
+	NVIC_DisableIRQ(PadWakeup3_IRQn);//gsensor
+	NVIC_DisableIRQ(PadWakeup4_IRQn);//gsensor
 	NVIC_EnableIRQ(PadWakeup5_IRQn);//wakeup2
 	CheckLockOutState();
 	slpManStartWaitATTimer();
@@ -256,7 +256,7 @@ void Pad0_WakeupIntHandler(void)
     }
     else
     {
-        CanInterruptFlag = TRUE;
+        setbit(PadInterrupt,0);
     }
     #ifdef USING_PRINTF1
         printf("-[%d]-[%s]\n",__LINE__, __FUNCTION__);
@@ -266,51 +266,63 @@ void Pad0_WakeupIntHandler(void)
 void Pad1_WakeupIntHandler(void)
 {
     if(slpManExtIntPreProcess(PadWakeup1_IRQn)==false)
+    {
         return;
+    }
+    else
+    {
+        #ifdef USING_PRINTF1
+        printf("-[%d]\n",__LINE__);
+        #endif
+        setbit(PadInterrupt,1);
+    }
 }
 
 void Pad2_WakeupIntHandler(void)
 {
      CheckLockOutState();
     if(slpManExtIntPreProcess(PadWakeup2_IRQn)==false)
+    {
         return;
-
+    }
+    else
+    {
+        setbit(PadInterrupt,2);
+    }
 }
 
 void Pad3_WakeupIntHandler(void)
 {
     if(slpManExtIntPreProcess(PadWakeup3_IRQn)==false)
+    {
         return;
-
-    // add custom code below //
-#ifdef USING_PRINTF1
-	printf("[%d]PadWakeup3_IRQn\r\n",__LINE__);
-// #else	
-//     ECOMM_TRACE(UNILOG_PLA_APP, pad3_Wk, P_SIG, 0, "PadWakeup3_IRQn");
-#endif
-
- 	
-
-
-
+    }
+    else
+    {
+        setbit(PadInterrupt,3);
+    }
 }
 
 void Pad4_WakeupIntHandler(void)
 {
     if(slpManExtIntPreProcess(PadWakeup4_IRQn)==false)
+    {
         return;
-    // add custom code below //
-#ifdef USING_PRINTF1
-	printf("[%d]PadWakeup3_IRQn\r\n",__LINE__);
-// #else	
-
-//     ECOMM_TRACE(UNILOG_PLA_APP, pad4_Wk, P_SIG, 0, "PadWakeup4_IRQn");
-#endif
-
+    }
+    else
+    {
+        setbit(PadInterrupt,4);
+    }
 }
 
 void Pad5_WakeupIntHandler(void)
 {
     if(slpManExtIntPreProcess(PadWakeup5_IRQn)==false)
+    {
         return;
+    }
+    else
+    {
+        setbit(PadInterrupt,5);
+    }
 }