I need to place variables manually. How can I do this?


You can place variables in their declaration:

type identifier @ address;

Simply append an @ symbol and a valid address. Since eTPU_C can calculate constant expressions at compile time, you can use relative addresses:

void xyz (int32 a,b,c)
  int16 myarg1 @ &a;
  int16 myarg2 @ &a + 2;
  int8  myarg3 @ &b;
  int8  myarg4 @ &b + 1;

	  /* ... */
[Important] Important

eTPU_C does not take such explicitly-placed variables into account when allocating memory for other variables. Check the listing file to ensure variables do not conflict.

Because eTPU is a multi-processor system (host and one or two engines), placing variables can avoid conflicts that semaphores or parameter coherency cannot resolve.