ICODE and DCODE Fetches

I'm not sure if this is the right forum to post this in.

I understand the ICode/Dcode fetch over the same memory range. And ICODE would be the assembly instructions that will be executed ie. pointed by the PC

Also lets assume ICode/Dcode goes to FLASH.

Is there an example on what is actually fetched through DCODE in a typical program?  

Would it be read only data where it is declared as constant in C otherwise I am assuming all variables should be fetched from the SRAM (RW variable).

From a compiler perspective, what will cause it to compile data accesses to the Dcode address vs to the SRAM instead. 

Thanks in advance.

More questions in this forum