feat: Add UART flash API and integrate with NFC write function .

-Added UART Flash API for improved NFC functionality.
-Integrated the Flash API into the NFC write function to resolve issues where NFC scans failed after 3-4 attempts.
-Ensured smooth NFC operation by addressing write-related problems.
stable
Altamash 2025-02-06 12:47:38 +05:30
parent d1f9c1eeff
commit 22f3173c41
6 changed files with 74 additions and 3 deletions

View File

@ -479,8 +479,10 @@
</toolChain>
</folderInfo>
<sourceEntries>
<entry excluding="driverlib|mspm0g3507.cmd|bs_touchAndLcd" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="driverlib"/>
<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="m0p"/>
</sourceEntries>
</configuration>
</storageModule>

View File

@ -25,11 +25,26 @@
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
<linkedResources>
<link>
<name>.meta</name>
<type>2</type>
<location>C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/.meta</location>
</link>
<link>
<name>driverlib</name>
<type>2</type>
<location>C:/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib</location>
</link>
<link>
<name>lib</name>
<type>2</type>
<location>C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/lib</location>
</link>
<link>
<name>m0p</name>
<type>2</type>
<location>C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p</location>
</link>
</linkedResources>
<variableList>
<variable>

View File

@ -201,6 +201,50 @@ encoding//Test__GNU/ivec_ESDK/ivec_esdk_nfc_pn532/src/subdir_rules.mk=UTF-8
encoding//Test__GNU/ivec_ESDK/ivec_esdk_nfc_pn532/src/subdir_vars.mk=UTF-8
encoding//Test__GNU/ivec_RTE/src/subdir_rules.mk=UTF-8
encoding//Test__GNU/ivec_RTE/src/subdir_vars.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0c110x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0c110x/subdir_vars.mk=UTF-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/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/gcc/m0p/mspm0gx51x/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_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_vars.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0c110x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0c110x/subdir_vars.mk=UTF-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/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/iar/m0p/mspm0gx51x/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_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_vars.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0c110x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0c110x/subdir_vars.mk=UTF-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/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/keil/m0p/mspm0gx51x/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_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_vars.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0c110x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0c110x/subdir_vars.mk=UTF-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/mspm0gx51x/subdir_rules.mk=UTF-8
encoding//Test__GNU/lib/ticlang/m0p/mspm0gx51x/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_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_vars.mk=UTF-8
encoding//Test__GNU/m0p/subdir_rules.mk=UTF-8
encoding//Test__GNU/m0p/subdir_vars.mk=UTF-8
encoding//Test__GNU/m0p/sysctl/subdir_rules.mk=UTF-8
encoding//Test__GNU/m0p/sysctl/subdir_vars.mk=UTF-8
encoding//Test__GNU/makefile=UTF-8
encoding//Test__GNU/objects.mk=UTF-8
encoding//Test__GNU/sources.mk=UTF-8

View File

@ -3,6 +3,7 @@
#include "ivec_ecu_nfc.h"
#include "ivec_ecu_uart.h"
#define LOG_STRING "ivec-ecu-nfc"
#include "ivec_cmplx_queue.h"
static IVEC_EcuUartHandle_s __gprv_UartNfcHandle = { 0 };
// CAN UART Buffer
#define eteCAN_UART_NFC_BUFFER_MAX_SIZE_u32 512
@ -77,7 +78,8 @@ IVEC_EcuCommonErr_e xECU_NfcWriteData(IVEC_EcuNfcConfig_s* pxNfcConfig, uint8_t*
}
if (pxNfcConfig->eNfcChannel == IVEC_ECU_NFC_UART2)
{
// vCMPLX_FifoQueueFlush((CmplxFifoQueueHandle_s*)&__gprv_xUartResponseQueue[2]);
vECU_UartFlush(pxNfcConfig->pvChannelHandle);
l_xFuncStatus = IVEC_ECUUartWrite(pxNfcConfig->pvChannelHandle, pu8Buffer, u32Length);
// l_xFuncStatus = (IVEC_EcuCommonErr_e)xMCAL_I2cWriteSlave((McalI2cHandle_s *)pxNfcConfig->pvChannelHandle, pu8Buffer, u32Length);
}

View File

@ -90,3 +90,4 @@ IVEC_ECU_UartPacketRetCode_e xECU_UartFormatPacket(IVEC_EcuUartHandle_s* pxUartH
IVEC_ECU_UartPacketRetCode_e xECU_UartReadCANDataLenOverUART(IVEC_EcuUartHandle_s* pxUartHandle, uint8_t* pu8Buf, uint32_t* u32Id);
IVEC_ECU_UartPacketRetCode_e xECU_UartReadCANDataOverUART(IVEC_EcuUartHandle_s* pxUartHandle, uint8_t* pu8Buf, uint32_t* u32Id);
int32_t iECU_UartInitiateTransmit(IVEC_EcuUartHandle_s* pxUartHandle, uint32_t u32Id, uint8_t* pu8Data, uint8_t u8Len);
void vECU_UartFlush(IVEC_EcuUartHandle_s* pxUartHandle);

View File

@ -207,6 +207,13 @@ exit:
IVEC_ECU_FUNC_EXIT(LOG_STRING, 0);
return l_eFuncStatus;
}
void vECU_UartFlush(IVEC_EcuUartHandle_s* pxUartHandle)
{
if (pxUartHandle->eUartPortNumber < IVEC_ECU_UART_PORT_MAX)
{
vCMPLX_FifoQueueFlush((CmplxFifoQueueHandle_s*)&__gprv_xUartResponseQueue[pxUartHandle->eUartPortNumber]);
}
}
/**
* @brief Reinitializes the UART interface.
*