feat: Send ACK before jumping to bootloader

- Added functionality to send an acknowledgment (ACK) before executing the bootloader jump.
- Ensures the sender receives confirmation before transitioning to the bootloader.
stable
Rakshita 2025-03-10 18:37:19 +05:30
parent 4704529a3b
commit e3f185fa26
4 changed files with 23 additions and 3 deletions

View File

@ -480,7 +480,6 @@
</folderInfo> </folderInfo>
<sourceEntries> <sourceEntries>
<entry excluding="m0p|lib|.meta|driverlib|mspm0g3507.cmd|bs_touchAndLcd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> <entry excluding="m0p|lib|.meta|driverlib|mspm0g3507.cmd|bs_touchAndLcd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=".meta"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="lib"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="m0p"/> <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="m0p"/>
</sourceEntries> </sourceEntries>

View File

@ -38,12 +38,12 @@
<link> <link>
<name>lib</name> <name>lib</name>
<type>2</type> <type>2</type>
<location>C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/lib</location> <location>C:/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/lib</location>
</link> </link>
<link> <link>
<name>m0p</name> <name>m0p</name>
<type>2</type> <type>2</type>
<location>C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p</location> <location>C:/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p</location>
</link> </link>
</linkedResources> </linkedResources>
<variableList> <variableList>

View File

@ -207,6 +207,8 @@ encoding//Test__GNU/lib/gcc/m0p/mspm0g1x0x_g3x0x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0gx51x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0gx51x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0gx51x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0l111x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0l111x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/gcc/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8
@ -217,6 +219,8 @@ encoding//Test__GNU/lib/iar/m0p/mspm0g1x0x_g3x0x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0gx51x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0gx51x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0gx51x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0l111x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0l111x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/iar/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8
@ -227,6 +231,8 @@ encoding//Test__GNU/lib/keil/m0p/mspm0g1x0x_g3x0x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0gx51x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0gx51x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0gx51x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0l111x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0l111x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/keil/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8
@ -237,6 +243,8 @@ encoding//Test__GNU/lib/ticlang/m0p/mspm0g1x0x_g3x0x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0g1x0x_g3x0x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0gx51x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0gx51x/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0gx51x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0l111x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0l111x/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0l11xx_l13xx/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0l11xx_l13xx/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8 encoding//Test__GNU/lib/ticlang/m0p/mspm0l122x_l222x/subdir_rules.mk=UTF-8

View File

@ -468,6 +468,19 @@ void vRTE_ProcessUartData(void)
if(l_eRetCode > -1) if(l_eRetCode > -1)
{ {
if( (l_u32Id == 0x16) && (g_pu8UartBuffer[ecuUART_PKT_HEADER_u8] == 'V') && \
(g_pu8UartBuffer[ecuUART_PKT_HEADER_u8 + 1] == 'E') &&(g_pu8UartBuffer[ecuUART_PKT_HEADER_u8 + 2] == 'C') && \
(g_pu8UartBuffer[ecuUART_PKT_HEADER_u8 + 3] == 'I') && (g_pu8UartBuffer[ecuUART_PKT_HEADER_u8 + 4] == 'O') && \
(g_pu8UartBuffer[ecuUART_PKT_HEADER_u8 + 5] == 'T'))
{
uint32_t u32Id = 0x36; // ID to pass
uint8_t pu8Data[1] = {0x79}; // Data array containing 0x79
uint8_t u8Len = sizeof(pu8Data); // Length of data array
iECU_UartInitiateTransmit(&g_xUartHandle, u32Id, pu8Data, u8Len);
iECU_UartInitiateTransmit(&g_xUartHandle, 0x8, NULL, 0);
vMCAL_softReset();
}
if(l_eRetCode > 0 && l_u32Id == 0x00) if(l_eRetCode > 0 && l_u32Id == 0x00)
{ {
uint32_t l_u32Baudrate = 0; uint32_t l_u32Baudrate = 0;