Implementing XCP Basic Driver with S32 SDK

Discussion created by chuluezhong on Jul 30, 2018
Latest reply on Aug 3, 2018 by Jiri Kral

Vector Informatik offers a free implementation of XCP for MCUs that allows for DAQ (data acquisition) and STIM (data stimulation) here. My understanding from the technical reference manual is:

  1. The main driver functionality is given in XcpBasic.c and XcpBasic.h and should not be edited.
  2. xcp_par.c, xcp_par.h and xcp_cfg.h are to be customized to the desired MCU specifications and XCP functionality. In my case, I am using the MPC5744P so Big Endian mode should be enabled, for instance. DAQ should also be enabled.
  3. Code that links to FlexCAN message transmission and reception should be written (can be done with assistance of S32 SDK).
  4. Other driver code may be inserted to improve performance (e.g. DMA transfers).

I have so far tried to integrate the driver code but I cannot get the code to compile. I had to initially redefine some typedefs because the driver does not use the same semantics as in the C99 standard (so 'vuint32' instead of 'volatile uint32_t' or 'vuint32_t' for 'volatile unsigned long int').

After all of the corretions, I get the error 'make: *** [makefile:68: Executable.elf] Error 1', which does not point to any specifc C error, making it extremely hard to trace.

In the makefile itself, line 68 contains the GCC compile command 'powerpc-eabivle-gcc -o "Executable.elf" "@Executable.args" ...' so I doubt the error is in there. In addition, the makefile is autogenerated on compilation, which, I suppose, should not be edited manually.

I have tried cleaning and rebuilding the project to see if the error goes away but it does not.

Since I am not using XCP Professional or related configuration software, the code integration is done manually and there does not seem to be a lot of support on Vector's side for the free version hence I am wondering if someone has successfully integrated these libraries and if they had to overcome the above bolded error.