I've been posting to the MSP430 forum about an issue I have observed with indexing arrays of pointers on a MSP430x architecture (20-bit) part. At this point I no longer think it is a part or code issue, but all signs seem to be pointing at the compiler.
What I think I am observing is an inconsistency in the way the compiler indexes arrays of pointers when reading and writing to them in memory. The compiler allocates 4-byte wide segments of memory for each array entry (to maintain byte alignment), and when writing to an array element the compiler correctly increments the array index by multiples of 4. However when reading elements out of the array it appears that the compiler is using 3-byte multiples to index individual elements. I have more discussion and toy code that illustrates the problem I see in my other post:
http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/166/t/28501.aspx
So I am linking here to the thread over in the 430 forums in the hopes that it will get the attention of someone who can shed light on the issue.
Thanks in advance!