Why does my non-zero initialized global data appear as all zeros when I view memory in my debugger?
If you have initialized global variables located in RAM, you need to use the "Automatic Data Initialization" feature of the compiler and linker. This feature creates a copy of your initialized data values, relocates and stores them in ROM and copies them back into RAM at startup using the crtsi version of the startup routine. For more details please refer to the section “Automatic Data Initialization" in the Programming Environments chapter of the compiler User’s manual.