This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28027: Error on debug : Break at address "0x3ff7eb" with no debug information available, or outside of program code

Part Number: TMS320F28027

Hello

I am integrating one of my Applications with Flash API.

The combined code got compiled properly and even I started debugging the code.

The Flash API part is working fine i.e. reading/ writing both is working good.

But when I call user defined functions for initializations, the debugger stops ending up with the message as:

"Break at address "0x3ff7eb" with no debug information available, or outside of program code"

I am not getting the exact issue, should I need to modify the linker file?

I request you to go through the same and please guide me further.

Thanks and Regards,

Richa 

  • Hi Richa,

    Can you narrow down the specific line of code within your function is causing the break to occur? Please use breakpoints and single stepping (F5 key) to find the specific line of code. Also, checking the disassembler after the issue occurs does it show an ITRAP?

    https://processors.wiki.ti.com/index.php/Interrupt_FAQ_for_C2000#The_ITRAP_Interrupt

    best,

    Kevin

  • Hey Kevin,

    Thanks for your prompt reply!

    I have attached the snap of my Code initialization.

    Actually, after executing the FLASH_SETTING function, which contains the Flash API actions i.e. Version verification, Erase, Write, Verify, I am getting the error mentioned above.

    As you rightly said, after checking the disassembler when the issue occurred I got this window:

    3ff7e5:   561F        SETC         OBJMODE
    3ff7e6:   7622        EALLOW       
    3ff7e7:   B9C0        MOVZ         DP, #0x1c0
    3ff7e8:   28290028    MOV          @0x29, #0x0028
    3ff7ea:   761A        EDIS         
    3ff7eb:   6F00        SB           0, UNC
    3ff7ec:   FFFF        ITRAP1       
    3ff7ed:   FFFF        ITRAP1       
    3ff7ee:   FFFF        ITRAP1       
    3ff7ef:   FFFF        ITRAP1       
    3ff7f0:   FFFF        ITRAP1       
    3ff7f1:   FFFF        ITRAP1       
    3ff7f2:   FFFF        ITRAP1       
    3ff7f3:   FFFF        ITRAP1       
    3ff7f4:   FFFF        ITRAP1       
    3ff7f5:   FFFF        ITRAP1       
    • Initialization Code Snap
    InitSysCtrl();
    
    // Step 2. Initalize GPIO:
       Gpio_setup1();
       read__flash_location();
       FLASH_SETTINGS();
    
       EALLOW;
       SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
       EDIS;
       
       ConfigurePWM();
       SetPwmLow();
       
       EALLOW;
       SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
       EDIS;
    
       INIT_INTERRUPT();
       INIT_PERIPHERALS();
    
       CpuTimer0Regs.TCR.all = 0x4001;
       CpuTimer2Regs.TCR.all = 0x4001;
    
    //   read__flash_location();
    
       INIT_VARIABLE();
    
       I2CA_Init();
       I2caRegs.I2CSAR = SLAVE_ADD;
       Init_Lcd();
       LcdBlank();
       Lcd_Position(0, 0);

    Meanwhile I am going through the link mentioned regarding the ITRAP. 

    I humbly request you to help me out for the mentioned issue.

    Regards,

    Richa

  • Richa,

    I think this would be related to the below line from the Wiki page I linked:

    • Make sure that if any code is being loaded into flash and run from RAM that it is properly copied to RAM before the function is called.

    Do you perform a Memcpy before the FLASH_SETTING function call, to move the relevant functions from Flash to RAM for execution? Note that the Flash API functions must be run from zero wait-state RAM.

    Best,

    Kevin

  • Hey Kevin,

    Thanks for your reply!

    The problem "Break at address "0x3ff7eb" with no debug information available, or outside of program code" got resolved when I connected GPIO34 pin to ground and if I take out that connection then it reappears.

    The complete application was executed properly. All the trials I was executing were with debugger.

    Now I am trying to find out the duration for how much time I need to keep the GPIO34 LOW.

    Because in my regular application I can not keep GPIO34 connected to GND.

    So, will you please suggest me the significance of GPIO34 in this process?

    Thanks in advance!

    Richa

  • Hi Richa,

    GPIO34 is a boot mode pin. This is documented further in the device datasheet, see 'Table 6-1. Boot Mode Selection'.

    https://www.ti.com/lit/ds/symlink/tms320f28027.pdf?ts=1590520731391

    See Section 5.12 'Power Sequencing' for info on how long the boot mode pins need to hold their state for.

    Best,

    Kevin