I have found that the "aligned" attribute doesn't appear to work properly. I am using CW 11.0 for the S12ZVC processor.
volatile uint32_t ADC0CommandList __attribute__ ((aligned(4))); //max 256 bytes = 64 commands per 4-byte entries
volatile uint16_t ADC0ResultList __attribute__ ((aligned(4))); //max 128 bytes = 64 results per 2-byte entries
This results in ADC0Command List not being located on a 4 byte boundary (as shown in the map file).
ADC0CommandList 1252 2C 44 12 .common
In the end, I had to add some padding in order to force this variable to the correct place. Any ideas?