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.

Compiler/TMS320F28035: Break at address "0x3ff8cd" with no debug information available, or outside of program code.

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE

Tool/software: TI C/C++ Compiler

Dear Sir/Madam,

I am working on TMS320F28035 Processor. I am getting a debugging issue when I am running the code. I am generating the PWM pulses through ePWM channels. I am debugging my program into flash memory. My .cmd file is as follows.

MEMORY
{
PAGE 0 :
   /* BEGIN is used for the "boot to SARAM" bootloader mode   */

    FLASH        : origin = 0x3E8000, length = 0x004000

//   L0SARAM      : origin = 0x008000, length = 0x002200
//   L1DPSARAM      : origin = 0x00A200, length = 0x000400
//   L2DPSARAM      : origin = 0x00A600, length = 0x000400
//   L3DPSARAM      : origin = 0x00B000, length = 0x000400


   BEGIN      : origin = 0x000000, length = 0x000002
   RAMM0      : origin = 0x000050, length = 0x0003B0
//   RAML0L1    : origin = 0x008000, length = 0x000D00
   RESET      : origin = 0x3FFFC0, length = 0x000002
   IQTABLES   : origin = 0x3FE000, length = 0x000B50     /* IQ Math Tables in Boot ROM */
   IQTABLES2  : origin = 0x3FEB50, length = 0x00008C     /* IQ Math Tables in Boot ROM */
   IQTABLES3  : origin = 0x3FEBDC, length = 0x0000AA     /* IQ Math Tables in Boot ROM */

   BOOTROM    : origin = 0x3FF27C, length = 0x000D44


PAGE 1 :

   M0SARAM      : origin = 0x000000, length = 0x000400
   M1SARAM      : origin = 0x000400, length = 0x000400
//   BOOT_RSVD   : origin = 0x000002, length = 0x00004E     /* Part of M0, BOOT rom will use this for stack */
//   RAMM1       : origin = 0x000480, length = 0x000380     /* on-chip RAM block M1 */
//   RAML2       : origin = 0x008D00, length = 0x000500
//   RAML3       : origin = 0x009200, length = 0x000800
}


SECTIONS
{
   codestart        : > BEGIN,     PAGE = 0
   ramfuncs         : > RAMM0      PAGE = 0
   .text            : > FLASH,   PAGE = 0
    .cinit           : > FLASH,     PAGE = 0
    .pinit           : > FLASH,     PAGE = 0
   .switch          : > FLASH,     PAGE = 0

   .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */

   .ebss            : > M0SARAM,     PAGE = 1
   .stack           : > M1SARAM,     PAGE = 1
   .econst          : > M0SARAM,     PAGE = 1
   .esysmem         : > M0SARAM,     PAGE = 1
   IQmath           : > FLASH,   PAGE = 0


   IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD

}

When I am running the program, it is giving the pulses for few seconds and after that it is going to the high value(3.3V), and when I pause the program it is showing the message as " Break at address "0x3ff8cd" with no debug information available, or outside of program code. "

I am unable to trace out the problem. Could you help me to solve this issue.

Thanks

Regards

Ravi

  • Ravi,

    Address 0x3FF8CD is in BOOTROM. It looks like your program has executed illegal instruction and PC is stuck in illegal instruction trap.

    You can load the bootrom symbols to debug the problem.

    <C2000Ware>\libraries\boot_rom\f2803x\v1_0\rom_sources\Release\TMS320x2803x_boot_rom_Gold_V1.out

    Regards,
    Manoj
  •  Hi,

    I link the path " <C2000Ware>\libraries\boot_rom\f2803x\v1_0\rom_sources\Release\TMS320x2803x_boot_rom_Gold_V1.out". Still it is giving the same problem.

  • You shouldn't link BOOTROM COFF file in your application project. You just need to load the BOOT ROM symbols by Run -> Load -> Load Symbols ->TMS320x2803x_boot_rom_Gold_V1.out in CCS debug perspective.

    Regards,
    Manoj
  • Hi sir,

    I loaded the "TMS320x2803x_boot_rom_Gold_V1.out" in CCS debugging window. I got the same message with different address location. This addresses location is in "Flash memory".

  • Ravi,

    Once you load boot rom symbols it loses the symbols of your application code programmed in flash. If you want that your application code symbols add the bootrom symbols instead of loading the symbols.

    Regards,
    Manoj
  • Hi Sir,

    As you suggested, I added the BOOT ROM symbols instead of loading them and also linked "ITRAPIsr.asm" file (it asked to link this file) . Break at address "0x3e9b4a" with no debug information available, or outside of program code message is gone. But still main issue is not solved, that the PWM pulses are appearing for few seconds and then disappear. I observed "Texas Instruments XDS100v2 USB Debug Probe/CLA_0 (Disconnected : Unknown)" message on Debug window. Also one warning is coming before debugging the program "#10247-D null: creating output section ".Isr" without a SECTIONS specification    5_C12SVPWM_Table_TMS28035 C/C++ Problem". May I know where the issue is?

  • Ravi,

    Illegal ISR:
    As I said before, it looks like your program has executed illegal instruction and PC is stuck in illegal instruction trap. You need to find out by debugging your code why it executed illegal instruction in the first place.

    PWM issue:
    Check whether your PWM register TBCTL.FREE_SOFT = 2 (or) 3 has the following setting. If this TBCTL.FREE_SOFT = 0 (or) 1, then PWM will stop on emulation stop.

    Warning:
    You need to assign .Isr to a specific section in your linker command file to fix this error.

    Regards,
    Manoj
  • Hi Sir,

    First of all thanks for your patient replies. From the previous mail, "warning" issue is solved. In my coding, I have a continuous loop function. If I am running the code for loop count = 36, it is working fine without any issues. But when I try to increase the loop count to '60', the issue is starting (Program is running continuously, but the PWM pulses are appearing for few seconds and disappear ).   I set the PWM register TBCTL.FREE_SOFT = 3. Even though the same issue is occurring. If I pause the program the CCS window appears as below.

    In the previous mail, you suggested to find out why the CCS is executing illegal instruction by using debugging. This one I did not understand. Can you explain this in detail.

    Regards

    Ravi Teja