TMS320F28035: Application is not running from internal Flash memory

Part Number: TMS320F28035

Tool/software:

Hello,

I am using TI 28035 experiment kit. I changed my program to run from Flash instead of RAM. It worked once but when I power cycled it stopped working 

Referred SPRA958L and its example program but couldn't fix my issue. I am able to run example program "F28035_example_nonBIOS_flash"

 Steps followed:

  • Replaced 28035_RAM_lnk.cmd with F28035.cmd
  • I already had DSP2803x_CodeStartBranch.asm and DSP2803x_Headers_nonBIOS.cmd
  • Declared below variables

 

          // Exeternal defines d by the linker

           extern Uint16 RamfuncsLoadStart;

           extern Uint16 RamfuncsLoadSize;

           extern Uint16 RamfuncsRunStart;

 

  • Added below code after function InitPieVectTable();

 

           // Copy Flash-resident functions to RAM

           memcpy((Uint16*)&RamfuncsRunStart,(Uint16 *)&RamfuncsLoadStart,

                    (unsigned long)&RamfuncsLoadSize); 

              // Enable Flash wait states

              InitFlash();

 

  • In function InitPieCtrl, added this code

            asm(" EALLOW");                     // Enable EALLOW protected register access 

            // Step around the first three 32-bit locations (six 16-bit locations).

           // These locations are used by the ROM bootloader during debug.

           memcpy((Uint16 *)&PieVectTable+6, (Uint16 *)&PieVectTableInit+6, 256-6); 

           asm(" EDIS");                       // Disable EALLOW protected register access

Do I have to configure GPIO 37 and GPIO 34 for boot mode?