Hi @CY9,
FreeMASTER Driver has guards against multiple definitions. This includes communication interface definitions (see freemaster_private.h: 298)
/* only one communication link may be selected */
#if (!(FMSTR_DISABLE)) && FMSTR_COUNT_INTERFACES > 1
#error More than one communication interface selected for FreeMASTER driver.
#endif
The compiler would through an error should there be incompatible definitions.
Also, there should be no FMSTR_InitSerial symbol generated in your project if FMSTR_USE_FLEXCAN is defined.
You can check this by inspecting the .map file content or the .elf file symbols.
This output is generated in case of CAN:
C:\NXP\S32DS.3.5\S32DS\build_tools\gcc_v6.3\gcc-6.3-arm32-eabi\arm-none-eabi\bin>readelf.exe C:\fmstr_rtd_fcan_s32k144\Debug_FLASH\fmstr_rtd_fcan_s32k144.elf -s | find "FMSTR_InitCan"
610: 00000e39 56 FUNC GLOBAL DEFAULT 3 FMSTR_InitCan
C:\NXP\S32DS.3.5\S32DS\build_tools\gcc_v6.3\gcc-6.3-arm32-eabi\arm-none-eabi\bin>readelf.exe C:\fmstr_rtd_fcan_s32k144\Debug_FLASH\fmstr_rtd_fcan_s32k144.elf -s | find "FMSTR_InitSerial"
The second command returns an empty result.
I suspect that the clean task may not delete the old elf file or debug configuration does not trigger a full rebuild. This causes the debug session to reuse an older version of the elf file.