refactor: Improve OTA request handling in bootloader
- Device will now perform a soft reset only when VECIOT is received. - Prevents TI from booting during BMS FOTA operation.stable
parent
d1f9c1eeff
commit
aea1dda731
14
.cproject
14
.cproject
|
|
@ -380,8 +380,8 @@
|
|||
<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=mspm0g3507.lds"/>
|
||||
<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
|
||||
<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
|
||||
<listOptionValue builtIn="false" value="PRODUCTS=MSPM0-SDK:2.3.0.07;sysconfig:1.18.0;"/>
|
||||
<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={"sysconfig":["${SYSCONFIG_TOOL_INCLUDE_PATH}","${SYSCONFIG_TOOL_LIBRARY_PATH}","${SYSCONFIG_TOOL_LIBRARIES}","${SYSCONFIG_TOOL_SYMBOLS}","${SYSCONFIG_TOOL_SYSCONFIG_MANIFEST}"],"MSPM0-SDK":["${COM_TI_MSPM0_SDK_INCLUDE_PATH}","${COM_TI_MSPM0_SDK_LIBRARY_PATH}","${COM_TI_MSPM0_SDK_LIBRARIES}","${COM_TI_MSPM0_SDK_SYMBOLS}","${COM_TI_MSPM0_SDK_SYSCONFIG_MANIFEST}"]}"/>
|
||||
<listOptionValue builtIn="false" value="PRODUCTS=MSPM0-SDK:2.3.0.07;sysconfig:1.21.0;"/>
|
||||
<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={"MSPM0-SDK":["${COM_TI_MSPM0_SDK_INCLUDE_PATH}","${COM_TI_MSPM0_SDK_LIBRARY_PATH}","${COM_TI_MSPM0_SDK_LIBRARIES}","${COM_TI_MSPM0_SDK_SYMBOLS}","${COM_TI_MSPM0_SDK_SYSCONFIG_MANIFEST}"],"sysconfig":["${SYSCONFIG_TOOL_INCLUDE_PATH}","${SYSCONFIG_TOOL_LIBRARY_PATH}","${SYSCONFIG_TOOL_LIBRARIES}","${SYSCONFIG_TOOL_SYMBOLS}","${SYSCONFIG_TOOL_SYSCONFIG_MANIFEST}"]}"/>
|
||||
<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.416761197" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="GNU_9.2.1:Linaro" valueType="string"/>
|
||||
|
|
@ -400,8 +400,8 @@
|
|||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.INCLUDE_PATH.1406977247" name="Include paths (-I)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${COM_TI_MSPM0_SDK_INCLUDE_PATH}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/ivec_ECU/ivec_ecu_nfc/inc}"/>
|
||||
<listOptionValue builtIn="false" value="${SYSCONFIG_TOOL_INCLUDE_PATH}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/ivec_ECU/ivec_ecu_nfc/inc}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/Generated Codes}"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/Application/Inc}"/>
|
||||
|
|
@ -420,10 +420,10 @@
|
|||
<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/arm-none-eabi/include"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/Core/Include}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/Core/Source}"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/mspm0g3507_mcal/ivec_BSW/ivec_bsw_common/inc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/mspm0g3507_mcal/ivec_BSW/ivec_bsw_nfc/inc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/mspm0g3507_mcal/ivec_ESDK/ivec_cmplx_gptimer/inc}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/mspm0g3507_mcal/ivec_ESDK/ivec_esdk_nfc_pn532/inc}""/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/mspm0g3507_mcal/ivec_BSW/ivec_bsw_common/inc}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/mspm0g3507_mcal/ivec_BSW/ivec_bsw_nfc/inc}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/mspm0g3507_mcal/ivec_ESDK/ivec_cmplx_gptimer/inc}"/>
|
||||
<listOptionValue builtIn="false" value="${workspace_loc:/mspm0g3507_mcal/ivec_ESDK/ivec_esdk_nfc_pn532/inc}"/>
|
||||
</option>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.OPT_LEVEL.764173782" name="Optimization Level" superClass="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.OPT_LEVEL.OPT_FOR_DEBUG" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.FUNCTION_SECTIONS.343631336" name="Place each function into its own section (-ffunction-sections)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_GNU_9.0.compilerID.FUNCTION_SECTIONS" value="true" valueType="boolean"/>
|
||||
|
|
|
|||
|
|
@ -532,7 +532,7 @@ IVEC_McalCommonErr_e xMCAL_MCANTx(IVEC_McalCanHandle_s* pxCanHandle, uint32_t u3
|
|||
uint32_t u32Bytes)
|
||||
{
|
||||
/* Ensure that the MCAN instance is CANFD0 */
|
||||
if((pxCanHandle->pMCAN != CANFD0) && (pxCanHandle->u16Speed == IVEC_MCAL_CAN_BR_500 || pxCanHandle->u16Speed == IVEC_MCAL_CAN_BR_250))
|
||||
if(pxCanHandle->pMCAN != CANFD0)
|
||||
{
|
||||
return IVEC_MCAL_STATUS_UNSUPPORTED;
|
||||
}
|
||||
|
|
@ -676,8 +676,9 @@ IVEC_McalCommonErr_e xMCAL_MCANGetErrorStatus(IVEC_McalCanHandle_s* pxCanHandle,
|
|||
DL_MCAN_getErrCounters(CANFD0, &l_xCounter);
|
||||
|
||||
/* Return the status based on various error conditions */
|
||||
return (
|
||||
(g_xHeaderStat.busOffStatus)) ? commonMCAL_FAIL : commonMCAL_SUCCESS;
|
||||
|
||||
return ( (g_xHeaderStat.lastErrCode == DL_MCAN_ERR_CODE_ACK_ERROR) || \
|
||||
(g_xHeaderStat.busOffStatus) ) ? IVEC_MCAL_STATUS_ERROR : IVEC_MCAL_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -110,9 +110,9 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
|
|||
|
||||
DL_MCAN_reset(MCAN0_INST);
|
||||
|
||||
|
||||
DL_GPIO_enablePower(GPIOA);
|
||||
DL_GPIO_enablePower(GPIOB);
|
||||
|
||||
// #if UART_PIN_SELECTION == 1
|
||||
// DL_UART_Main_reset(UART2);
|
||||
// DL_UART_Main_enablePower(UART2);
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@
|
|||
#include "ivec_rte.h"
|
||||
|
||||
// UART Handles
|
||||
IVEC_EcuUartHandle_s g_xUartHandle;
|
||||
IVEC_EcuCANHandle_s g_xCanHandle;
|
||||
IVEC_EcuUartHandle_s g_xUartHandle = {0};
|
||||
IVEC_EcuCANHandle_s g_xCanHandle = {0};
|
||||
|
||||
// Configuration Macros
|
||||
#define rteCONFIG_BASIL_BATTERY_SMART_u8 1
|
||||
|
|
@ -26,7 +26,7 @@ IVEC_EcuCANHandle_s g_xCanHandle;
|
|||
#define rteCONFIG_MOTHER_BOARD_u8 3
|
||||
|
||||
// UART Configuration
|
||||
#define rteUART_PIN_SELECTION_u8 rteCONFIG_MOTHER_BOARD_u8
|
||||
#define rteUART_PIN_SELECTION_u8 rteCONFIG_BASIL_u8
|
||||
|
||||
uint8_t g_pu8UartBuffer[ecuUART_MAX_PACKET_LENGTH_u8] = {0};
|
||||
volatile uint32_t g_u32CanId = 0x1FFFFFFF;
|
||||
|
|
@ -50,6 +50,7 @@ static uint8_t __gprv_U8Index = 0;
|
|||
extern ExtU_socTouchDisplay_T socTouchDisplay_U;
|
||||
extern ExtY_socTouchDisplay_T socTouchDisplay_Y;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Sets the state of the MCU temperature data pin (SDA) for TM1650.
|
||||
*
|
||||
|
|
@ -221,6 +222,10 @@ void vRTE_AppInit(void)
|
|||
#endif
|
||||
|
||||
vRTE_InitUartCanEcho();
|
||||
// Uncomment for UART-to-CAN transmission, if required
|
||||
// iECU_UartInitiateTransmit(&g_xUartHandle, 0x6, NULL, 0);
|
||||
// xECU_WriteDataOverCAN(&g_xCanHandle, NULL , 0x6, 1, 0);
|
||||
|
||||
|
||||
#if rteUART_PIN_SELECTION_u8 == 3
|
||||
vRTE_NfcInit();
|
||||
|
|
@ -459,6 +464,8 @@ void vRTE_ProcessUartData(void)
|
|||
|
||||
l_eRetCode= xECU_UartReadCANDataOverUART(&g_xUartHandle,g_pu8UartBuffer,&l_u32Id);
|
||||
l_u32Id &= 0x1fffffff;
|
||||
uint16_t l_u16Len = 0;
|
||||
|
||||
if(l_eRetCode > -1)
|
||||
{
|
||||
if(l_eRetCode > 0 && l_u32Id == 0x00)
|
||||
|
|
@ -545,8 +552,11 @@ void vRTE_ProcessCanData(void)
|
|||
volatile uint8_t l_u8TxBurstMessages = 0;
|
||||
while( xECU_CANGetData(&g_xCanHandle, &l_xCanBuff) == commonECU_SUCCESS )
|
||||
{
|
||||
|
||||
if( (l_xCanBuff.u32UlId == 0x16) && (l_xCanBuff.u8Data[0] = 'V') && \
|
||||
(l_xCanBuff.u8Data[1] == 'E') && (l_xCanBuff.u8Data[2] == 'C'))
|
||||
(l_xCanBuff.u8Data[1] == 'E') && (l_xCanBuff.u8Data[2] == 'C') && \
|
||||
(l_xCanBuff.u8Data[3] == 'I') && (l_xCanBuff.u8Data[4] == 'O') && \
|
||||
(l_xCanBuff.u8Data[5] == 'T'))
|
||||
{
|
||||
vMCAL_softReset();
|
||||
}
|
||||
|
|
|
|||
4
main.c
4
main.c
|
|
@ -17,7 +17,6 @@
|
|||
#include "string.h"
|
||||
#include "ivec_rte.h"
|
||||
|
||||
//extern McalUartHandle_s g_xUartHandle;
|
||||
|
||||
static void vApp_TimerConfig(void)
|
||||
{
|
||||
|
|
@ -39,8 +38,7 @@ int main(void)
|
|||
vApp_TimerConfig();
|
||||
|
||||
vRTE_AppInit();
|
||||
// Uncomment for UART-to-CAN transmission, if required
|
||||
// vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x6, NULL, 0);
|
||||
|
||||
|
||||
while(1)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue