Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r10e34f7e0737649310fc321f505e0210a7591450 -rfd4a30ee0f905408c7f323995492763cc0765407 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 10e34f7e0737649310fc321f505e0210a7591450) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision fd4a30ee0f905408c7f323995492763cc0765407) @@ -3678,7 +3678,34 @@ serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_NOT_REQUIRED ); } +/*********************************************************************//** + * @brief + * The handleUIHDResetInServiceModeRequest function handles the UI request + * to reset HD in service mode + * @details Inputs: none + * @details Outputs: none + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleUIHDResetInServiceModeRequest( MESSAGE_T* message ) +{ + BOOL result = FALSE; + // Verify payload length + if ( ( 0 == message->hdr.payloadLen ) && ( MODE_SERV == getCurrentOperationMode() ) ) + { + // S/w reset of processor + result = TRUE; // Reset will prevent this from getting transmitted though +#ifndef _VECTORCAST_ + systemREG1->SYSECR = (0x2) << 14; // Reset processor +#endif + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/