eTPU_C is allocating my variables all over the place. Some are allocated out of order! What's wrong?


The compiler has specific rules about allocating variables, temporary locations, and registers.

Globals are allocated in low memory locations (from 0x0000 up). Locals are allocated in high locations (from 0x0400 down). These locations are reported in the listing file, at the left-hand side of declarations.

If possible, the compiler will use a register instead of a memory location. Registers are assigned special pseudo-locations inside the compiler. In the listing file, the values appearing for declarations allocated from variables represent these internal pseudo-locations, even if they appear out of order or overlap other variables.