|
@@ -167,7 +167,7 @@ void CA_RxData_Process(CAN_Buf_TypeDef*ptCANRx)
|
|
|
|
|
|
downLoad.packageSize = *(uint32_t *)(frameCrcBuff + 15);
|
|
|
|
|
|
- //FLASH_Block_Erase();
|
|
|
+ /*擦除FLASH,剩余最后1k没有擦除,保留其他功能使用**/
|
|
|
FLASH_If_Erase(APPLICATION_ADDRESS);
|
|
|
|
|
|
/*清空flash写标志*/
|
|
@@ -345,21 +345,22 @@ void sendAck(void)
|
|
|
|
|
|
void sendUpdateAck( CD_UINT16 cmd ,CD_UINT8 packageNum )
|
|
|
{
|
|
|
- static CD_UINT8 ackBuff[14]={ FRAME_HEAD1,FRAME_HEAD2,0x07,0x15,0x0C,0x03,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0xF0 };
|
|
|
+ static CD_UINT8 ackBuff[15]={ FRAME_HEAD1,FRAME_HEAD2,0x07,0x15,0x0C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0 };
|
|
|
CD_UINT32 crc32Ret;
|
|
|
//static CD_UINT8 ucInit_flag = 0;
|
|
|
uint8_t i;
|
|
|
|
|
|
ackBuff[6] = (CD_UINT8)(cmd >>8);
|
|
|
ackBuff[7] = (CD_UINT8)cmd;
|
|
|
- ackBuff[8] = packageNum;
|
|
|
+ ackBuff[8] = (CD_UINT8)(packageNum>>8);
|
|
|
+ ackBuff[9] = (CD_UINT8)packageNum;
|
|
|
|
|
|
crc32Ret = CRC32_Calculate( (CD_UINT8 *)ackBuff,9 );
|
|
|
|
|
|
- ackBuff[9] = (CD_UINT8)( crc32Ret >> 24 );
|
|
|
- ackBuff[10] = (CD_UINT8)( crc32Ret >> 16 );
|
|
|
- ackBuff[11] = (CD_UINT8)( crc32Ret >> 8 );
|
|
|
- ackBuff[12] = (CD_UINT8)( crc32Ret );
|
|
|
+ ackBuff[10] = (CD_UINT8)( crc32Ret >> 24 );
|
|
|
+ ackBuff[11] = (CD_UINT8)( crc32Ret >> 16 );
|
|
|
+ ackBuff[12] = (CD_UINT8)( crc32Ret >> 8 );
|
|
|
+ ackBuff[13] = (CD_UINT8)( crc32Ret );
|
|
|
|
|
|
/*发送第1包数据*/
|
|
|
hcan.pTxMsg->StdId = CAN_RxBuf_Struct1.ID;
|
|
@@ -379,9 +380,9 @@ void sendUpdateAck( CD_UINT16 cmd ,CD_UINT8 packageNum )
|
|
|
}
|
|
|
|
|
|
/*发送第2包数据*/
|
|
|
- hcan.pTxMsg->DLC = 4;
|
|
|
+ hcan.pTxMsg->DLC = 5;
|
|
|
|
|
|
- for( i=0;i<4;i++)
|
|
|
+ for( i=0;i<5;i++)
|
|
|
{
|
|
|
hcan.pTxMsg->Data[i] = ackBuff[i+10];
|
|
|
}
|