Sfoglia il codice sorgente

特定地址写入数据防止app出错导致不能更新

Ye Jin 5 mesi fa
parent
commit
1979ad6463

+ 2 - 0
User project/3.BasicFunction/Include/giant_can.h

@@ -22,6 +22,8 @@
  *          Definitions & Macros
  *
  ****************************************/
+#define APPLICATIONSTATUS_ADDRESS (uint32_t)0x08003D000      /* Start user code status address: */
+
 #define MAXFRAME_SIZE 16
 //DriveChain Dir -for updata
 #define MC_FILEMAINDIR       0x0006

+ 11 - 0
User project/3.BasicFunction/Source/giant_can.c

@@ -48,6 +48,14 @@ void giant_Init(void)
     stGiantControlParams.WheelCircumference = 2182;//mm
     stGiantControlParams.StartMode = 2;
     stGiantControlParams.SpeedLimitation = 4500;
+    
+    ULONG ulAppStatus;
+    FLASH_voReadMoreData(APPLICATIONSTATUS_ADDRESS, (UWORD *)&ulAppStatus, 2);//ULONG-UWORD
+    if(ulAppStatus != 0x5555AAAA)
+    {
+        UWORD app_data[2] = {0xAAAA, 0x5555};//标记为有app
+        FLASH_voWriteMoreData(APPLICATIONSTATUS_ADDRESS, app_data, 2);
+    }
 }
 
 void giant_10msTask(void)
@@ -186,6 +194,9 @@ void giant_CANRxData_Process(void)
                         reply_data[5] = 0x10;
                         giant_SendExtendData(0x01, DB_ACTIVEDATA, reply_data, CAN_ReceiveFrame_tmp->rx_dlen);
                         
+                        UWORD app_data[4] = {0xAAAA, 0x5555, 0xBBBB, 0x6666};//标记为有app+下载中..
+                        FLASH_voWriteMoreData(APPLICATIONSTATUS_ADDRESS, app_data, 4);//写入数据,boot判断0x5555AAAA决定跳转app的时间,判断0x6666BBBB决定是否发送MOTINOVA-boot
+                        
                         power_stPowStateOut.powerstate = POWER_RESET;
                         power_stPowStateOut.blPowerStartupFlg = FALSE;
                     }