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.

CCS/TMS320F28022: 4 RAM words not loading properly

Part Number: TMS320F28022

Tool/software: Code Composer Studio

Win7 SP1 (32bit). CCS 6.1.3. F28022.

Hello:

Just recently, I have a problem with the program loader, or maybe something after the loader but before running the program.

Some words in RAM are either being loaded with zeros, or something after the load is setting some program ram words to zero.

I have a program that is being loaded into both flash and RAM (the RAM parts are the code I am working with.)

The four RAM locations 0x008E2C - 0x008E2F have zeros rather then the proper code. As a result, when I execute the program, I get an illegal instruction interrupt.

I have tried to power cycle the target board, quit and restart CCS, do a clean on the project, and all 3 at once.

After loading but before running, the disassembler shows the incorrect code at those locations.

After loading the program, when I click on RUN->Load-> Verify Program, it shows an error at the above location.

If I manually open the memory browser, I can manually poke the proper code into those locations.

At that point, the disassembler shows the proper code (verified against the assembler listing file).

Also, after poking, when I do the ...verify program, it reports the program is OK.

I have verified this issue exists across 2 different target boards, both of which were working OK.

Does anyone have any ideas what may be going on here. This code was working OK yesterday.

Thanks, Mark.

  • Update:
    I have temporally bypassed the issue by creating 2 new MEMORY sections in my CMD file.
    One section I have called "bad_ram" and another section called ".text1".

    Of course, I have had to put several pragma directives to move some code into the new .text1 section.
    Mark.
  • Mark,
    Could you upload the .map file generated using the original linker file that gave the zero data at these locations? I'm looking to see if this section was something that was loaded or was meant to have been copied from flash to RAM when you loaded the .out file. If you are seeing the locations keep their values once you manually load them; then I don't think we are dealing with any kind of stack overflow/overwrite issue.

    Best,
    Matthew
  • Yes, Matthew, Thanks for any help here.

    Some new information (see below)

    The sections are loaded, not copied at run time.

    Because of the proprietary nature of this work, I have taken the time to remove most of the symbols in the map file. The address are still there.

    Of particular importance, note on lines 538 and 1051 These are the places in the map file that have the offending code.

    I have been through the map file and cannot locate any overlapping code.

    You said "... or was meant to have been copied from flash to RAM when you loaded the .out file..." The only thing I am aware of about coping from FLASH to RAM is at run time to copy the FLASH altering routines. Is there something else that the loader/debugger will do to copy code from FLASH to RAM other then that?

    Also, you mention stack overflow. This error happens after loading my code, but even before I run the code, so is there some stack things I don't know about during loading?

    Thanks for taking the time to help me with this.

    One last question, is there any way I can read the .out file (in hex for example. or even better if there were symbols in the file.) to verify if the code is being compiled incorrectly, or loaded incorrectly?

    New Information...

    Turns out the code being loaded is not all zeros. The first 3 words (0x8e2c - 0x8e2e) are indeed zeros, but the last word (0x8e2f) is 0x00A0, not zero. It almost seems like some kind of 64 bit number is here.

    I placed some useless code before the offending statement, effectively moving the statement down a bit, and the bad memory remains fixed at the locations stated above. The code that WAS showing the problem seems OK now as it appears after the bad memory words. The inserted nonsense code now shows the error (all as expected assuming the memory, not the compiler is at fault.)

    The map file I uploaded is before I made these insertions.

    Whether this is due to a faulty loader, or some later code overwriting after the load in still unclear, but I feel I have eliminated the compiler as the issue.

    Mark

    ******************************************************************************
                 TMS320C2000 Linker PC v6.4.6                      
    ******************************************************************************
    >> Linked Fri Oct 26 15:22:58 2018
    
    OUTPUT FILE NAME:   <proprietary.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 003f7b2b
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
    PAGE 0:
      BEGIN                 00000000   00000002  00000000  00000002  RWIX
      RAMM0                 00000050   000003b0  00000000  000003b0  RWIX
      progMAIN              00008000   00000100  00000075  0000008b  RWIX
      progRAM               00008100   00000f00  00000e1f  000000e1  RWIX
      OTP                   003d7800   00000400  00000000  00000400  RWIX
      FLASHB                003f6000   00001000  00000000  00001000  RWIX
      FLASHA                003f7000   000009d6  000004bb  0000051b  RWIX
      FLASHA1               003f79d6   000005aa  00000286  00000324  RWIX
      MCSMZERO              003f7f80   00000076  00000000  00000076  RWIX
      F_BEGIN               003f7ff6   00000002  00000000  00000002  RWIX
      MCSMPASS              003f7ff8   00000008  00000000  00000008  RWIX
      IQTABLES              003fe000   00000b50  00000000  00000b50  RWIX
      IQTABLES2             003feb50   0000008c  00000000  0000008c  RWIX
      IQTABLES3             003febdc   000000aa  00000000  000000aa  RWIX
      BOOTROM               003ff27c   00000d44  00000000  00000d44  RWIX
      RESET                 003fffc0   00000002  00000000  00000002  RWIX
      VECTORS               003fffc2   0000003e  00000000  0000003e  RWIX
    
    PAGE 1:
      BOOT_RSVD             00000002   0000004e  00000000  0000004e  RWIX
      MEM4STACK             00000400   00000300  00000300  00000000  RWIX
      MEM4other             00000700   00000100  000000c6  0000003a  RWIX
      DEV_EMU               00000880   00000180  00000180  00000000  RWIX
      FLASH_REGS            00000a80   00000060  00000008  00000058  RWIX
      CSM                   00000ae0   00000010  00000000  00000010  RWIX
      ADC_RESULT            00000b00   00000020  00000020  00000000  RWIX
      CPU_TIMER0            00000c00   00000008  00000008  00000000  RWIX
      CPU_TIMER1            00000c08   00000008  00000008  00000000  RWIX
      CPU_TIMER2            00000c10   00000008  00000008  00000000  RWIX
      PIE_CTRL              00000ce0   00000020  0000001a  00000006  RWIX
      PIE_VECT              00000d00   00000100  00000100  00000000  RWIX
      COMP1                 00006400   00000020  00000011  0000000f  RWIX
      COMP2                 00006420   00000020  00000011  0000000f  RWIX
      EPWM1                 00006800   00000040  0000003a  00000006  RWIX
      EPWM2                 00006840   00000040  0000003a  00000006  RWIX
      EPWM3                 00006880   00000040  0000003a  00000006  RWIX
      EPWM4                 000068c0   00000040  0000003a  00000006  RWIX
      ECAP1                 00006a00   00000020  00000020  00000000  RWIX
      GPIOCTRL              00006f80   00000040  00000040  00000000  RWIX
      GPIODAT               00006fc0   00000020  00000020  00000000  RWIX
      GPIOINT               00006fe0   00000020  0000000c  00000014  RWIX
      SYSTEM                00007010   00000020  0000001f  00000001  RWIX
      SPIA                  00007040   00000010  00000010  00000000  RWIX
      SCIA                  00007050   00000010  00000010  00000000  RWIX
      NMIINTRUPT            00007060   00000010  00000000  00000010  RWIX
      XINTRUPT              00007070   00000010  00000010  00000000  RWIX
      ADC                   00007100   00000080  00000050  00000030  RWIX
      I2CA                  00007900   00000040  00000022  0000001e  RWIX
      PARTID                003d7fff   00000001  00000001  00000000  RWIX
      FLASHD                003f4000   00001000  00000a0e  000005f2  RWIX
      FLASHC                003f5000   00001000  00000800  00000800  RWIX
      CSM_PWL               003f7ff8   00000008  00000000  00000008  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    MAIN_UP_FRONT 
    *          0    00008000    00000075     
                      00008000    00000075     main.obj (MAIN_UP_FRONT)
    
    .text      0    00008100    00000e1f     
                      00008100    00000358     ReadWr
                      00008458    000002e1     packed
                      00008739    00000214     ReadWr
                      0000894d    000001eb     cc
                      00008b38    000001a0     Talk2_
                      00008cd8    0000017c     ReadWr
                      00008e54    00000084     cc
                      00008ed8    00000032     MainSu
                      00008f0a    00000015     Delay.
    
    .pinit     0    00000050    00000000     UNINITIA
    
    .cinit     0    00008100    00000051     COPY SEC
                      00008100    00000037     MainSu
                      00008137    0000000a     rts280
                      00008141    00000005           
                      00008146    00000005           
                      0000814b    00000004           
                      0000814f    00000002     --HOLE
    
    .reset     0    003fffc0    00000002     DSECT
                      003fffc0    00000002     rts280
    
    SECTION_flash_codeA 
    *          0    003f7000    000004bb     
                      003f7000    000001e1     ReadWr
                      003f71e1    000000d8     Piccol
                      003f72b9    000000a0     Talk2_
                      003f7359    0000006a     MyPWM.
                      003f73c3    00000053     Talk2_
                      003f7416    0000003f     InitGp
                      003f7455    00000023     packed
                      003f7478    0000001e     CalcCo
                      003f7496    00000013     ReadWr
                      003f74a9    0000000d     Delay.
                      003f74b6    00000005     Piccol
    
    LIB_IN_FLASH 
    *          0    003f79d6    00000286     
                      003f79d6    00000083     rts280
                      003f7a59    00000078           
                      003f7ad1    0000005a           
                      003f7b2b    00000044           
                      003f7b6f    00000029           
                      003f7b98    00000025           
                      003f7bbd    00000022           
                      003f7bdf    0000001a           
                      003f7bf9    00000019           
                      003f7c12    00000019           
                      003f7c2b    00000017           
                      003f7c42    0000000c           
                      003f7c4e    00000009           
                      003f7c57    00000005           
    
    .stack     1    00000400    00000300     UNINITIA
                      00000400    00000300     --HOLE
    
    .ebss      1    00000700    00000092     UNINITIA
                      00000700    0000003c     IirCal
                      0000073c    00000004     rts280
                      00000740    00000034     MainSu
                      00000774    00000002     Talk2_
                      00000776    00000002     rts280
                      00000778    00000002           
                      0000077a    00000002     main.o
                      0000077c    00000001     Talk2_
                      0000077d    00000001     rts280
                      0000077e    00000002     --HOLE
                      00000780    00000012     ReadWr
    
    .econst    1    00000792    0000001a     
                      00000792    0000000a     cc
                      0000079c    00000008     cc
                      000007a4    00000004     cc
                      000007a8    00000004     cc
    
    *******ram 
    *          1    000007ac    00000010     UNINITIA
                      000007ac    00000010     ReadWr
    
    SECTION_temp_coeffs 
    *          1    000007c0    0000000a     UNINITIA
                      000007c0    0000000a     CalcCo
    
    DevEmuRegsFile 
    *          1    00000880    00000180     UNINITIA
                      00000880    00000180     DSP280
    
    FlashRegsFile 
    *          1    00000a80    00000008     UNINITIA
                      00000a80    00000008     DSP280
    
    ************ 
    *          1    00000b00    00000020     UNINITIA
                      00000b00    00000020     DSP280
    
    CpuTimer0RegsFile 
    *          1    00000c00    00000008     UNINITIA
                      00000c00    00000008     DSP280
    
    CpuTimer1RegsFile 
    *          1    00000c08    00000008     UNINITIA
                      00000c08    00000008     DSP280
    
    CpuTimer2RegsFile 
    *          1    00000c10    00000008     UNINITIA
                      00000c10    00000008     DSP280
    
    PieCtrlRegsFile 
    *          1    00000ce0    0000001a     UNINITIA
                      00000ce0    0000001a     DSP280
    
    BootVarsFile 
    *          1    00000d00    00000000     UNINITIA
    
    PieVectTableFile 
    *          1    00000d00    00000100     UNINITIA
                      00000d00    00000100     DSP280
    
    Comp1RegsFile 
    *          1    00006400    00000011     UNINITIA
                      00006400    00000011     DSP280
    
    Comp2RegsFile 
    *          1    00006420    00000011     UNINITIA
                      00006420    00000011     DSP280
    
    EPwm1RegsFile 
    *          1    00006800    0000003a     UNINITIA
                      00006800    0000003a     DSP280
    
    EPwm2RegsFile 
    *          1    00006840    0000003a     UNINITIA
                      00006840    0000003a     DSP280
    
    EPwm3RegsFile 
    *          1    00006880    0000003a     UNINITIA
                      00006880    0000003a     DSP280
    
    EPwm4RegsFile 
    *          1    000068c0    0000003a     UNINITIA
                      000068c0    0000003a     DSP280
    
    ECap1RegsFile 
    *          1    00006a00    00000020     UNINITIA
                      00006a00    00000020     DSP280
    
    GpioCtrlRegsFile 
    *          1    00006f80    00000040     UNINITIA
                      00006f80    00000040     DSP280
    
    GpioDataRegsFile 
    *          1    00006fc0    00000020     UNINITIA
                      00006fc0    00000020     DSP280
    
    GpioIntRegsFile 
    *          1    00006fe0    0000000c     UNINITIA
                      00006fe0    0000000c     DSP280
    
    SysCtrlRegsFile 
    *          1    00007010    0000001f     UNINITIA
                      00007010    0000001f     DSP280
    
    SpiaRegsFile 
    *          1    00007040    00000010     UNINITIA
                      00007040    00000010     DSP280
    
    SciaRegsFile 
    *          1    00007050    00000010     UNINITIA
                      00007050    00000010     DSP280
    
    XIntruptRegsFile 
    *          1    00007070    00000010     UNINITIA
                      00007070    00000010     DSP280
    
    AdcRegsFile 
    *          1    00007100    00000050     UNINITIA
                      00007100    00000050     DSP280
    
    I2caRegsFile 
    *          1    00007900    00000022     UNINITIA
                      00007900    00000022     DSP280
    
    PartIdRegsFile 
    *          1    003d7fff    00000001     NOLOAD S
                      003d7fff    00000001     DSP280
    
    ********   1    003f4000    00000a0e     
                      003f4000    00000a0e     ReadWr
    
    ********   1    003f5000    00000800     
                      003f5000    00000800     ReadWr
    
    
    GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE
    
    address     data page           name
    --------    ----------------    ----
    00000400      10 (00000400)     __stack
    
    00000700      1c (00000700)     
    0000073c      1c (00000700)     
    0000073e      1c (00000700)     
    
    00000774      1d (00000740)     
    00000776      1d (00000740)     
    00000778      1d (00000740)     
    0000077a      1d (00000740)     
    0000077b      1d (00000740)     
    0000077c      1d (00000740)     
    0000077d      1d (00000740)     
    
    00000780      1e (00000780)     
    00000781      1e (00000780)     
    00000782      1e (00000780)     
    000007ac      1e (00000780)     
    
    000007c0      1f (000007c0)     
    000007c2      1f (000007c0)     
    000007c4      1f (000007c0)     
    000007c6      1f (000007c0)     
    000007c8      1f (000007c0)     
    
    00000880      22 (00000880)     
    
    00000a80      2a (00000a80)     
    
    00000b00      2c (00000b00)     
    
    00000c00      30 (00000c00)     
    00000c08      30 (00000c00)     
    00000c10      30 (00000c00)     
    
    00000ce0      33 (00000cc0)     
    
    00000d00      34 (00000d00)     
    
    00006400     190 (00006400)     
    00006420     190 (00006400)     
    
    00006800     1a0 (00006800)     
    
    00006840     1a1 (00006840)     
    
    00006880     1a2 (00006880)     
    
    000068c0     1a3 (000068c0)     
    
    00006a00     1a8 (00006a00)     
    
    00006f80     1be (00006f80)     
    
    00006fc0     1bf (00006fc0)     
    00006fe0     1bf (00006fc0)     
    
    00007010     1c0 (00007000)     
    
    00007040     1c1 (00007040)     
    00007050     1c1 (00007040)     
    00007070     1c1 (00007040)     
    
    00007100     1c4 (00007100)     
    
    00007900     1e4 (00007900)     
    
    00008100     204 (00008100)     ng
    0000811a     204 (00008100)     
    
    00008141     205 (00008140)     
    00008156     205 (00008140)     
    
    00008229     208 (00008200)     
    
    000082a0     20a (00008280)     
    
    000082cd     20b (000082c0)     
    
    00008353     20d (00008340)     
    
    00008394     20e (00008380)     
    000083a0     20e (00008380)     
    000083ac     20e (00008380)     
    
    000083f2     20f (000083c0)     
    
    00008428     210 (00008400)     
    00008429     210 (00008400)     
    0000842a     210 (00008400)     
    0000842b     210 (00008400)     
    0000842c     210 (00008400)     
    0000842d     210 (00008400)     
    0000843a     210 (00008400)     
    
    00008458     211 (00008440)     
    00008461     211 (00008440)     
    00008463     211 (00008440)     
    00008465     211 (00008440)     
    00008468     211 (00008440)     
    0000846b     211 (00008440)     
    0000846e     211 (00008440)     
    00008472     211 (00008440)     
    00008477     211 (00008440)     
    0000847c     211 (00008440)     
    
    00008480     212 (00008480)     
    00008485     212 (00008480)     
    0000848b     212 (00008480)     
    00008491     212 (00008480)     
    00008496     212 (00008480)     
    000084a1     212 (00008480)     
    000084ac     212 (00008480)     
    000084b2     212 (00008480)     
    
    000084c1     213 (000084c0)     
    000084c7     213 (000084c0)     
    000084d2     213 (000084c0)     
    000084d7     213 (000084c0)     
    000084db     213 (000084c0)     
    000084e1     213 (000084c0)     
    000084eb     213 (000084c0)     
    000084f5     213 (000084c0)     
    000084ff     213 (000084c0)     
    
    00008509     214 (00008500)     
    00008513     214 (00008500)     
    0000851d     214 (00008500)     
    00008527     214 (00008500)     
    00008531     214 (00008500)     
    00008538     214 (00008500)     
    
    00008541     215 (00008540)     
    0000854a     215 (00008540)     
    00008553     215 (00008540)     
    00008556     215 (00008540)     
    0000855d     215 (00008540)     
    00008561     215 (00008540)     
    00008566     215 (00008540)     
    0000856b     215 (00008540)     
    0000856e     215 (00008540)     
    00008572     215 (00008540)     
    
    0000858e     216 (00008580)     
    000085aa     216 (00008580)     
    000085b6     216 (00008580)     
    000085bf     216 (00008580)     
    
    000085c8     217 (000085c0)     
    000085d1     217 (000085c0)     
    000085da     217 (000085c0)     
    000085e4     217 (000085c0)     
    000085f3     217 (000085c0)     
    
    00008601     218 (00008600)     
    0000860f     218 (00008600)     
    00008613     218 (00008600)     
    00008617     218 (00008600)     
    0000861c     218 (00008600)     
    00008624     218 (00008600)     
    00008629     218 (00008600)     
    0000862f     218 (00008600)     
    00008636     218 (00008600)     
    0000863d     218 (00008600)     
    
    00008644     219 (00008640)     
    0000864c     219 (00008640)     
    00008658     219 (00008640)     
    00008664     219 (00008640)     
    00008671     219 (00008640)     
    00008679     219 (00008640)     
    
    00008683     21a (00008680)     
    00008690     21a (00008680)     
    00008693     21a (00008680)     
    00008695     21a (00008680)     
    0000869d     21a (00008680)     
    000086a8     21a (00008680)     
    000086b3     21a (00008680)     
    000086b8     21a (00008680)     
    000086be     21a (00008680)     
    
    000086c6     21b (000086c0)     
    000086cf     21b (000086c0)     
    000086d2     21b (000086c0)     
    000086dd     21b (000086c0)     
    000086e8     21b (000086c0)     
    000086f3     21b (000086c0)     
    000086fe     21b (000086c0)     
    
    00008709     21c (00008700)     
    00008714     21c (00008700)     
    0000871f     21c (00008700)     
    0000872a     21c (00008700)     
    00008735     21c (00008700)     
    00008739     21c (00008700)     
    
    00008784     21e (00008780)     
    
    000087d0     21f (000087c0)     
    000087f4     21f (000087c0)     
    
    00008818     220 (00008800)     
    00008820     220 (00008800)     
    
    00008886     222 (00008880)     
    0000888e     222 (00008880)     
    00008895     222 (00008880)     
    
    0000894b     225 (00008940)     
    0000894c     225 (00008940)     
    0000894d     225 (00008940)     
    00008963     225 (00008940)     
    
    00008993     226 (00008980)     
    000089bd     226 (00008980)     
    
    00008a04     228 (00008a00)     
    
    00008a41     229 (00008a40)     
    00008a5c     229 (00008a40)     
    
    00008aa9     22a (00008a80)     
    
    00008ade     22b (00008ac0)     
    
    00008b04     22c (00008b00)     
    00008b38     22c (00008b00)     
    
    00008b41     22d (00008b40)     
    00008b53     22d (00008b40)     
    00008b75     22d (00008b40)     
    
    00008b99     22e (00008b80)     
    
    00008bd8     22f (00008bc0)     
    
    00008c1c     230 (00008c00)     
    00008c2d     230 (00008c00)     
    
    00008ccb     233 (00008cc0)     
    00008cd8     233 (00008cc0)     
    00008cda     233 (00008cc0)     
    00008ce8     233 (00008cc0)     
    
    00008d0e     234 (00008d00)     
    00008d18     234 (00008d00)     
    00008d2f     234 (00008d00)     
    00008d3d     234 (00008d00)     
    
    00008d53     235 (00008d40)     
    00008d63     235 (00008d40)     
    00008d70     235 (00008d40)     
    00008d7e     235 (00008d40)     
    
    00008d9e     236 (00008d80)     
    00008dad     236 (00008d80)     
    00008dbd     236 (00008d80)     
    
    00008dcf     237 (00008dc0)     
    
    00008e0c     238 (00008e00)     RoutineInQuestion_here
    00008e34     238 (00008e00)     
    
    00008e4d     239 (00008e40)     
    00008e54     239 (00008e40)     
    00008e63     239 (00008e40)     
    
    00008e82     23a (00008e80)     
    00008eb4     23a (00008e80)     
    
    00008ed8     23b (00008ec0)     
    00008ed9     23b (00008ec0)     
    00008eda     23b (00008ec0)     
    00008edb     23b (00008ec0)     
    00008efa     23b (00008ec0)     
    
    00008f0a     23c (00008f00)     
    00008f15     23c (00008f00)     
    
    003d7fff    f5ff (003d7fc0)     
    
    003f4000    fd00 (003f4000)     
    
    003f5000    fd40 (003f5000)     
    
    003f7000    fdc0 (003f7000)     
    
    003f706e    fdc1 (003f7040)     
    
    003f7149    fdc5 (003f7140)     
    
    003f71e1    fdc7 (003f71c0)     
    
    003f7225    fdc8 (003f7200)     
    003f722d    fdc8 (003f7200)     
    
    003f7267    fdc9 (003f7240)     
    
    003f7286    fdca (003f7280)     
    003f72a4    fdca (003f7280)     
    003f72b9    fdca (003f7280)     
    003f72be    fdca (003f7280)     
    
    003f72d0    fdcb (003f72c0)     
    003f72e6    fdcb (003f72c0)     
    003f72f5    fdcb (003f72c0)     
    
    003f7308    fdcc (003f7300)     
    003f7312    fdcc (003f7300)     
    
    003f7359    fdcd (003f7340)     
    
    003f73b1    fdce (003f7380)     
    
    003f73c3    fdcf (003f73c0)     
    003f73d4    fdcf (003f73c0)     
    003f73e0    fdcf (003f73c0)     
    
    003f7416    fdd0 (003f7400)     
    
    003f7455    fdd1 (003f7440)     
    003f7465    fdd1 (003f7440)     
    003f7471    fdd1 (003f7440)     
    003f7478    fdd1 (003f7440)     
    
    003f7496    fdd2 (003f7480)     
    003f74a9    fdd2 (003f7480)     
    003f74b6    fdd2 (003f7480)     
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    page  address   name                            
    ----  -------   ----                            
    0     00008100  .text                           
    0     003f7c12  C$$EXIT                         
    0     003f7a5e  FS$$ADD                         
    0     003f7c2b  FS$$CMP                         
    0     003f79d6  FS$$DIV                         
    0     003f7ad1  FS$$MPY                         
    0     003f7c57  FS$$NEG                         
    0     003f7a59  FS$$SUB                         
    0     003f7b98  FS$$TOI                         
    0     003f7b6f  FS$$TOL                         
    0     003f7bbd  I$$DIV                          
    0     003f7bce  I$$MOD                          
    0     003f7bdf  I$$TOFS                         
    0     00008784  
    1     00007100  
    1     00000b00  
    0     00008b04  
    0     00008dbd  
    0     00008d70  
    0     00008efa  
    0     00008edb  
    0     00008ed9  
    1     000007c2  
    1     000007c0  
    1     000007c6  
    1     000007c4  
    1     000007c8  
    1     00006400  
    1     00006420  
    1     00000c00  
    1     00000c08  
    1     00000c10  
    0     003f74a9  
    1     00000880  
    0     003f71e1  
    0     00008eda  
    0     003f7000  
    1     00006a00  
    1     00006800  
    1     00006840  
    1     00006880  
    1     000068c0  
    0     00008141  
    0     003f706e  
    1     00000a80  
    0     00008e4d  
    0     00008428  
    0     0000842a  
    0     00008ed8  
    1     00006f80  
    1     00006fc0  
    1     00006fe0  
    0     00008b38  
    0     003f73e0  
    0     00008ccb  
    0     00008bd8  
    0     00008b99  
    0     00008c2d  
    0     00008c1c  
    1     00007900  
    0     003f7496  
    0     003f74b6  
    0     0000843a  
    0     000087d0  
    0     003f72a4  
    0     00008d63  
    0     003f722d  
    0     003f73c3  
    1     003d7fff  
    0     003f7267  
    1     00000ce0  
    1     00000d00  
    0     003f7286  
    0     00008818  
    0     00008394  
    0     00008156  
    0     000082a0  
    0     00008429  
    0     0000842c  
    0     00008820  
    0     000087f4  
    0     003f7149  
    0     0000811a  
    0     003f72b9  
    1     00007050  
    0     0000842b  
    0     00008f0a  
    0     003f7416  
    0     003f7359  
    0     00008100  
    0     0000888e  
    0     00008886  
    0     00008895  
    0     000082cd  
    0     00008353  
    0     000083ac  
    0     003f7312  
    0     003f72be  
    0     003f72d0  
    0     003f7308  
    0     003f72e6  
    0     003f72f5  
    1     00007040  
    1     00007010  
    0     00008f15  
    0     003f73d4  
    0     003f73b1  
    0     00008cd8  
    0     00008d18  
    0     00008ce8  
    0     00008d0e  
    0     00008d2f  
    0     00008dcf  
    0     00008e34  
    0     00008d7e  
    0     00008dad  
    0     00008d9e  
    0     00008e0c  
    0     00008d53  
    0     00008d3d  
    0     00008cda  
    0     000083f2  
    0     000083a0  
    0     00008229  
    0     003f7225  
    0     00008b75  
    0     00008b53  
    0     00008b41  
    0     0000842d  
    0     0000894b  
    0     0000894c  
    1     00007070  
    1     00000700  
    abs   00000300  
    1     0000073c  
    1     0000073e  
    abs   ffffffff  
    abs   ffffffff  
    abs   ffffffff  
    0     00008f1f  
    abs   ffffffff  
    0     00008100  
    0     003f7bf9  
    1     00000776  
    0     003f7c56  
    0     003f7c52  
    0     003f7c4e  
    1     00000400  
    1     00000778  
    0     003f7c12  
    0     003f7455  
    0     000084d2  
    0     00008485  
    0     000084ac  
    0     0000848b  
    0     000084c1  
    0     000084b2  
    0     00008477  
    0     00008491  
    0     000084a1  
    0     0000846b  
    0     000084c7  
    0     00008496  
    0     00008472  
    0     0000847c  
    0     0000846e  
    0     00008480  
    1     00000700  
    0     003f7b2b  
    0     003f7478  
    0     00008739  
    1     003f5000  
    0     00008e63  
    0     00008e82  
    0     00008eb4  
    0     00008e54  
    0     00008963  
    0     0000894d  
    0     000089bd  
    0     00008a04  
    0     00008a5c  
    0     00008aa9  
    0     00008a41  
    0     00008ade  
    0     00008993  
    1     0000077b  
    1     0000077d  
    0     003f7c14  
    0     003f7471  
    0     00008458  
    0     003f7465  
    1     0000077a  
    0     00008000  
    0     003f7c42  
    1     00000774  
    0     00008468  
    0     00008463  
    1     003f4000  
    1     0000077c  
    0     000084d7  
    0     0000864c  
    0     00008664  
    0     00008658  
    0     0000862f  
    0     00008624  
    0     00008629  
    0     00008617  
    0     00008644  
    0     00008636  
    0     0000863d  
    0     00008613  
    0     00008671  
    0     0000861c  
    0     000085aa  
    0     00008527  
    0     0000851d  
    0     00008538  
    0     00008531  
    0     000085c8  
    0     0000856e  
    0     00008509  
    0     00008513  
    0     000084ff  
    0     00008541  
    0     0000856b  
    0     0000854a  
    0     00008561  
    0     000085d1  
    0     000085b6  
    0     000084f5  
    0     000086b3  
    0     000086fe  
    0     000086be  
    0     000086b8  
    0     000086c6  
    0     000086cf  
    0     000086a8  
    0     00008714  
    0     0000871f  
    0     00008709  
    0     000086f3  
    0     000086e8  
    0     000086dd  
    0     00008695  
    0     0000869d  
    0     0000872a  
    0     000086d2  
    0     0000855d  
    0     000085bf  
    0     00008679  
    0     00008566  
    0     000085da  
    0     00008601  
    0     000084db  
    0     000085f3  
    0     0000860f  
    0     000084e1  
    0     00008553  
    0     00008690  
    0     00008683  
    0     00008735  
    0     000085e4  
    0     00008556  
    0     000084eb  
    0     00008693  
    0     0000858e  
    0     00008572  
    1     00000782  
    1     00000780  
    1     00000781  
    1     000007ac  
    0     00008461  
    0     00008465  
    abs   ffffffff  
    abs   ffffffff  
    0     00008f1f  
    abs   ffffffff  
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    page  address   name                            
    ----  -------   ----                            
    0     00008000  _main                           
    0     00008100  .text                           
    0     00008100  _SetupTo
    0     00008100  ___text_
    0     0000811a  _ResetAn
    0     00008141  _EraseIt
    0     00008156  _Program
    0     00008229  _VerifyI
    0     000082a0  _Program
    0     000082cd  _Show85
    0     00008353  _Show85
    0     00008394  _Program
    0     000083a0  _Verify8
    0     000083ac  _Show85
    0     000083f2  _Use85
    0     00008428  _Get85
    0     00008429  _Put85
    0     0000842a  _Get85
    0     0000842b  _Set85
    0     0000842c  _Reboot8
    0     0000842d  _Wirel
    0     0000843a  _Init85
    0     00008458  _i2cread
    0     00008461  _x0     
    0     00008463  _newline
    0     00008465  _yeah   
    0     00008468  _nah    
    0     0000846b  _ada
    0     0000846e  _ada
    0     00008472  _ada
    0     00008477  _ada
    0     0000847c  _ada
    0     00008480  _ada
    0     00008485  _ada
    0     0000848b  _ada
    0     00008491  _ada
    0     00008496  _ada
    0     000084a1  _ada
    0     000084ac  _ada
    0     000084b2  _ada
    0     000084c1  _ada
    0     000084c7  _ada
    0     000084d2  _ada
    0     000084d7  _wire_85
    0     000084db  _wire_ch
    0     000084e1  _wire_ha
    0     000084eb  _wire_si
    0     000084f5  _wire_Ro
    0     000084ff  _wire_Im
    0     00008509  _wire_Ig
    0     00008513  _wire_Im
    0     0000851d  _wire_Ch
    0     00008527  _wire_Ch
    0     00008531  _wire_De
    0     00008538  _wire_DE
    0     00008541  _wire_MA
    0     0000854a  _wire_PR
    0     00008553  _wire_of
    0     00008556  _wire_rl
    0     0000855d  _wire_St
    0     00008561  _wire_Pr
    0     00008566  _wire_Ve
    0     0000856b  _wire_OK
    0     0000856e  _wire_FA
    0     00008572  _wire_us
    0     0000858e  _wire_un
    0     000085aa  _wire_Ch
    0     000085b6  _wire_Re
    0     000085bf  _wire_Un
    0     000085c8  _wire_Er
    0     000085d1  _wire_Pr
    0     000085da  _wire_Ve
    0     000085e4  _wire_re
    0     000085f3  _wire_ex
    0     00008601  _wire_ac
    0     0000860f  _wire_fl
    0     00008613  _wire_BL
    0     00008617  _wire_BL
    0     0000861c  _wire_BL
    0     00008624  _wire_BL
    0     00008629  _wire_BL
    0     0000862f  _wire_BL
    0     00008636  _wire_BL
    0     0000863d  _wire_BL
    0     00008644  _wire_BL
    0     0000864c  _wire_BL
    0     00008658  _wire_BL
    0     00008664  _wire_BL
    0     00008671  _wire_BL
    0     00008679  _wire_Un
    0     00008683  _wire_pr
    0     00008690  _wire_pa
    0     00008693  _wire_st
    0     00008695  _wire_SW
    0     0000869d  _wire_SW
    0     000086a8  _wire_SW
    0     000086b3  _wire_SW
    0     000086b8  _wire_SW
    0     000086be  _wire_SW
    0     000086c6  _wire_SW
    0     000086cf  _wire_SW
    0     000086d2  _wire_SW
    0     000086dd  _wire_SW
    0     000086e8  _wire_SW
    0     000086f3  _wire_SW
    0     000086fe  _wire_SW
    0     00008709  _wire_SW
    0     00008714  _wire_SW
    0     0000871f  _wire_SW
    0     0000872a  _wire_SW
    0     00008735  _wire_pr
    0     00008739  _coeff_a
    0     00008784  _Ada
    0     000087d0  _LocateC
    0     000087f4  _ReportC
    0     00008818  _ProgACo
    0     00008820  _Report1
    0     00008886  _Show17
    0     0000888e  _Show17
    0     00008895  _Show17
    0     0000894b  _Write17
    0     0000894c  _Write17
    0     0000894d  _ehifGet
    0     00008963  _ehifCmd
    0     00008993  _ehifWri
    0     000089bd  _ehifRea
    0     00008a04  _ehifRea
    0     00008a41  _ehifSet
    0     00008a5c  _ehifRes
    0     00008aa9  _ehifRes
    0     00008ade  _ehifWai
    0     00008b04  _BeginTa
    0     00008b38  _HandleN
    0     00008b41  _WaitFor
    0     00008b53  _WaitFor
    0     00008b75  _WaitFor
    0     00008b99  _I2cRead
    0     00008bd8  _I2cRead
    0     00008c1c  _I2cWrit
    0     00008c2d  _I2cWrit
    0     00008ccb  _I2cReIn
    0     00008cd8  _UsbConn
    0     00008cda  _UsbScan
    0     00008ce8  _UsbGetC
    0     00008d0e  _UsbHexN
    0     00008d18  _UsbGetB
    0     00008d2f  _UsbPutB
    0     00008d3d  _UsbPutW
    0     00008d53  _UsbPutS
    0     00008d63  _NibbleT
    0     00008d70  _ByteToA
    0     00008d7e  _UsbPutH
    0     00008d9e  _UsbPutH
    0     00008dad  _UsbPutH
    0     00008dbd  _BinToAs
    0     00008dcf  _UsbPutD
    0     00008e0c  _UsbPutP (routine in question here)
    0     00008e34  _UsbPutF
    0     00008e4d  _FtdiRes
    0     00008e54  _ehifBlU
    0     00008e63  _ehifBlF
    0     00008e82  _ehifBlF
    0     00008eb4  _ehifBlF
    0     00008ed8  _GetWire
    0     00008ed9  _ChekcFo
    0     00008eda  _DoNothi
    0     00008edb  _CheckFo
    0     00008efa  _CheckFo
    0     00008f0a  _SetTime
    0     00008f15  _Timeout
    0     00008f1f  ___etext
    0     00008f1f  etext                           
    0     003f7000  _Downlo
    0     003f706e  _Explai
    0     003f7149  _Report
    0     003f71e1  _Device
    0     003f7225  _WDogDi
    0     003f722d  _PLLset
    0     003f7267  _PieCnt
    0     003f7286  _PieVec
    0     003f72a4  _MemCop
    0     003f72b9  _SPIWai
    0     003f72be  _SpiRea
    0     003f72d0  _SpiRea
    0     003f72e6  _SpiWri
    0     003f72f5  _SpiWri
    0     003f7308  _SpiTxA
    0     003f7312  _SpiIni
    0     003f7359  _SetupP
    0     003f73b1  _Update
    0     003f73c3  _PackAB
    0     003f73d4  _UnPack
    0     003f73e0  _I2cIni
    0     003f7416  _SetupG
    0     003f7455  _about 
    0     003f7465  _input_
    0     003f7471  _hello 
    0     003f7478  _center
    0     003f7496  _ISR853
    0     003f74a9  _Delay 
    0     003f74b6  _ISR_IL
    0     003f79d6  FS$$DIV
    0     003f7a59  FS$$SUB
    0     003f7a5e  FS$$ADD
    0     003f7ad1  FS$$MPY
    0     003f7b2b  _c_int0
    0     003f7b6f  FS$$TOL
    0     003f7b98  FS$$TOI
    0     003f7bbd  I$$DIV 
    0     003f7bce  I$$MOD 
    0     003f7bdf  I$$TOFS
    0     003f7bf9  __args_
    0     003f7c12  C$$EXIT
    0     003f7c12  _abort 
    0     003f7c14  _exit  
    0     003f7c2b  FS$$CMP
    0     003f7c42  _memset
    0     003f7c4e  __regis
    0     003f7c52  __regis
    0     003f7c56  __nop  
    0     003f7c57  FS$$NEG
    1     00000400  __stack
    1     00000700  __STACK
    1     00000700  _band_g
    1     0000073c  ___TI_c
    1     0000073e  ___TI_d
    1     00000774  _nack_c
    1     00000776  __lock 
    1     00000778  __unloc
    1     0000077a  _led_du
    1     0000077b  _eq_byp
    1     0000077c  _spi_xm
    1     0000077d  _errno 
    1     00000780  _wirele
    1     00000781  _wirele
    1     00000782  _wirele
    1     000007ac  _wirele
    1     000007c0  _Coeff_
    1     000007c2  _Coeff_
    1     000007c4  _Coeff_
    1     000007c6  _Coeff_
    1     000007c8  _Coeff_
    1     00000880  _DevEmu
    1     00000a80  _FlashR
    1     00000b00  _AdcRes
    1     00000c00  _CpuTim
    1     00000c08  _CpuTim
    1     00000c10  _CpuTim
    1     00000ce0  _PieCtr
    1     00000d00  _PieVec
    1     00006400  _Comp1R
    1     00006420  _Comp2R
    1     00006800  _EPwm1R
    1     00006840  _EPwm2R
    1     00006880  _EPwm3R
    1     000068c0  _EPwm4R
    1     00006a00  _ECap1R
    1     00006f80  _GpioCt
    1     00006fc0  _GpioDa
    1     00006fe0  _GpioIn
    1     00007010  _SysCtr
    1     00007040  _SpiaRe
    1     00007050  _SciaRe
    1     00007070  _XIntru
    1     00007100  _AdcReg
    1     00007900  _I2caRe
    1     003d7fff  _PartId
    1     003f4000  _progra
    1     003f5000  _coeffi
    abs   00000300  __STACK
    abs   ffffffff  ___bini
    abs   ffffffff  ___c_ar
    abs   ffffffff  ___cini
    abs   ffffffff  ___pini
    abs   ffffffff  binit  
    abs   ffffffff  cinit  
    abs   ffffffff  pinit  
    
    [277 symbols]
    

  • Mark,
    Thanks for the update. In your first post, you mention that if you manually wrote the op-codes into the offending memory addresses they stayed correct and the code then worked as it should.

    I'm assuming you did this by opening up a memory window to the locations and then clicking the addresses in question and typing the data in.

    On the C28x devices there are 2 buses, a data bus and a program bus. While code executes from program memory and variables are stored in data memory the memory map on the C28x is said to be mirrored, that is the contents in data space are the same as in program space(its physically the same memory).

    Would it be possible to confirm when you "overwrote" the data per above what bus you were using(in the memory window there should be a drop down for data or program(I think default is data). Can you try to write the memory using the other bus and see if this still works? I'm trying to see if there is perhaps some kind of fault on one write bus and not the other for the addresses in question.

    Another thing to try would be to load the original code, fix it manually as before, and then re-load the code to see if it gets corrupted or stays OK. That might tell us there is either an issue with the .out(which at this point I doubt as well) or something wrong with the address bus as well.

    Not sure if you still want to verify the .out/coff file; but there is a command line utility called hex2000.exe that will take a .out file and spit out the data in different hex formats. Path for CCSv8 is here C:\ti\ccsv8\tools\compiler\ti-cgt-c2000_18.1.4.LTS\bin\hex2000.exe.
    Syntax is hex2000 -i yourfile.out -romwidth 16 (this is what we use for customers to make their .out into something that can be bootloaded).

    Best,
    Matthew
  • Matthew:

    I have not forgotten about this, and it seems I do still have the problem, but other life has been getting in the way.

    Thanks for the pointers to the hex2000 util, I did run it, but haven't really examined it yet.

    Also, I found another utul called abs2000 to give me an absolute listing, but I haven't gotten it to work yet. (again haven't been able to spend enough time on it.)

    Please bear with me for a little longer.

    One think I do note, if I click on the "build" hammer while still running the debugger, CCS seems to allow this sometimes, I see in the memory browser lots of pages of code updates. After which time I note the memory gets returned back to what it was before I rebuilt.

    I assume this is for the FLASH programming routines.

    Since the FLASH programming is cycle time critical, I think CCS loads the FLASH programming algorithms into RAM, then loads the FLASH code itself into more RAM, then burns the FLASH, then restores the memory after.

    So, it must then load any RAM code after programming the FLASH.

    I haven't followed this line of thought through yet. but I'll keep you posted.

    Mark.

  • Mark,
    Hope things are going well, and am sure you are still very busy. I'm going to close this thread for now. If you have the opportunity to revisit this issue please use the "Ask a related question" button and this will make sure it gets back to me with the correct priority.

    Best,
    Matthew