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.

Debug Programming on CCS5 and using the TMS320F28335 platform, SEED-XDS560v2 tools

Other Parts Discussed in Thread: TMS320F28335

1. Build the program, there is no error or warnning

2. Link was success, and no error or warnning

3. choice the project, choice the "Debug As" option

4. the CCS5 give me infomation as following:

C28xx: Breakpoint Manager: Retrying with a AET breakpoint
C28xx: Trouble Setting Breakpoint with the Action "Process CIO" at 0x62e00: (Error -1066 @

0x62E00) Unable to set requested breakpoint in memory. Verify that the breakpoint address is

in writable memory. (Emulation package 5.0.872.0)
C28xx: Breakpoint Manager: Retrying with a AET breakpoint
C28xx: Trouble Setting Breakpoint with the Action "Finish Auto Run" at 0x65195: (Error -1066

@ 0x65195) Unable to set requested breakpoint in memory. Verify that the breakpoint address

is in writable memory. (Emulation package 5.0.872.0)

 

 

So the device and the CCS5 not running as normal, the debug action was fail.

So, I need you help to analyze and resolve those error and warnning, help to start debug programming.

 

Best Regards,

Roc

  • Roc,

    Is your code running from Flash? If so, you are likely going over the breakpoint limit for F28x devices.

    Please see this related thread for an explanation:
    http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/p/257174/900728.aspx#900728

     

  • Hi AartiG,

    I have see the link issue, similar issue with me, but the problem still occur,

    So i upload the software setting info and error message,

    as following picture show.




    When I change the "Load program" to "Load symbols only", the setting and the error info as following:



    Regards,

    Roc

  • Roc,

    What exact version of CCSv5 and which F28xx device are you working with?

    Looking at the error message, it is trying to set breakpoints at  addresses 0x254d95 and 0x252a00, which seem like very strange addresses for a F28x device. Are you sure your project is using an appropriate linker command file (.cmd) for the device you are working with? If so, what if anything is defined to that address range?

  • Hi AartiG,

    Using the TMS320F28335 device and the Code Composer Studio Version: 5.3.0.00090.

    The command file using as following attachment file:

    --diag_suppress=16002
    
    
    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode      */
    
       BEGIN      : origin = 0x000000, length = 0x000002     /* Boot to M0 will go here                      */
       RAMM0      : origin = 0x000050, length = 0x0003B0
       //RAML0      : origin = 0x008000, length = 0x001000
       //RAML1      : origin = 0x009000, length = 0x003000     
       RAML      : origin = 0x008000, length = 0x008000      /* merge the inner RAM(L0-L7) */
    
       /*RAML2      : origin = 0x00A000, length = 0x001000
       RAML3      : origin = 0x00B000, length = 0x001000*/
       ZONE7A     : origin = 0x200000, length = 0x00FC00    /* XINTF zone 7 - program space */
       CSM_RSVD   : origin = 0x33FF80, length = 0x000076     /* Part of FLASHA.   */
       CSM_PWL    : origin = 0x33FFF8, length = 0x000008     /* Part of FLASHA.   */
       ADC_CAL    : origin = 0x380080, length = 0x000009
       RESET      : origin = 0x3FFFC0, length = 0x000002
       IQTABLES   : origin = 0x3FE000, length = 0x000b50
       IQTABLES2  : origin = 0x3FEB50, length = 0x00008c
       FPUTABLES  : origin = 0x3FEBDC, length = 0x0006A0
       BOOTROM    : origin = 0x3FF27C, length = 0x000D44
    
    
    PAGE 1 :
       /* BOOT_RSVD is used by the boot ROM for stack.               */
       /* This section is only reserved to keep the BOOT ROM from    */
       /* corrupting this area during the debug process              */
    
       BOOT_RSVD  : origin = 0x000002, length = 0x00004E     /* Part of M0, BOOT rom will use this for stack */
       RAMM1      : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
       //RAML4      : origin = 0x00C000, length = 0x001000
       //RAML5      : origin = 0x00D000, length = 0x001000
       //RAML4      : origin = 0x00A000, length = 0x002000
       //RAML5      : origin = 0x00C000, length = 0x002000
       //RAML6      : origin = 0x00E000, length = 0x001000
       //RAML7      : origin = 0x00F000, length = 0x001000
       EXRAM     : origin = 0x020000, length = 0x100000      /* 1Megabytes external ram*/
       ZONE7B     : origin = 0x20FC00, length = 0x000400     /* XINTF zone 7 - data space */
    
       //EXRAM     : origin = 0xF20000, length = 0xf00000      /* 1Megabytes external ram*/
    }
    
    
    SECTIONS
    {
       /* Setup for "boot to SARAM" mode:
          The codestart section (found in DSP28_CodeStartBranch.asm)
          re-directs execution to the start of user code.  */
       codestart        : > BEGIN,     PAGE = 0
       ramfuncs         : > RAMM0,     PAGE = 0   
       Flash28_API:
       {
            -lFlash28335_API_V210.lib(.econst) 
            -lFlash28335_API_V210.lib(.text)
       }                   LOAD = RAML, 
                           RUN = RAML,  
                           LOAD_START(_Flash28_API_LoadStart),
                           LOAD_END(_Flash28_API_LoadEnd),
                           RUN_START(_Flash28_API_RunStart),
                           PAGE = 0
       .cio             : > RAMM0,     PAGE = 0  
       .text            : > EXRAM,     PAGE = 1  
    
       .cinit           : > RAML,     PAGE = 0   
       .pinit           : > RAML,     PAGE = 0
       .switch          : > RAML,     PAGE = 0   
    
       .stack           : > EXRAM,     PAGE = 1
       .ebss            : > EXRAM,     PAGE = 1
       .econst          : > RAML,      PAGE = 0  
       .esysmem         : > EXRAM,     PAGE = 1
    
       //IQmath           : > RAML,     PAGE = 0
       IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD
    
    
       /* Uncomment the section below if calling the IQNexp() or IQexp()
          functions from the IQMath.lib library in order to utilize the
          relevant IQ Math table in Boot ROM (This saves space and Boot ROM
          is 1 wait-state). If this section is not uncommented, IQmathTables2
          will be loaded into other memory (SARAM, Flash, etc.) and will take
          up space, but 0 wait-state is possible.
       */
       /*
       IQmathTables2    : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
       {
    
                  IQmath.lib<IQNexpTable.obj> (IQmathTablesRam)
    
       }
       */
    
       FPUmathTables    : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
    
       //DMARAML4         : > RAML,     PAGE = 0
       //DMARAML5         : > RAML,     PAGE = 0
       //DMARAML6         : > RAML,     PAGE = 0
       //DMARAML7         : > RAML,     PAGE = 0
    
       ZONE7DATA        : > ZONE7B,    PAGE = 1
    
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used                    */
       csm_rsvd         : > CSM_RSVD   PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
       csmpasswds       : > CSM_PWL    PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
    
       /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
       .adc_cal     : load = ADC_CAL,   PAGE = 0, TYPE = NOLOAD
    
    }
    

    Please check the command files and maybe you can modify it.

    Regards,

    Roc

  • Roc,

    Looking at the linker command file there are a few things I observed. Based on that I have some comments and suggestions:

    1) Your linker command file defines a memory range EXRAM in Page 1 starting at address 0x020000.  Is this some external memory on your board, because typically these addresses are reserved within the F28335 device?

    2) You allocate a few sections (.text and few others) to this EXRAM. The .text section is generally allocated to a memory region in Page 0 so I would suggest either moving the memory definition to Page 0 or splitting it into Page 0 and Page 1, so the .text section can go to Page 0 and the others (.stack, .ebss, .esysmem) can go to Page 1.

    3) I still don't see any sections allocated to the memory region where the errors are coming from (like 0x254d95) so it is still surprising to me why the errors mention those addresses. Can you take a look at the link map file (.map) generated during project build to verify if anything is getting allocated to those addresses?

    3) If this region is external memory on your board, you need to take care of intializing memory prior to loading code to it and also making the CCS debugger aware of the memory via the GEL file. The default target configurations in CCS use the F28335.gel GEL file (found in \ccsv5\ccs_base\emulation\gel within your CCS installation) which you can use as a reference.  GEL files usually contain functions to initialize external memory interfaces. For example, If you look at the F28335.gel file, there is a fiunction called XINTF_Enable that enables the XINTF on F28335.  It may be commented out by default, but users planning to use the XINTF should uncomment it so it is invoked on reset.

    If you are using an external memory interface not defined here, you should add 2 things:
     - add the memory range using GEL_MapAdd within the function F28335_Memory_Map()
     - add a function similar to XINTF_Enable() to enable your memory interface and perform the appropriate actions within that function

  • AartiG ,

    Very thanks for you answer, I have resolved this issue.

    Regards,

    Roc

  • Hi Roc He

    How can you repair this error? My error: 

    C28xx: Breakpoint Manager: Retrying with a AET breakpoint
    C28xx: Trouble Setting Breakpoint with the Action "Finish Auto Run" at 0x947d: (Error -1066 @ 0x947D) Unable to set requested breakpoint in memory. Verify that the breakpoint address is in writable memory. (Emulation package 5.0.747.0).

    you can help me. thanks for your help me.