Per this post http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/47133.aspx or http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/t/6696.aspx, I have tried to place a variable or array at a specific location in flash on a TMS570. The only time I see the memory locations updated is if I declare the variable as a const, which doesn't work for me since I intend to change the value, but fix the location. So why does this work:
#pragma LOCATION(memPoint, 0x00005000)
const uint32 memPoint[4] = {0}; // will see all 0's at 0x00005000, but I can't change them
but not this:
#pragma LOCATION(memPoint, 0x00005000)
uint32 memPoint[4] = {0};
void main()
{
memPoint[0] = 0x12345678 // will never see the value at 0x00005000
}
I also tried editing the linker config and trying to allocate that way, but unless memPoint is a const, I never see the value at 0x00005000 get set. My MPU is configured to allow user and priveledge read/write access to the entire flash memory space as well.