Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

TMS320F28020: Modifying the Linker Command File to Create a New Memory Map

Part Number: TMS320F28020
Other Parts Discussed in Thread: TMS320F28027

Hi All,

I recently started a project using a LaunchPadXL TMS320F2802x.  I started with an example and added some simple test code to exercise the SCIA and I2C interfaces, one project file at a time.

Now, I have target prototype hardware in-hand that contains a TMS320F28020 MCU.  The memory map of the 28020 is smaller than the LaunchPad's 28027.  So, now when I compile the same code to run in the smaller memory space, I get an error indicating reference to a memory region that doesn't exist, like this:

C28xx: Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.

I'm having a hard time understanding the different linker command files and other references to memory mapping.

The memory map file generated during the make process shows RAML0 starting at 0x8000 and extending into 0x85ff as follows:

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
PAGE 0:
  BEGIN                 00000000   00000002  00000002  00000000  RWIX
  RAMM0                 00000050   000003b0  000003b0  00000000  RWIX
  RAML0                 00008000   00000600  00000377  00000289  RWIX
  FLASHC                003f2000   00002000  00000000  00002000  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

However, the 28020 physical RAML0 memory starts at 0x8000 and only extends to 0x83ff.

At first, I thought this was because the setting in the project >Properties>CCS General Project tab was set to Variant TMS320F28027:

But, when I changed it to 28020, I got multiple duplicate memory range errors:

I will need to manipulate the memory map before the project is done in several ways to fit all the code into available memory.  I could use some help understanding the appropriate ways to modify the memory map.

I have used the linker command file to make minor changes in the past, so I understand that part of it, but I don't know why the linker still thinks RAML0 is the longer than it really is.

Questions:

1. Why does the make file end up with a memory map that includes address space that doesn't exist in the physical part?

2. Where is it getting the linker command file that tells it each memory's location and size?  The linker command file that was copied into the project folder after changing the Variant setting shows the correct length of RAML0.

3. How do .gel files factor into the equation?

4. Is there an app note describing the memory mapping configuration architecture?  I'm looking for info about manipulating linker cmd files, gel files, properties settings, etc..

Thanks,
robin

  • More info...

    I found where a second linker cmd file is invoked:

    After deleting that entry, I was able to compile/link without the duplication errors.

    I still had memory size issues but was able to modify the linker cmd file and reduce .stack size to get everything to fit and run:

    I would still like to know if there's an app note or design guide that explains the use of gel files, linker command files, how to invoke them, edit them, etc..

    Thanks,
    robin

  • Hi Robin,

    For linker command files, you may refer to the following documents -

    https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html

    https://www.ti.com/lit/ug/spru513r/spru513r.pdf (Chapter Linker Description)

    For gel files - 

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_debug-gel.html

    Hope this helps.

    To answer you question on inker command file path, you can either have it as a file added in the CCS project structure or in the --library option in the project properties. Please make sure you use the correct linker command file corresponding to the device part number you use.

    Regards,

    Veena

  • Hi Veena,

    Thanks for the ref materials.  I haven't had a chance to read them but will over the weekend.

    I added some flash memory to the linker command file and moved .cinit from PRAML0 to FLASH0: (ignore comments)

    MEMORY
    {
    PAGE 0 :	// Program memory space (initialized sections)
       /* For this example, L0 is split between PAGE 0 and PAGE 1 */
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */
    
       BEGIN      : origin = 0x000000, length = 0x000002
       RAMM0      : origin = 0x000040, length = 0x0006C0
       PRAML0     : origin = 0x008000, length = 0x000250
       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
    //   RAMM1      : origin = 0x000400, length = 0x000200     /* on-chip RAM block M1 */
    	FLASH0     : origin = 0x3f4000, length = 0x001000
    
    PAGE 1 :	// Data memory (UNinitialized sections)
    
       /* For this example, L0 is split between PAGE 0 and PAGE 1 */
       BOOT_RSVD   : origin = 0x000002, length = 0x00004E     /* Part of M0, BOOT rom will use this for stack */
       RAMM1       : origin = 0x000700, length = 0x000100     /* on-chip RAM block M1 */
       DRAML0      : origin = 0x008250, length = 0x0001b0
    }
    
    
    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
    
    #ifdef __TI_COMPILER_VERSION__
       #if __TI_COMPILER_VERSION__ >= 15009000
        .TI.ramfunc : {} > RAMM0,      PAGE = 0
       #else
       ramfuncs         : > PRAML0      PAGE = 0
       #endif
    #endif   
    
       .text            : > RAMM0,    PAGE = 0
       .cinit           : > PRAML0,     PAGE = 0
    //   .cinit           : > FLASH0,     PAGE = 0
       .pinit           : > RAMM0,     PAGE = 0
       .switch          : > RAMM0,     PAGE = 0
       .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */
    
       .stack           : > RAMM1,     PAGE = 1
       .ebss            : > DRAML0,    PAGE = 1
       .econst          : > DRAML0,    PAGE = 1
       .esysmem         : > RAMM1,     PAGE = 1
    
       IQmath           : > PRAML0,    PAGE = 0
       IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD
    

    With .cinit assigned to PRAML0, the code runs on the target.  With .cinit assigned to FLASH0, the project compiles and builds without error, but while uploading to target (after erasing flash and while trying to upload .cinit), I get error - 1156:

    If I click "No" the following "Load program Error" pops up:

    After that, upon another attempt to compile/build, I get error - 233:

    At this point, the target board appears to be bricked.  I'm not able to connect to it at all.  I've tried different cables, different XDS100 interface, different computer, and all fail to connect.  A fresh target board connects without issue.

    This has happened twice.  The first time I reassigned .text to FLASH0.  When it first happened with the first target board, I selected "Yes" in the Error - 1156 dialog.  That didn't allow connection, but it didn't brick the target either.  I only have one more prototype of the target board, so must proceed very cautiously.

    Do you see where the problem lies?  Any ideas?  Is there any way to recover the target board without replacing the TMS320F28020?

    I'm afraid to continue until this is worked out.  I don't want to risk destroying my last proto board.

    Thanks,
    robin

  • Hi Robin,

    I will loop in the Flash expert to help you better/

    Regards,

    Veena

  • Robin,

    From the error message and the after effects I think there may have been a reset event during the programming, which in turn corrupted the CSM password stored in flash at 0x3F7FF8-3F7FFF.

    For the devices that will no longer connect, if you change the boot mode to wait boot mode, this should allow you to connect the device to CCS

    Once connected open up a memory window to the password addresses mentioned above, and see if you read back 0x0000.  If you see 0x0000, then the password is programmed to something indeterminate and the device is not salvageable.  If  you see anything else then the CSM is not programmed and we can look into that scenario(I'm going to assume it will be 0x0000 on the bad devices for the below).

    I'd like to first check that there is/was adequate supply current for the flash erase/program cycle:  below is from page 33 of the DS https://www.ti.com/lit/ds/symlink/tms320f28027.pdf

    If there was inadequate supply it could result in a droop in the VDDIO supply(assuming you are using the on-chip VREG) which would activate the internal Brown Out Reset, interrupting the flash operation and resulting in non 0xFFFF values in the password locations.  In addition to the supply being capable of the above, we should also look at the relative location of the decaps on the VDDIO pin to make sure they are close to the device and of the correct value(I believe we use a 2.2uF cap on the LaunchPad).

    In terms of debugging this functionally it will be a safer option to only use sectors B and/or C for now(on the good device) as there is less chance of effecting the passwords if there is an event.  You would also want to change the settings in the Flash tools in CCS to not erase sectors A/D if you decide to program the good unit while we figure this out.  By default any flash programming operation will erase all sectors even if there is not a need to do so from a the .coff POV.

    Will look for your findings on the above and we can go from there.

    Best,
    Matthew

  • Hi Matthew,

    Thanks for your response.

    Boot mode was wired for "GetMode", but now I've reconfigured it to 'Wait' boot mode.  I did that by pulling GPIO34 low.  /TRST was already pulled low, and TDO was already pulled high.  Now, when I open the memory browser to 0x3f7ff8, here's what I see:

    Clearly, the CSM password has been set to non-0xffff values.  I'll have to replace the part on the two boards that this happened to.

    Now the big question, "How did it happen?"

    My target module is being powered vie PoE with a power rating of 30W.  I'm not sure if those are real or marketing Watts, and I don't see published spec's to find out.  I imagine it's providing around 25-50V at between 0.5 and 1.0A.  I have a 1.0A/5V LDO feeding a 500mA/3.3V LDO regulator on my target board.  I've watched the power supply line during flash erases and don't see it falling anywhere near 5%.  It looks pretty stable.  I've also programmed the target dozens of times without any issue, before adding FLASH0 to the linker command file.  I added FLASH0 and reprogrammed many times without issue.  It was only when I tried linking either .cinit or .text to FLASH0 that the problem occurred.

    Vddio pins have 1.2uF caps close to the part's pins, as recommended on page 12 of the datasheet you mention above.

    The code started life using a LaunchXL TMS320F28027, which has more onboard flash.  If a gel file or linker command file was still set up for the 28027 when I flashed the 28020, that might explain it.  BUT, as far as I know the gel and linker command files have been correct for the 28020.

    Thoughts?

    Thanks,
    robin

  • Robin,

    Thanks for the additional info, from what you've said I also doubt that the supply is an issue. 

    Inside of CCS, after you have launched the target config, click on "Tools"->"On-Chip Flash" and compare the window to the below.  This is what CCS will use when you "load" a coff file that includes mapped flash addresses.  Note the sector sizes, as these will be what is different from a 28020 vs 28027.  CCS should give a warning, however, if the 28027 sizes(2x more) were in place for a 28020 target.

    Please also confirm that the Key0-7 are showing all FFFF.

    The above settings is what I was referring to if we want to avoid erasing those sectors that are unused by your project.

    Once we decide to attempt to program another device,we can consider un-checking erase on A/D as well as re-mapping your FLASH_H0 to sector B or C to be conservative until we are sure of the root cause.  A mis-programmation of B/C should not result in a locked device.

    Your linker is correct for the 28020 device.  Can you look in the debug directory of your project and also send back the *.map file?  I can review this to confirm that sector D is all that is being loaded.

    Finally, from the above comment on voltage rail goodness, I assume you are using the on-chip VREG.  Please check to see that pin VREGENZ is hard tied to VSS(correct) vs a pulldown resistor(incorrect).

    Best,
    Matthew

  • Hi Matthew,

    My On-Chip Flash configuration matches your image above.  Here's an image of my window:

    After the load error, I switched the comments such that .cinit was no longer assigned to FLASH0 and was reassigned to PRAML0, then recompiled.  As a result, the .map file from that day shows .cinit loaded in PRAML0.

    Since the .map file from that day doesn't reflect the memory configuration that caused the problem, today I switched the comments back, to put .cinit in FLASH0.  Then rebuilt the project to produce a .map file that was what would have been in place when the load error occurred.

    I renamed each .map file accordingly and have attached them both:

    1. CAM-20-D_PRAML0.map

    ******************************************************************************
                 TMS320C2000 Linker PC v21.6.0                     
    ******************************************************************************
    >> Linked Fri Apr  1 12:19:43 2022
    
    OUTPUT FILE NAME:   <CAM-20-D.out>
    ENTRY POINT SYMBOL: "code_start"  address: 00000000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
    PAGE 0:
      BEGIN                 00000000   00000002  00000002  00000000  RWIX
      RAMM0                 00000040   000006c0  000005dc  000000e4  RWIX
      PRAML0                00008000   00000250  000000c5  0000018b  RWIX
      FLASH0                003f4000   00001000  00000000  00001000  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
    
    PAGE 1:
      BOOT_RSVD             00000002   0000004e  00000000  0000004e  RWIX
      RAMM1                 00000700   00000100  00000100  00000000  RWIX
      DEV_EMU               00000880   00000105  00000000  00000105  RWIX
      SYS_PWR_CTL           00000985   00000003  00000000  00000003  RWIX
      FLASH_REGS            00000a80   00000060  00000000  00000060  RWIX
      CSM                   00000ae0   00000010  00000000  00000010  RWIX
      ADC_RESULT            00000b00   00000020  00000000  00000020  RWIX
      CPU_TIMER0            00000c00   00000008  00000000  00000008  RWIX
      CPU_TIMER1            00000c08   00000008  00000000  00000008  RWIX
      CPU_TIMER2            00000c10   00000008  00000000  00000008  RWIX
      PIE_CTRL              00000ce0   00000020  00000000  00000020  RWIX
      PIE_VECT              00000d00   00000100  00000000  00000100  RWIX
      COMP1                 00006400   00000020  00000000  00000020  RWIX
      COMP2                 00006420   00000020  00000000  00000020  RWIX
      EPWM1                 00006800   00000040  00000000  00000040  RWIX
      EPWM2                 00006840   00000040  00000000  00000040  RWIX
      EPWM3                 00006880   00000040  00000000  00000040  RWIX
      EPWM4                 000068c0   00000040  00000000  00000040  RWIX
      ECAP1                 00006a00   00000020  00000000  00000020  RWIX
      GPIOCTRL              00006f80   00000040  00000000  00000040  RWIX
      GPIODAT               00006fc0   00000020  00000000  00000020  RWIX
      GPIOINT               00006fe0   00000020  00000000  00000020  RWIX
      SYSTEM                00007010   00000020  00000000  00000020  RWIX
      SPIA                  00007040   00000010  00000000  00000010  RWIX
      SCIA                  00007050   00000010  00000000  00000010  RWIX
      NMIINTRUPT            00007060   00000010  00000000  00000010  RWIX
      XINTRUPT              00007070   00000010  00000000  00000010  RWIX
      ADC                   00007100   00000080  00000000  00000080  RWIX
      I2CA                  00007900   00000040  00000000  00000040  RWIX
      DRAML0                00008250   000001b0  000001b0  00000000  RWIX
      PARTID                003d7fff   00000001  00000000  00000001  RWIX
      CSM_PWL               003f7ff8   00000008  00000000  00000008  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    codestart 
    *          0    00000000    00000002     
                      00000000    00000002     driverlib.lib : f2802xx_codestartbranch.obj (codestart)
    
    .text      0    00000040    000005dc     
                      00000040    000001ed     SCIA.obj (.text)
                      0000022d    00000054     rts2800_ml.lib : boot28.asm.obj (.text)
                      00000281    00000048     driverlib.lib : gpio.obj (.text:_GPIO_setMode)
                      000002c9    00000029                   : gpio.obj (.text:_GPIO_setDirection)
                      000002f2    00000029                   : gpio.obj (.text:_GPIO_setPullUp)
                      0000031b    00000029     rts2800_ml.lib : exit.c.obj (.text)
                      00000344    00000027     driverlib.lib : gpio.obj (.text:_GPIO_setQualification)
                      0000036b    00000024     rts2800_ml.lib : cpy_tbl.c.obj (.text)
                      0000038f    0000001d                    : memcpy.c.obj (.text)
                      000003ac    00000015     driverlib.lib : pll.obj (.text:_PLL_setup)
                      000003c1    00000014                   : gpio.obj (.text:_GPIO_toggle)
                      000003d5    00000011                   : gpio.obj (.text:_GPIO_getData)
                      000003e6    00000011                   : pie.obj (.text:_PIE_disableAllInts)
                      000003f7    00000011                   : pie.obj (.text:_PIE_setDebugIntVectorTable)
                      00000408    00000011     rts2800_ml.lib : args_main.c.obj (.text)
                      00000419    0000000a     driverlib.lib : adc.obj (.text:_ADC_init)
                      00000423    0000000a                   : pie.obj (.text:_PIE_init)
                      0000042d    0000000a                   : sci.obj (.text:_SCI_resetChannels)
                      00000437    0000000a                   : sci.obj (.text:_SCI_resetRxFifo)
                      00000441    0000000a                   : sci.obj (.text:_SCI_resetTxFifo)
                      0000044b    00000009                   : clk.obj (.text:_CLK_enableSciaClock)
                      00000454    00000009                   : sci.obj (.text:_SCI_putDataBlocking)
                      0000045d    00000009     rts2800_ml.lib : _lock.c.obj (.text)
                      00000466    00000008     driverlib.lib : clk.obj (.text:_CLK_init)
                      0000046e    00000008                   : flash.obj (.text:_FLASH_init)
                      00000476    00000008                   : gpio.obj (.text:_GPIO_init)
                      0000047e    00000008                   : pll.obj (.text:_PLL_init)
                      00000486    00000008                   : sci.obj (.text:_SCI_init)
                      0000048e    00000008                   : wdog.obj (.text:_WDOG_disable)
                      00000496    00000008                   : wdog.obj (.text:_WDOG_init)
                      0000049e    00000008                   : f2802xx_codestartbranch.obj (.text)
                      000004a6    00000007                   : clk.obj (.text:_CLK_enableAdcClock)
                      000004ad    00000007                   : clk.obj (.text:_CLK_setOscSrc)
                      000004b4    00000007                   : pll.obj (.text:_PLL_setDivider)
                      000004bb    00000007                   : sci.obj (.text:_SCI_setRxFifoIntLevel)
                      000004c2    00000007                   : sci.obj (.text:_SCI_setTxFifoIntLevel)
                      000004c9    00000006                   : pll.obj (.text:_PLL_setMultiplier)
                      000004cf    00000006                   : sci.obj (.text:_SCI_setBaudRate)
                      000004d5    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT1_ISR)
                      000004da    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT2_ISR)
                      000004df    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT3_ISR)
                      000004e4    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT4_ISR)
                      000004e9    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT5_ISR)
                      000004ee    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT6_ISR)
                      000004f3    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT7_ISR)
                      000004f8    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT8_ISR)
                      000004fd    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT9_ISR)
                      00000502    00000005                   : f2802xx_defaultisr.obj (.text:_DATALOG_ISR)
                      00000507    00000005                   : f2802xx_defaultisr.obj (.text:_ECAP1_INT_ISR)
                      0000050c    00000005                   : f2802xx_defaultisr.obj (.text:_EMPTY_ISR)
                      00000511    00000005                   : f2802xx_defaultisr.obj (.text:_EMUINT_ISR)
                      00000516    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM1_INT_ISR)
                      0000051b    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM1_TZINT_ISR)
                      00000520    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM2_INT_ISR)
                      00000525    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM2_TZINT_ISR)
                      0000052a    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM3_INT_ISR)
                      0000052f    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM3_TZINT_ISR)
                      00000534    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM4_INT_ISR)
                      00000539    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM4_TZINT_ISR)
                      0000053e    00000005                   : f2802xx_defaultisr.obj (.text:_I2CINT1A_ISR)
                      00000543    00000005                   : f2802xx_defaultisr.obj (.text:_I2CINT2A_ISR)
                      00000548    00000005                   : f2802xx_defaultisr.obj (.text:_ILLEGAL_ISR)
                      0000054d    00000005                   : f2802xx_defaultisr.obj (.text:_INT13_ISR)
                      00000552    00000005                   : f2802xx_defaultisr.obj (.text:_INT14_ISR)
                      00000557    00000005                   : f2802xx_defaultisr.obj (.text:_NMI_ISR)
                      0000055c    00000005                   : f2802xx_defaultisr.obj (.text:_PIE_RESERVED)
                      00000561    00000005                   : pie.obj (.text:_PIE_illegalIsr)
                      00000566    00000005                   : f2802xx_defaultisr.obj (.text:_RTOSINT_ISR)
                      0000056b    00000005                   : f2802xx_defaultisr.obj (.text:_SCIRXINTA_ISR)
                      00000570    00000005                   : f2802xx_defaultisr.obj (.text:_SCITXINTA_ISR)
                      00000575    00000005                   : f2802xx_defaultisr.obj (.text:_SPIRXINTA_ISR)
                      0000057a    00000005                   : f2802xx_defaultisr.obj (.text:_SPITXINTA_ISR)
                      0000057f    00000005                   : f2802xx_defaultisr.obj (.text:_TINT0_ISR)
                      00000584    00000005                   : f2802xx_defaultisr.obj (.text:_USER10_ISR)
                      00000589    00000005                   : f2802xx_defaultisr.obj (.text:_USER11_ISR)
                      0000058e    00000005                   : f2802xx_defaultisr.obj (.text:_USER12_ISR)
                      00000593    00000005                   : f2802xx_defaultisr.obj (.text:_USER1_ISR)
                      00000598    00000005                   : f2802xx_defaultisr.obj (.text:_USER2_ISR)
                      0000059d    00000005                   : f2802xx_defaultisr.obj (.text:_USER3_ISR)
                      000005a2    00000005                   : f2802xx_defaultisr.obj (.text:_USER4_ISR)
                      000005a7    00000005                   : f2802xx_defaultisr.obj (.text:_USER5_ISR)
                      000005ac    00000005                   : f2802xx_defaultisr.obj (.text:_USER6_ISR)
                      000005b1    00000005                   : f2802xx_defaultisr.obj (.text:_USER7_ISR)
                      000005b6    00000005                   : f2802xx_defaultisr.obj (.text:_USER8_ISR)
                      000005bb    00000005                   : f2802xx_defaultisr.obj (.text:_USER9_ISR)
                      000005c0    00000005                   : f2802xx_defaultisr.obj (.text:_WAKEINT_ISR)
                      000005c5    00000005                   : f2802xx_defaultisr.obj (.text:_XINT1_ISR)
                      000005ca    00000005                   : f2802xx_defaultisr.obj (.text:_XINT2_ISR)
                      000005cf    00000005                   : f2802xx_defaultisr.obj (.text:_XINT3_ISR)
                      000005d4    00000005                   : f2802xx_defaultisr.obj (.text:_rsvd_ISR)
                      000005d9    00000004                   : cpu.obj (.text:_CPU_init)
                      000005dd    00000004                   : sci.obj (.text:_SCI_clearRxFifoInt)
                      000005e1    00000004                   : sci.obj (.text:_SCI_clearTxFifoInt)
                      000005e5    00000004                   : sci.obj (.text:_SCI_enableFifoEnh)
                      000005e9    00000004                   : sci.obj (.text:_SCI_getRxFifoStatus)
                      000005ed    00000004                   : sci.obj (.text:_SCI_setCharLength)
                      000005f1    00000004                   : sci.obj (.text:_SCI_setNumStopBits)
                      000005f5    00000003                   : cpu.obj (.text:_CPU_clearIntFlags)
                      000005f8    00000003                   : cpu.obj (.text:_CPU_disableGlobalInts)
                      000005fb    00000003                   : pie.obj (.text:_PIE_disable)
                      000005fe    00000003                   : pie.obj (.text:_PIE_enable)
                      00000601    00000003                   : pll.obj (.text:_PLL_getClkStatus)
                      00000604    00000003                   : pll.obj (.text:_PLL_getLockStatus)
                      00000607    00000003                   : sci.obj (.text:_SCI_disableParity)
                      0000060a    00000003                   : sci.obj (.text:_SCI_enable)
                      0000060d    00000003                   : sci.obj (.text:_SCI_enableRx)
                      00000610    00000003                   : sci.obj (.text:_SCI_enableRxInt)
                      00000613    00000003                   : sci.obj (.text:_SCI_enableTx)
                      00000616    00000003                   : sci.obj (.text:_SCI_enableTxInt)
                      00000619    00000002     rts2800_ml.lib : pre_init.c.obj (.text)
                      0000061b    00000001                    : startup.c.obj (.text)
    
    .cinit     0    00008000    000000c5     
                      00008000    00000083     SCIA.obj (.cinit:_message)
                      00008083    00000028     SCIA.obj (.cinit)
                      000080ab    0000000e     rts2800_ml.lib : exit.c.obj (.cinit)
                      000080b9    00000005                    : _lock.c.obj (.cinit:__lock)
                      000080be    00000005                    : _lock.c.obj (.cinit:__unlock)
                      000080c3    00000002     --HOLE-- [fill = 0]
    
    .pinit     0    00000040    00000000     UNINITIALIZED
    
    .reset     0    003fffc0    00000002     DSECT
                      003fffc0    00000002     rts2800_ml.lib : boot28.asm.obj (.reset)
    
    .stack     1    00000700    00000100     UNINITIALIZED
                      00000700    00000100     --HOLE--
    
    .econst    1    00008250    00000100     
                      00008250    00000100     driverlib.lib : pie.obj (.econst:_PIE_tableDebugInit)
    
    .ebss      1    00008350    000000b0     UNINITIALIZED
                      00008350    00000018     SCIA.obj (.ebss)
                      00008368    00000006     rts2800_ml.lib : exit.c.obj (.ebss)
                      0000836e    00000002                    : _lock.c.obj (.ebss:__lock)
                      00008370    00000002                    : _lock.c.obj (.ebss:__unlock)
                      00008372    00000001     driverlib.lib : cpu.obj (.ebss)
                      00008373    0000000d     --HOLE--
                      00008380    00000080     SCIA.obj (.ebss:_message)
    
    MODULE SUMMARY
    
           Module                        code   initialized data   uninitialized data
           ------                        ----   ----------------   ------------------
        .\
           SCIA.obj                      493    171                152               
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        493    171                152               
                                                                                     
        C:/ti/C2000Ware_4_00_00_00/device_support/f2802x/common/ccs/Debug/driverlib.lib
           pie.obj                       55     256                0                 
           f2802xx_defaultisr.obj        255    0                  0                 
           gpio.obj                      238    0                  0                 
           sci.obj                       109    0                  0                 
           pll.obj                       48     0                  0                 
           clk.obj                       31     0                  0                 
           wdog.obj                      16     0                  0                 
           cpu.obj                       10     0                  1                 
           adc.obj                       10     0                  0                 
           f2802xx_codestartbranch.obj   10     0                  0                 
           flash.obj                     8      0                  0                 
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        790    256                1                 
                                                                                     
        C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/lib/rts2800_ml.lib
           boot28.asm.obj                84     0                  0                 
           exit.c.obj                    41     14                 6                 
           cpy_tbl.c.obj                 36     0                  0                 
           memcpy.c.obj                  29     0                  0                 
           _lock.c.obj                   9      10                 4                 
           args_main.c.obj               17     0                  0                 
           pre_init.c.obj                2      0                  0                 
           startup.c.obj                 1      0                  0                 
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        219    24                 10                
                                                                                     
           Stack:                        0      0                  256               
        +--+-----------------------------+------+------------------+--------------------+
           Grand Total:                  1502   451                419               
    
    
    GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE
    
    address     data page           name
    --------    ----------------    ----
    00000700      1c (00000700)     __stack
    
    00008250     209 (00008240)     _PIE_tableDebugInit
    
    00008350     20d (00008340)     _LoopCount
    00008351     20d (00008340)     _ErrorCount
    00008352     20d (00008340)     _redLED
    00008353     20d (00008340)     _blueLED
    00008354     20d (00008340)     _greenLED
    00008355     20d (00008340)     _rdvLoopCount
    00008356     20d (00008340)     _rdvWaitCount
    00008357     20d (00008340)     _rdvWordCount
    00008358     20d (00008340)     _rdvReceivedCount
    00008359     20d (00008340)     _lastReceived
    0000835a     20d (00008340)     _byteReceived
    0000835b     20d (00008340)     _receivedByteFlag
    0000835c     20d (00008340)     _myAdc
    0000835e     20d (00008340)     _myClk
    00008360     20d (00008340)     _myFlash
    00008362     20d (00008340)     _myGpio
    00008364     20d (00008340)     _myPie
    00008366     20d (00008340)     _mySci
    00008368     20d (00008340)     ___TI_enable_exit_profile_output
    0000836a     20d (00008340)     ___TI_cleanup_ptr
    0000836c     20d (00008340)     ___TI_dtors_ptr
    0000836e     20d (00008340)     __lock
    00008370     20d (00008340)     __unlock
    00008372     20d (00008340)     _cpu
    
    00008380     20e (00008380)     _message
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    page  address   name                            
    ----  -------   ----                            
    0     00000040  .text                           
    0     0000031b  C$$EXIT                         
    0     000004d5  _ADCINT1_ISR                    
    0     000004da  _ADCINT2_ISR                    
    0     000004df  _ADCINT3_ISR                    
    0     000004e4  _ADCINT4_ISR                    
    0     000004e9  _ADCINT5_ISR                    
    0     000004ee  _ADCINT6_ISR                    
    0     000004f3  _ADCINT7_ISR                    
    0     000004f8  _ADCINT8_ISR                    
    0     000004fd  _ADCINT9_ISR                    
    0     00000419  _ADC_init                       
    0     000004a6  _CLK_enableAdcClock             
    0     0000044b  _CLK_enableSciaClock            
    0     00000466  _CLK_init                       
    0     000004ad  _CLK_setOscSrc                  
    0     000005f5  _CPU_clearIntFlags              
    0     000005f8  _CPU_disableGlobalInts          
    0     000005d9  _CPU_init                       
    0     00000502  _DATALOG_ISR                    
    0     00000507  _ECAP1_INT_ISR                  
    0     0000050c  _EMPTY_ISR                      
    0     00000511  _EMUINT_ISR                     
    0     00000516  _EPWM1_INT_ISR                  
    0     0000051b  _EPWM1_TZINT_ISR                
    0     00000520  _EPWM2_INT_ISR                  
    0     00000525  _EPWM2_TZINT_ISR                
    0     0000052a  _EPWM3_INT_ISR                  
    0     0000052f  _EPWM3_TZINT_ISR                
    0     00000534  _EPWM4_INT_ISR                  
    0     00000539  _EPWM4_TZINT_ISR                
    1     00008351  _ErrorCount                     
    0     0000046e  _FLASH_init                     
    0     000003d5  _GPIO_getData                   
    0     00000476  _GPIO_init                      
    0     000002c9  _GPIO_setDirection              
    0     00000281  _GPIO_setMode                   
    0     000002f2  _GPIO_setPullUp                 
    0     00000344  _GPIO_setQualification          
    0     000003c1  _GPIO_toggle                    
    0     0000053e  _I2CINT1A_ISR                   
    0     00000543  _I2CINT2A_ISR                   
    0     00000548  _ILLEGAL_ISR                    
    0     0000054d  _INT13_ISR                      
    0     00000552  _INT14_ISR                      
    1     00008350  _LoopCount                      
    0     00000557  _NMI_ISR                        
    0     0000055c  _PIE_RESERVED                   
    0     000005fb  _PIE_disable                    
    0     000003e6  _PIE_disableAllInts             
    0     000005fe  _PIE_enable                     
    0     00000561  _PIE_illegalIsr                 
    0     00000423  _PIE_init                       
    0     000003f7  _PIE_setDebugIntVectorTable     
    1     00008250  _PIE_tableDebugInit             
    0     00000601  _PLL_getClkStatus               
    0     00000604  _PLL_getLockStatus              
    0     0000047e  _PLL_init                       
    0     000004b4  _PLL_setDivider                 
    0     000004c9  _PLL_setMultiplier              
    0     000003ac  _PLL_setup                      
    0     00000566  _RTOSINT_ISR                    
    0     0000056b  _SCIRXINTA_ISR                  
    0     00000570  _SCITXINTA_ISR                  
    0     000005dd  _SCI_clearRxFifoInt             
    0     000005e1  _SCI_clearTxFifoInt             
    0     00000607  _SCI_disableParity              
    0     0000060a  _SCI_enable                     
    0     000005e5  _SCI_enableFifoEnh              
    0     0000060d  _SCI_enableRx                   
    0     00000610  _SCI_enableRxInt                
    0     00000613  _SCI_enableTx                   
    0     00000616  _SCI_enableTxInt                
    0     000005e9  _SCI_getRxFifoStatus            
    0     00000486  _SCI_init                       
    0     00000454  _SCI_putDataBlocking            
    0     0000042d  _SCI_resetChannels              
    0     00000437  _SCI_resetRxFifo                
    0     00000441  _SCI_resetTxFifo                
    0     000004cf  _SCI_setBaudRate                
    0     000005ed  _SCI_setCharLength              
    0     000005f1  _SCI_setNumStopBits             
    0     000004bb  _SCI_setRxFifoIntLevel          
    0     000004c2  _SCI_setTxFifoIntLevel          
    0     00000575  _SPIRXINTA_ISR                  
    0     0000057a  _SPITXINTA_ISR                  
    0     0000057f  _TINT0_ISR                      
    0     00000584  _USER10_ISR                     
    0     00000589  _USER11_ISR                     
    0     0000058e  _USER12_ISR                     
    0     00000593  _USER1_ISR                      
    0     00000598  _USER2_ISR                      
    0     0000059d  _USER3_ISR                      
    0     000005a2  _USER4_ISR                      
    0     000005a7  _USER5_ISR                      
    0     000005ac  _USER6_ISR                      
    0     000005b1  _USER7_ISR                      
    0     000005b6  _USER8_ISR                      
    0     000005bb  _USER9_ISR                      
    0     000005c0  _WAKEINT_ISR                    
    0     0000048e  _WDOG_disable                   
    0     00000496  _WDOG_init                      
    0     000005c5  _XINT1_ISR                      
    0     000005ca  _XINT2_ISR                      
    0     000005cf  _XINT3_ISR                      
    1     00000800  __STACK_END                     
    abs   00000100  __STACK_SIZE                    
    1     0000836a  ___TI_cleanup_ptr               
    1     0000836c  ___TI_dtors_ptr                 
    1     00008368  ___TI_enable_exit_profile_output
    abs   ffffffff  ___TI_pprof_out_hndl            
    abs   ffffffff  ___TI_prof_data_size            
    abs   ffffffff  ___TI_prof_data_start           
    abs   ffffffff  ___binit__                      
    abs   ffffffff  ___c_args__                     
    0     00008000  ___cinit__                      
    0     0000061c  ___etext__                      
    abs   ffffffff  ___pinit__                      
    0     00000040  ___text__                       
    0     00000408  __args_main                     
    1     0000836e  __lock                          
    0     00000465  __nop                           
    0     00000461  __register_lock                 
    0     0000045d  __register_unlock               
    1     00000700  __stack                         
    0     0000061b  __system_post_cinit             
    0     00000619  __system_pre_init               
    1     00008370  __unlock                        
    0     0000031b  _abort                          
    1     00008353  _blueLED                        
    1     0000835a  _byteReceived                   
    0     0000022d  _c_int00                        
    0     0000036b  _copy_in                        
    1     00008372  _cpu                            
    0     000001c7  _error                          
    0     0000031d  _exit                           
    1     00008354  _greenLED                       
    1     00008359  _lastReceived                   
    0     00000048  _main                           
    0     0000038f  _memcpy                         
    1     00008380  _message                        
    1     0000835c  _myAdc                          
    1     0000835e  _myClk                          
    1     00008360  _myFlash                        
    1     00008362  _myGpio                         
    1     00008364  _myPie                          
    1     00008366  _mySci                          
    1     00008355  _rdvLoopCount                   
    1     00008358  _rdvReceivedCount               
    1     00008356  _rdvWaitCount                   
    1     00008357  _rdvWordCount                   
    1     0000835b  _receivedByteFlag               
    1     00008352  _redLED                         
    0     000005d4  _rsvd_ISR                       
    0     00000202  _scia_fifo_init                 
    0     000001cc  _scia_init                      
    abs   ffffffff  binit                           
    0     00008000  cinit                           
    0     00000000  code_start                      
    0     0000061c  etext                           
    abs   ffffffff  pinit                           
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    page  address   name                            
    ----  -------   ----                            
    0     00000000  code_start                      
    0     00000040  .text                           
    0     00000040  ___text__                       
    0     00000048  _main                           
    0     000001c7  _error                          
    0     000001cc  _scia_init                      
    0     00000202  _scia_fifo_init                 
    0     0000022d  _c_int00                        
    0     00000281  _GPIO_setMode                   
    0     000002c9  _GPIO_setDirection              
    0     000002f2  _GPIO_setPullUp                 
    0     0000031b  C$$EXIT                         
    0     0000031b  _abort                          
    0     0000031d  _exit                           
    0     00000344  _GPIO_setQualification          
    0     0000036b  _copy_in                        
    0     0000038f  _memcpy                         
    0     000003ac  _PLL_setup                      
    0     000003c1  _GPIO_toggle                    
    0     000003d5  _GPIO_getData                   
    0     000003e6  _PIE_disableAllInts             
    0     000003f7  _PIE_setDebugIntVectorTable     
    0     00000408  __args_main                     
    0     00000419  _ADC_init                       
    0     00000423  _PIE_init                       
    0     0000042d  _SCI_resetChannels              
    0     00000437  _SCI_resetRxFifo                
    0     00000441  _SCI_resetTxFifo                
    0     0000044b  _CLK_enableSciaClock            
    0     00000454  _SCI_putDataBlocking            
    0     0000045d  __register_unlock               
    0     00000461  __register_lock                 
    0     00000465  __nop                           
    0     00000466  _CLK_init                       
    0     0000046e  _FLASH_init                     
    0     00000476  _GPIO_init                      
    0     0000047e  _PLL_init                       
    0     00000486  _SCI_init                       
    0     0000048e  _WDOG_disable                   
    0     00000496  _WDOG_init                      
    0     000004a6  _CLK_enableAdcClock             
    0     000004ad  _CLK_setOscSrc                  
    0     000004b4  _PLL_setDivider                 
    0     000004bb  _SCI_setRxFifoIntLevel          
    0     000004c2  _SCI_setTxFifoIntLevel          
    0     000004c9  _PLL_setMultiplier              
    0     000004cf  _SCI_setBaudRate                
    0     000004d5  _ADCINT1_ISR                    
    0     000004da  _ADCINT2_ISR                    
    0     000004df  _ADCINT3_ISR                    
    0     000004e4  _ADCINT4_ISR                    
    0     000004e9  _ADCINT5_ISR                    
    0     000004ee  _ADCINT6_ISR                    
    0     000004f3  _ADCINT7_ISR                    
    0     000004f8  _ADCINT8_ISR                    
    0     000004fd  _ADCINT9_ISR                    
    0     00000502  _DATALOG_ISR                    
    0     00000507  _ECAP1_INT_ISR                  
    0     0000050c  _EMPTY_ISR                      
    0     00000511  _EMUINT_ISR                     
    0     00000516  _EPWM1_INT_ISR                  
    0     0000051b  _EPWM1_TZINT_ISR                
    0     00000520  _EPWM2_INT_ISR                  
    0     00000525  _EPWM2_TZINT_ISR                
    0     0000052a  _EPWM3_INT_ISR                  
    0     0000052f  _EPWM3_TZINT_ISR                
    0     00000534  _EPWM4_INT_ISR                  
    0     00000539  _EPWM4_TZINT_ISR                
    0     0000053e  _I2CINT1A_ISR                   
    0     00000543  _I2CINT2A_ISR                   
    0     00000548  _ILLEGAL_ISR                    
    0     0000054d  _INT13_ISR                      
    0     00000552  _INT14_ISR                      
    0     00000557  _NMI_ISR                        
    0     0000055c  _PIE_RESERVED                   
    0     00000561  _PIE_illegalIsr                 
    0     00000566  _RTOSINT_ISR                    
    0     0000056b  _SCIRXINTA_ISR                  
    0     00000570  _SCITXINTA_ISR                  
    0     00000575  _SPIRXINTA_ISR                  
    0     0000057a  _SPITXINTA_ISR                  
    0     0000057f  _TINT0_ISR                      
    0     00000584  _USER10_ISR                     
    0     00000589  _USER11_ISR                     
    0     0000058e  _USER12_ISR                     
    0     00000593  _USER1_ISR                      
    0     00000598  _USER2_ISR                      
    0     0000059d  _USER3_ISR                      
    0     000005a2  _USER4_ISR                      
    0     000005a7  _USER5_ISR                      
    0     000005ac  _USER6_ISR                      
    0     000005b1  _USER7_ISR                      
    0     000005b6  _USER8_ISR                      
    0     000005bb  _USER9_ISR                      
    0     000005c0  _WAKEINT_ISR                    
    0     000005c5  _XINT1_ISR                      
    0     000005ca  _XINT2_ISR                      
    0     000005cf  _XINT3_ISR                      
    0     000005d4  _rsvd_ISR                       
    0     000005d9  _CPU_init                       
    0     000005dd  _SCI_clearRxFifoInt             
    0     000005e1  _SCI_clearTxFifoInt             
    0     000005e5  _SCI_enableFifoEnh              
    0     000005e9  _SCI_getRxFifoStatus            
    0     000005ed  _SCI_setCharLength              
    0     000005f1  _SCI_setNumStopBits             
    0     000005f5  _CPU_clearIntFlags              
    0     000005f8  _CPU_disableGlobalInts          
    0     000005fb  _PIE_disable                    
    0     000005fe  _PIE_enable                     
    0     00000601  _PLL_getClkStatus               
    0     00000604  _PLL_getLockStatus              
    0     00000607  _SCI_disableParity              
    0     0000060a  _SCI_enable                     
    0     0000060d  _SCI_enableRx                   
    0     00000610  _SCI_enableRxInt                
    0     00000613  _SCI_enableTx                   
    0     00000616  _SCI_enableTxInt                
    0     00000619  __system_pre_init               
    0     0000061b  __system_post_cinit             
    0     0000061c  ___etext__                      
    0     0000061c  etext                           
    0     00008000  ___cinit__                      
    0     00008000  cinit                           
    1     00000700  __stack                         
    1     00000800  __STACK_END                     
    1     00008250  _PIE_tableDebugInit             
    1     00008350  _LoopCount                      
    1     00008351  _ErrorCount                     
    1     00008352  _redLED                         
    1     00008353  _blueLED                        
    1     00008354  _greenLED                       
    1     00008355  _rdvLoopCount                   
    1     00008356  _rdvWaitCount                   
    1     00008357  _rdvWordCount                   
    1     00008358  _rdvReceivedCount               
    1     00008359  _lastReceived                   
    1     0000835a  _byteReceived                   
    1     0000835b  _receivedByteFlag               
    1     0000835c  _myAdc                          
    1     0000835e  _myClk                          
    1     00008360  _myFlash                        
    1     00008362  _myGpio                         
    1     00008364  _myPie                          
    1     00008366  _mySci                          
    1     00008368  ___TI_enable_exit_profile_output
    1     0000836a  ___TI_cleanup_ptr               
    1     0000836c  ___TI_dtors_ptr                 
    1     0000836e  __lock                          
    1     00008370  __unlock                        
    1     00008372  _cpu                            
    1     00008380  _message                        
    abs   00000100  __STACK_SIZE                    
    abs   ffffffff  ___TI_pprof_out_hndl            
    abs   ffffffff  ___TI_prof_data_size            
    abs   ffffffff  ___TI_prof_data_start           
    abs   ffffffff  ___binit__                      
    abs   ffffffff  ___c_args__                     
    abs   ffffffff  ___pinit__                      
    abs   ffffffff  binit                           
    abs   ffffffff  pinit                           
    
    [161 symbols]
    

    2. CAM-20-D_FLASH0.map

    ******************************************************************************
                 TMS320C2000 Linker PC v21.6.0                     
    ******************************************************************************
    >> Linked Mon Apr 11 09:08:45 2022
    
    OUTPUT FILE NAME:   <CAM-20-D.out>
    ENTRY POINT SYMBOL: "code_start"  address: 00000000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
    PAGE 0:
      BEGIN                 00000000   00000002  00000002  00000000  RWIX
      RAMM0                 00000040   000006c0  000005dc  000000e4  RWIX
      PRAML0                00008000   00000250  00000000  00000250  RWIX
      FLASH0                003f4000   00001000  000000c5  00000f3b  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
    
    PAGE 1:
      BOOT_RSVD             00000002   0000004e  00000000  0000004e  RWIX
      RAMM1                 00000700   00000100  00000100  00000000  RWIX
      DEV_EMU               00000880   00000105  00000000  00000105  RWIX
      SYS_PWR_CTL           00000985   00000003  00000000  00000003  RWIX
      FLASH_REGS            00000a80   00000060  00000000  00000060  RWIX
      CSM                   00000ae0   00000010  00000000  00000010  RWIX
      ADC_RESULT            00000b00   00000020  00000000  00000020  RWIX
      CPU_TIMER0            00000c00   00000008  00000000  00000008  RWIX
      CPU_TIMER1            00000c08   00000008  00000000  00000008  RWIX
      CPU_TIMER2            00000c10   00000008  00000000  00000008  RWIX
      PIE_CTRL              00000ce0   00000020  00000000  00000020  RWIX
      PIE_VECT              00000d00   00000100  00000000  00000100  RWIX
      COMP1                 00006400   00000020  00000000  00000020  RWIX
      COMP2                 00006420   00000020  00000000  00000020  RWIX
      EPWM1                 00006800   00000040  00000000  00000040  RWIX
      EPWM2                 00006840   00000040  00000000  00000040  RWIX
      EPWM3                 00006880   00000040  00000000  00000040  RWIX
      EPWM4                 000068c0   00000040  00000000  00000040  RWIX
      ECAP1                 00006a00   00000020  00000000  00000020  RWIX
      GPIOCTRL              00006f80   00000040  00000000  00000040  RWIX
      GPIODAT               00006fc0   00000020  00000000  00000020  RWIX
      GPIOINT               00006fe0   00000020  00000000  00000020  RWIX
      SYSTEM                00007010   00000020  00000000  00000020  RWIX
      SPIA                  00007040   00000010  00000000  00000010  RWIX
      SCIA                  00007050   00000010  00000000  00000010  RWIX
      NMIINTRUPT            00007060   00000010  00000000  00000010  RWIX
      XINTRUPT              00007070   00000010  00000000  00000010  RWIX
      ADC                   00007100   00000080  00000000  00000080  RWIX
      I2CA                  00007900   00000040  00000000  00000040  RWIX
      DRAML0                00008250   000001b0  000001b0  00000000  RWIX
      PARTID                003d7fff   00000001  00000000  00000001  RWIX
      CSM_PWL               003f7ff8   00000008  00000000  00000008  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    codestart 
    *          0    00000000    00000002     
                      00000000    00000002     driverlib.lib : f2802xx_codestartbranch.obj (codestart)
    
    .text      0    00000040    000005dc     
                      00000040    000001ed     SCIA.obj (.text)
                      0000022d    00000054     rts2800_ml.lib : boot28.asm.obj (.text)
                      00000281    00000048     driverlib.lib : gpio.obj (.text:_GPIO_setMode)
                      000002c9    00000029                   : gpio.obj (.text:_GPIO_setDirection)
                      000002f2    00000029                   : gpio.obj (.text:_GPIO_setPullUp)
                      0000031b    00000029     rts2800_ml.lib : exit.c.obj (.text)
                      00000344    00000027     driverlib.lib : gpio.obj (.text:_GPIO_setQualification)
                      0000036b    00000024     rts2800_ml.lib : cpy_tbl.c.obj (.text)
                      0000038f    0000001d                    : memcpy.c.obj (.text)
                      000003ac    00000015     driverlib.lib : pll.obj (.text:_PLL_setup)
                      000003c1    00000014                   : gpio.obj (.text:_GPIO_toggle)
                      000003d5    00000011                   : gpio.obj (.text:_GPIO_getData)
                      000003e6    00000011                   : pie.obj (.text:_PIE_disableAllInts)
                      000003f7    00000011                   : pie.obj (.text:_PIE_setDebugIntVectorTable)
                      00000408    00000011     rts2800_ml.lib : args_main.c.obj (.text)
                      00000419    0000000a     driverlib.lib : adc.obj (.text:_ADC_init)
                      00000423    0000000a                   : pie.obj (.text:_PIE_init)
                      0000042d    0000000a                   : sci.obj (.text:_SCI_resetChannels)
                      00000437    0000000a                   : sci.obj (.text:_SCI_resetRxFifo)
                      00000441    0000000a                   : sci.obj (.text:_SCI_resetTxFifo)
                      0000044b    00000009                   : clk.obj (.text:_CLK_enableSciaClock)
                      00000454    00000009                   : sci.obj (.text:_SCI_putDataBlocking)
                      0000045d    00000009     rts2800_ml.lib : _lock.c.obj (.text)
                      00000466    00000008     driverlib.lib : clk.obj (.text:_CLK_init)
                      0000046e    00000008                   : flash.obj (.text:_FLASH_init)
                      00000476    00000008                   : gpio.obj (.text:_GPIO_init)
                      0000047e    00000008                   : pll.obj (.text:_PLL_init)
                      00000486    00000008                   : sci.obj (.text:_SCI_init)
                      0000048e    00000008                   : wdog.obj (.text:_WDOG_disable)
                      00000496    00000008                   : wdog.obj (.text:_WDOG_init)
                      0000049e    00000008                   : f2802xx_codestartbranch.obj (.text)
                      000004a6    00000007                   : clk.obj (.text:_CLK_enableAdcClock)
                      000004ad    00000007                   : clk.obj (.text:_CLK_setOscSrc)
                      000004b4    00000007                   : pll.obj (.text:_PLL_setDivider)
                      000004bb    00000007                   : sci.obj (.text:_SCI_setRxFifoIntLevel)
                      000004c2    00000007                   : sci.obj (.text:_SCI_setTxFifoIntLevel)
                      000004c9    00000006                   : pll.obj (.text:_PLL_setMultiplier)
                      000004cf    00000006                   : sci.obj (.text:_SCI_setBaudRate)
                      000004d5    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT1_ISR)
                      000004da    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT2_ISR)
                      000004df    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT3_ISR)
                      000004e4    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT4_ISR)
                      000004e9    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT5_ISR)
                      000004ee    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT6_ISR)
                      000004f3    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT7_ISR)
                      000004f8    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT8_ISR)
                      000004fd    00000005                   : f2802xx_defaultisr.obj (.text:_ADCINT9_ISR)
                      00000502    00000005                   : f2802xx_defaultisr.obj (.text:_DATALOG_ISR)
                      00000507    00000005                   : f2802xx_defaultisr.obj (.text:_ECAP1_INT_ISR)
                      0000050c    00000005                   : f2802xx_defaultisr.obj (.text:_EMPTY_ISR)
                      00000511    00000005                   : f2802xx_defaultisr.obj (.text:_EMUINT_ISR)
                      00000516    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM1_INT_ISR)
                      0000051b    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM1_TZINT_ISR)
                      00000520    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM2_INT_ISR)
                      00000525    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM2_TZINT_ISR)
                      0000052a    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM3_INT_ISR)
                      0000052f    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM3_TZINT_ISR)
                      00000534    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM4_INT_ISR)
                      00000539    00000005                   : f2802xx_defaultisr.obj (.text:_EPWM4_TZINT_ISR)
                      0000053e    00000005                   : f2802xx_defaultisr.obj (.text:_I2CINT1A_ISR)
                      00000543    00000005                   : f2802xx_defaultisr.obj (.text:_I2CINT2A_ISR)
                      00000548    00000005                   : f2802xx_defaultisr.obj (.text:_ILLEGAL_ISR)
                      0000054d    00000005                   : f2802xx_defaultisr.obj (.text:_INT13_ISR)
                      00000552    00000005                   : f2802xx_defaultisr.obj (.text:_INT14_ISR)
                      00000557    00000005                   : f2802xx_defaultisr.obj (.text:_NMI_ISR)
                      0000055c    00000005                   : f2802xx_defaultisr.obj (.text:_PIE_RESERVED)
                      00000561    00000005                   : pie.obj (.text:_PIE_illegalIsr)
                      00000566    00000005                   : f2802xx_defaultisr.obj (.text:_RTOSINT_ISR)
                      0000056b    00000005                   : f2802xx_defaultisr.obj (.text:_SCIRXINTA_ISR)
                      00000570    00000005                   : f2802xx_defaultisr.obj (.text:_SCITXINTA_ISR)
                      00000575    00000005                   : f2802xx_defaultisr.obj (.text:_SPIRXINTA_ISR)
                      0000057a    00000005                   : f2802xx_defaultisr.obj (.text:_SPITXINTA_ISR)
                      0000057f    00000005                   : f2802xx_defaultisr.obj (.text:_TINT0_ISR)
                      00000584    00000005                   : f2802xx_defaultisr.obj (.text:_USER10_ISR)
                      00000589    00000005                   : f2802xx_defaultisr.obj (.text:_USER11_ISR)
                      0000058e    00000005                   : f2802xx_defaultisr.obj (.text:_USER12_ISR)
                      00000593    00000005                   : f2802xx_defaultisr.obj (.text:_USER1_ISR)
                      00000598    00000005                   : f2802xx_defaultisr.obj (.text:_USER2_ISR)
                      0000059d    00000005                   : f2802xx_defaultisr.obj (.text:_USER3_ISR)
                      000005a2    00000005                   : f2802xx_defaultisr.obj (.text:_USER4_ISR)
                      000005a7    00000005                   : f2802xx_defaultisr.obj (.text:_USER5_ISR)
                      000005ac    00000005                   : f2802xx_defaultisr.obj (.text:_USER6_ISR)
                      000005b1    00000005                   : f2802xx_defaultisr.obj (.text:_USER7_ISR)
                      000005b6    00000005                   : f2802xx_defaultisr.obj (.text:_USER8_ISR)
                      000005bb    00000005                   : f2802xx_defaultisr.obj (.text:_USER9_ISR)
                      000005c0    00000005                   : f2802xx_defaultisr.obj (.text:_WAKEINT_ISR)
                      000005c5    00000005                   : f2802xx_defaultisr.obj (.text:_XINT1_ISR)
                      000005ca    00000005                   : f2802xx_defaultisr.obj (.text:_XINT2_ISR)
                      000005cf    00000005                   : f2802xx_defaultisr.obj (.text:_XINT3_ISR)
                      000005d4    00000005                   : f2802xx_defaultisr.obj (.text:_rsvd_ISR)
                      000005d9    00000004                   : cpu.obj (.text:_CPU_init)
                      000005dd    00000004                   : sci.obj (.text:_SCI_clearRxFifoInt)
                      000005e1    00000004                   : sci.obj (.text:_SCI_clearTxFifoInt)
                      000005e5    00000004                   : sci.obj (.text:_SCI_enableFifoEnh)
                      000005e9    00000004                   : sci.obj (.text:_SCI_getRxFifoStatus)
                      000005ed    00000004                   : sci.obj (.text:_SCI_setCharLength)
                      000005f1    00000004                   : sci.obj (.text:_SCI_setNumStopBits)
                      000005f5    00000003                   : cpu.obj (.text:_CPU_clearIntFlags)
                      000005f8    00000003                   : cpu.obj (.text:_CPU_disableGlobalInts)
                      000005fb    00000003                   : pie.obj (.text:_PIE_disable)
                      000005fe    00000003                   : pie.obj (.text:_PIE_enable)
                      00000601    00000003                   : pll.obj (.text:_PLL_getClkStatus)
                      00000604    00000003                   : pll.obj (.text:_PLL_getLockStatus)
                      00000607    00000003                   : sci.obj (.text:_SCI_disableParity)
                      0000060a    00000003                   : sci.obj (.text:_SCI_enable)
                      0000060d    00000003                   : sci.obj (.text:_SCI_enableRx)
                      00000610    00000003                   : sci.obj (.text:_SCI_enableRxInt)
                      00000613    00000003                   : sci.obj (.text:_SCI_enableTx)
                      00000616    00000003                   : sci.obj (.text:_SCI_enableTxInt)
                      00000619    00000002     rts2800_ml.lib : pre_init.c.obj (.text)
                      0000061b    00000001                    : startup.c.obj (.text)
    
    .cinit     0    003f4000    000000c5     
                      003f4000    00000083     SCIA.obj (.cinit:_message)
                      003f4083    00000028     SCIA.obj (.cinit)
                      003f40ab    0000000e     rts2800_ml.lib : exit.c.obj (.cinit)
                      003f40b9    00000005                    : _lock.c.obj (.cinit:__lock)
                      003f40be    00000005                    : _lock.c.obj (.cinit:__unlock)
                      003f40c3    00000002     --HOLE-- [fill = 0]
    
    .pinit     0    00000040    00000000     UNINITIALIZED
    
    .reset     0    003fffc0    00000002     DSECT
                      003fffc0    00000002     rts2800_ml.lib : boot28.asm.obj (.reset)
    
    .stack     1    00000700    00000100     UNINITIALIZED
                      00000700    00000100     --HOLE--
    
    .econst    1    00008250    00000100     
                      00008250    00000100     driverlib.lib : pie.obj (.econst:_PIE_tableDebugInit)
    
    .ebss      1    00008350    000000b0     UNINITIALIZED
                      00008350    00000018     SCIA.obj (.ebss)
                      00008368    00000006     rts2800_ml.lib : exit.c.obj (.ebss)
                      0000836e    00000002                    : _lock.c.obj (.ebss:__lock)
                      00008370    00000002                    : _lock.c.obj (.ebss:__unlock)
                      00008372    00000001     driverlib.lib : cpu.obj (.ebss)
                      00008373    0000000d     --HOLE--
                      00008380    00000080     SCIA.obj (.ebss:_message)
    
    MODULE SUMMARY
    
           Module                        code   initialized data   uninitialized data
           ------                        ----   ----------------   ------------------
        .\
           SCIA.obj                      493    171                152               
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        493    171                152               
                                                                                     
        C:/ti/C2000Ware_4_00_00_00/device_support/f2802x/common/ccs/Debug/driverlib.lib
           pie.obj                       55     256                0                 
           f2802xx_defaultisr.obj        255    0                  0                 
           gpio.obj                      238    0                  0                 
           sci.obj                       109    0                  0                 
           pll.obj                       48     0                  0                 
           clk.obj                       31     0                  0                 
           wdog.obj                      16     0                  0                 
           cpu.obj                       10     0                  1                 
           adc.obj                       10     0                  0                 
           f2802xx_codestartbranch.obj   10     0                  0                 
           flash.obj                     8      0                  0                 
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        790    256                1                 
                                                                                     
        C:/ti/ccs1020/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/lib/rts2800_ml.lib
           boot28.asm.obj                84     0                  0                 
           exit.c.obj                    41     14                 6                 
           cpy_tbl.c.obj                 36     0                  0                 
           memcpy.c.obj                  29     0                  0                 
           _lock.c.obj                   9      10                 4                 
           args_main.c.obj               17     0                  0                 
           pre_init.c.obj                2      0                  0                 
           startup.c.obj                 1      0                  0                 
        +--+-----------------------------+------+------------------+--------------------+
           Total:                        219    24                 10                
                                                                                     
           Stack:                        0      0                  256               
        +--+-----------------------------+------+------------------+--------------------+
           Grand Total:                  1502   451                419               
    
    
    GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE
    
    address     data page           name
    --------    ----------------    ----
    00000700      1c (00000700)     __stack
    
    00008250     209 (00008240)     _PIE_tableDebugInit
    
    00008350     20d (00008340)     _LoopCount
    00008351     20d (00008340)     _ErrorCount
    00008352     20d (00008340)     _redLED
    00008353     20d (00008340)     _blueLED
    00008354     20d (00008340)     _greenLED
    00008355     20d (00008340)     _rdvLoopCount
    00008356     20d (00008340)     _rdvWaitCount
    00008357     20d (00008340)     _rdvWordCount
    00008358     20d (00008340)     _rdvReceivedCount
    00008359     20d (00008340)     _lastReceived
    0000835a     20d (00008340)     _byteReceived
    0000835b     20d (00008340)     _receivedByteFlag
    0000835c     20d (00008340)     _myAdc
    0000835e     20d (00008340)     _myClk
    00008360     20d (00008340)     _myFlash
    00008362     20d (00008340)     _myGpio
    00008364     20d (00008340)     _myPie
    00008366     20d (00008340)     _mySci
    00008368     20d (00008340)     ___TI_enable_exit_profile_output
    0000836a     20d (00008340)     ___TI_cleanup_ptr
    0000836c     20d (00008340)     ___TI_dtors_ptr
    0000836e     20d (00008340)     __lock
    00008370     20d (00008340)     __unlock
    00008372     20d (00008340)     _cpu
    
    00008380     20e (00008380)     _message
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    page  address   name                            
    ----  -------   ----                            
    0     00000040  .text                           
    0     0000031b  C$$EXIT                         
    0     000004d5  _ADCINT1_ISR                    
    0     000004da  _ADCINT2_ISR                    
    0     000004df  _ADCINT3_ISR                    
    0     000004e4  _ADCINT4_ISR                    
    0     000004e9  _ADCINT5_ISR                    
    0     000004ee  _ADCINT6_ISR                    
    0     000004f3  _ADCINT7_ISR                    
    0     000004f8  _ADCINT8_ISR                    
    0     000004fd  _ADCINT9_ISR                    
    0     00000419  _ADC_init                       
    0     000004a6  _CLK_enableAdcClock             
    0     0000044b  _CLK_enableSciaClock            
    0     00000466  _CLK_init                       
    0     000004ad  _CLK_setOscSrc                  
    0     000005f5  _CPU_clearIntFlags              
    0     000005f8  _CPU_disableGlobalInts          
    0     000005d9  _CPU_init                       
    0     00000502  _DATALOG_ISR                    
    0     00000507  _ECAP1_INT_ISR                  
    0     0000050c  _EMPTY_ISR                      
    0     00000511  _EMUINT_ISR                     
    0     00000516  _EPWM1_INT_ISR                  
    0     0000051b  _EPWM1_TZINT_ISR                
    0     00000520  _EPWM2_INT_ISR                  
    0     00000525  _EPWM2_TZINT_ISR                
    0     0000052a  _EPWM3_INT_ISR                  
    0     0000052f  _EPWM3_TZINT_ISR                
    0     00000534  _EPWM4_INT_ISR                  
    0     00000539  _EPWM4_TZINT_ISR                
    1     00008351  _ErrorCount                     
    0     0000046e  _FLASH_init                     
    0     000003d5  _GPIO_getData                   
    0     00000476  _GPIO_init                      
    0     000002c9  _GPIO_setDirection              
    0     00000281  _GPIO_setMode                   
    0     000002f2  _GPIO_setPullUp                 
    0     00000344  _GPIO_setQualification          
    0     000003c1  _GPIO_toggle                    
    0     0000053e  _I2CINT1A_ISR                   
    0     00000543  _I2CINT2A_ISR                   
    0     00000548  _ILLEGAL_ISR                    
    0     0000054d  _INT13_ISR                      
    0     00000552  _INT14_ISR                      
    1     00008350  _LoopCount                      
    0     00000557  _NMI_ISR                        
    0     0000055c  _PIE_RESERVED                   
    0     000005fb  _PIE_disable                    
    0     000003e6  _PIE_disableAllInts             
    0     000005fe  _PIE_enable                     
    0     00000561  _PIE_illegalIsr                 
    0     00000423  _PIE_init                       
    0     000003f7  _PIE_setDebugIntVectorTable     
    1     00008250  _PIE_tableDebugInit             
    0     00000601  _PLL_getClkStatus               
    0     00000604  _PLL_getLockStatus              
    0     0000047e  _PLL_init                       
    0     000004b4  _PLL_setDivider                 
    0     000004c9  _PLL_setMultiplier              
    0     000003ac  _PLL_setup                      
    0     00000566  _RTOSINT_ISR                    
    0     0000056b  _SCIRXINTA_ISR                  
    0     00000570  _SCITXINTA_ISR                  
    0     000005dd  _SCI_clearRxFifoInt             
    0     000005e1  _SCI_clearTxFifoInt             
    0     00000607  _SCI_disableParity              
    0     0000060a  _SCI_enable                     
    0     000005e5  _SCI_enableFifoEnh              
    0     0000060d  _SCI_enableRx                   
    0     00000610  _SCI_enableRxInt                
    0     00000613  _SCI_enableTx                   
    0     00000616  _SCI_enableTxInt                
    0     000005e9  _SCI_getRxFifoStatus            
    0     00000486  _SCI_init                       
    0     00000454  _SCI_putDataBlocking            
    0     0000042d  _SCI_resetChannels              
    0     00000437  _SCI_resetRxFifo                
    0     00000441  _SCI_resetTxFifo                
    0     000004cf  _SCI_setBaudRate                
    0     000005ed  _SCI_setCharLength              
    0     000005f1  _SCI_setNumStopBits             
    0     000004bb  _SCI_setRxFifoIntLevel          
    0     000004c2  _SCI_setTxFifoIntLevel          
    0     00000575  _SPIRXINTA_ISR                  
    0     0000057a  _SPITXINTA_ISR                  
    0     0000057f  _TINT0_ISR                      
    0     00000584  _USER10_ISR                     
    0     00000589  _USER11_ISR                     
    0     0000058e  _USER12_ISR                     
    0     00000593  _USER1_ISR                      
    0     00000598  _USER2_ISR                      
    0     0000059d  _USER3_ISR                      
    0     000005a2  _USER4_ISR                      
    0     000005a7  _USER5_ISR                      
    0     000005ac  _USER6_ISR                      
    0     000005b1  _USER7_ISR                      
    0     000005b6  _USER8_ISR                      
    0     000005bb  _USER9_ISR                      
    0     000005c0  _WAKEINT_ISR                    
    0     0000048e  _WDOG_disable                   
    0     00000496  _WDOG_init                      
    0     000005c5  _XINT1_ISR                      
    0     000005ca  _XINT2_ISR                      
    0     000005cf  _XINT3_ISR                      
    1     00000800  __STACK_END                     
    abs   00000100  __STACK_SIZE                    
    1     0000836a  ___TI_cleanup_ptr               
    1     0000836c  ___TI_dtors_ptr                 
    1     00008368  ___TI_enable_exit_profile_output
    abs   ffffffff  ___TI_pprof_out_hndl            
    abs   ffffffff  ___TI_prof_data_size            
    abs   ffffffff  ___TI_prof_data_start           
    abs   ffffffff  ___binit__                      
    abs   ffffffff  ___c_args__                     
    0     003f4000  ___cinit__                      
    0     0000061c  ___etext__                      
    abs   ffffffff  ___pinit__                      
    0     00000040  ___text__                       
    0     00000408  __args_main                     
    1     0000836e  __lock                          
    0     00000465  __nop                           
    0     00000461  __register_lock                 
    0     0000045d  __register_unlock               
    1     00000700  __stack                         
    0     0000061b  __system_post_cinit             
    0     00000619  __system_pre_init               
    1     00008370  __unlock                        
    0     0000031b  _abort                          
    1     00008353  _blueLED                        
    1     0000835a  _byteReceived                   
    0     0000022d  _c_int00                        
    0     0000036b  _copy_in                        
    1     00008372  _cpu                            
    0     000001c7  _error                          
    0     0000031d  _exit                           
    1     00008354  _greenLED                       
    1     00008359  _lastReceived                   
    0     00000048  _main                           
    0     0000038f  _memcpy                         
    1     00008380  _message                        
    1     0000835c  _myAdc                          
    1     0000835e  _myClk                          
    1     00008360  _myFlash                        
    1     00008362  _myGpio                         
    1     00008364  _myPie                          
    1     00008366  _mySci                          
    1     00008355  _rdvLoopCount                   
    1     00008358  _rdvReceivedCount               
    1     00008356  _rdvWaitCount                   
    1     00008357  _rdvWordCount                   
    1     0000835b  _receivedByteFlag               
    1     00008352  _redLED                         
    0     000005d4  _rsvd_ISR                       
    0     00000202  _scia_fifo_init                 
    0     000001cc  _scia_init                      
    abs   ffffffff  binit                           
    0     003f4000  cinit                           
    0     00000000  code_start                      
    0     0000061c  etext                           
    abs   ffffffff  pinit                           
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    page  address   name                            
    ----  -------   ----                            
    0     00000000  code_start                      
    0     00000040  .text                           
    0     00000040  ___text__                       
    0     00000048  _main                           
    0     000001c7  _error                          
    0     000001cc  _scia_init                      
    0     00000202  _scia_fifo_init                 
    0     0000022d  _c_int00                        
    0     00000281  _GPIO_setMode                   
    0     000002c9  _GPIO_setDirection              
    0     000002f2  _GPIO_setPullUp                 
    0     0000031b  C$$EXIT                         
    0     0000031b  _abort                          
    0     0000031d  _exit                           
    0     00000344  _GPIO_setQualification          
    0     0000036b  _copy_in                        
    0     0000038f  _memcpy                         
    0     000003ac  _PLL_setup                      
    0     000003c1  _GPIO_toggle                    
    0     000003d5  _GPIO_getData                   
    0     000003e6  _PIE_disableAllInts             
    0     000003f7  _PIE_setDebugIntVectorTable     
    0     00000408  __args_main                     
    0     00000419  _ADC_init                       
    0     00000423  _PIE_init                       
    0     0000042d  _SCI_resetChannels              
    0     00000437  _SCI_resetRxFifo                
    0     00000441  _SCI_resetTxFifo                
    0     0000044b  _CLK_enableSciaClock            
    0     00000454  _SCI_putDataBlocking            
    0     0000045d  __register_unlock               
    0     00000461  __register_lock                 
    0     00000465  __nop                           
    0     00000466  _CLK_init                       
    0     0000046e  _FLASH_init                     
    0     00000476  _GPIO_init                      
    0     0000047e  _PLL_init                       
    0     00000486  _SCI_init                       
    0     0000048e  _WDOG_disable                   
    0     00000496  _WDOG_init                      
    0     000004a6  _CLK_enableAdcClock             
    0     000004ad  _CLK_setOscSrc                  
    0     000004b4  _PLL_setDivider                 
    0     000004bb  _SCI_setRxFifoIntLevel          
    0     000004c2  _SCI_setTxFifoIntLevel          
    0     000004c9  _PLL_setMultiplier              
    0     000004cf  _SCI_setBaudRate                
    0     000004d5  _ADCINT1_ISR                    
    0     000004da  _ADCINT2_ISR                    
    0     000004df  _ADCINT3_ISR                    
    0     000004e4  _ADCINT4_ISR                    
    0     000004e9  _ADCINT5_ISR                    
    0     000004ee  _ADCINT6_ISR                    
    0     000004f3  _ADCINT7_ISR                    
    0     000004f8  _ADCINT8_ISR                    
    0     000004fd  _ADCINT9_ISR                    
    0     00000502  _DATALOG_ISR                    
    0     00000507  _ECAP1_INT_ISR                  
    0     0000050c  _EMPTY_ISR                      
    0     00000511  _EMUINT_ISR                     
    0     00000516  _EPWM1_INT_ISR                  
    0     0000051b  _EPWM1_TZINT_ISR                
    0     00000520  _EPWM2_INT_ISR                  
    0     00000525  _EPWM2_TZINT_ISR                
    0     0000052a  _EPWM3_INT_ISR                  
    0     0000052f  _EPWM3_TZINT_ISR                
    0     00000534  _EPWM4_INT_ISR                  
    0     00000539  _EPWM4_TZINT_ISR                
    0     0000053e  _I2CINT1A_ISR                   
    0     00000543  _I2CINT2A_ISR                   
    0     00000548  _ILLEGAL_ISR                    
    0     0000054d  _INT13_ISR                      
    0     00000552  _INT14_ISR                      
    0     00000557  _NMI_ISR                        
    0     0000055c  _PIE_RESERVED                   
    0     00000561  _PIE_illegalIsr                 
    0     00000566  _RTOSINT_ISR                    
    0     0000056b  _SCIRXINTA_ISR                  
    0     00000570  _SCITXINTA_ISR                  
    0     00000575  _SPIRXINTA_ISR                  
    0     0000057a  _SPITXINTA_ISR                  
    0     0000057f  _TINT0_ISR                      
    0     00000584  _USER10_ISR                     
    0     00000589  _USER11_ISR                     
    0     0000058e  _USER12_ISR                     
    0     00000593  _USER1_ISR                      
    0     00000598  _USER2_ISR                      
    0     0000059d  _USER3_ISR                      
    0     000005a2  _USER4_ISR                      
    0     000005a7  _USER5_ISR                      
    0     000005ac  _USER6_ISR                      
    0     000005b1  _USER7_ISR                      
    0     000005b6  _USER8_ISR                      
    0     000005bb  _USER9_ISR                      
    0     000005c0  _WAKEINT_ISR                    
    0     000005c5  _XINT1_ISR                      
    0     000005ca  _XINT2_ISR                      
    0     000005cf  _XINT3_ISR                      
    0     000005d4  _rsvd_ISR                       
    0     000005d9  _CPU_init                       
    0     000005dd  _SCI_clearRxFifoInt             
    0     000005e1  _SCI_clearTxFifoInt             
    0     000005e5  _SCI_enableFifoEnh              
    0     000005e9  _SCI_getRxFifoStatus            
    0     000005ed  _SCI_setCharLength              
    0     000005f1  _SCI_setNumStopBits             
    0     000005f5  _CPU_clearIntFlags              
    0     000005f8  _CPU_disableGlobalInts          
    0     000005fb  _PIE_disable                    
    0     000005fe  _PIE_enable                     
    0     00000601  _PLL_getClkStatus               
    0     00000604  _PLL_getLockStatus              
    0     00000607  _SCI_disableParity              
    0     0000060a  _SCI_enable                     
    0     0000060d  _SCI_enableRx                   
    0     00000610  _SCI_enableRxInt                
    0     00000613  _SCI_enableTx                   
    0     00000616  _SCI_enableTxInt                
    0     00000619  __system_pre_init               
    0     0000061b  __system_post_cinit             
    0     0000061c  ___etext__                      
    0     0000061c  etext                           
    0     003f4000  ___cinit__                      
    0     003f4000  cinit                           
    1     00000700  __stack                         
    1     00000800  __STACK_END                     
    1     00008250  _PIE_tableDebugInit             
    1     00008350  _LoopCount                      
    1     00008351  _ErrorCount                     
    1     00008352  _redLED                         
    1     00008353  _blueLED                        
    1     00008354  _greenLED                       
    1     00008355  _rdvLoopCount                   
    1     00008356  _rdvWaitCount                   
    1     00008357  _rdvWordCount                   
    1     00008358  _rdvReceivedCount               
    1     00008359  _lastReceived                   
    1     0000835a  _byteReceived                   
    1     0000835b  _receivedByteFlag               
    1     0000835c  _myAdc                          
    1     0000835e  _myClk                          
    1     00008360  _myFlash                        
    1     00008362  _myGpio                         
    1     00008364  _myPie                          
    1     00008366  _mySci                          
    1     00008368  ___TI_enable_exit_profile_output
    1     0000836a  ___TI_cleanup_ptr               
    1     0000836c  ___TI_dtors_ptr                 
    1     0000836e  __lock                          
    1     00008370  __unlock                        
    1     00008372  _cpu                            
    1     00008380  _message                        
    abs   00000100  __STACK_SIZE                    
    abs   ffffffff  ___TI_pprof_out_hndl            
    abs   ffffffff  ___TI_prof_data_size            
    abs   ffffffff  ___TI_prof_data_start           
    abs   ffffffff  ___binit__                      
    abs   ffffffff  ___c_args__                     
    abs   ffffffff  ___pinit__                      
    abs   ffffffff  binit                           
    abs   ffffffff  pinit                           
    
    [161 symbols]
    

    The reason I used On-Chip Flash Sector D to define FLASH0 (e.g., FLASH0 : origin = 0x3f4000, length = 0x001000), was specifically to avoid the CSM addresses (0x3f7ff8 + 8).  I'm happy to try a version using flash sector B or C, but I'm not sure that will circumvent whatever is causing the problem.

    Here's a visual aid I created when migrating from 28027 to 28020:

    Yes, VREGENZ is hard tied to digital ground:

    Do you think it's worth trying to run Depletion Recovery?

    I hope you can find something amiss, because I'm just not seeing it.

    Thanks for your help!
    robin

  • Robin,

    You can try Depletion Recovery on the locked devices, it won't hurt but I don't think it will resolved the locked state.

    Looking at the map file things look good there as well, and even the use of Sector D isn't very big and doesn't run into what would be equivalent addresses of the CSM in Sector A.

    Can you give some more details on the connection between GPIO34 and XRSn?  I know its a bit of a stretch, but we have to make sure that XRSn isn't pulled during the programmation process.  From Reset GPIO34 would be configured as an input, so it shouldn't even be possible for it to drive XRSn until your code runs.  Could you try the RAM only version of your code and note when this pulls XRSn? 

    Based on the MUX function, I would guess you might be using the COMP2 out to trip reset based on a comparator trip, but will let you fill in the details. 

    The interesting thing about this setup is that if you were actively debugging(TRSTn is high), even if XRSn is pulled low you might not see an effect depending on what your code is doing.  But if this activated while programming the flash it could cause some unusual behavior.

    Best,

    Matthew

  • Hi Matthew,

    I was unable to run Depletion Recovery, because it requires the target to be connected.  Since it won't connect, there's no option for Depletion Recovery.

    The connection between GPIO34 and XRSn was carried over from the legacy 8051 version of this product.  It's not needed in this design and I'll remove R11 to break the link.  Anyway, there's no code that controls GPIO34. 

    Here's what happens at GPIO34:

    Power On:
         GPIO34 toggles low for 60us, every 13.5ms.  I don't know why it's doing this.  I'm not sure what's residing in nonvolatile memory at this point.

    Connect Target:
         GPIO34 goes high and stays high.

    Load Program:
         GPIO34 stays high up to and including when it breaks at main().

    Run Program:
         GPIO34 stays high.  There's no code to take it low.

    NEW INFORMATION:

    Upon closer examination, there's quite a bit of noise on the Vddio pin:

    I see a couple of alarming details on the schematic:

    1. The decoupling cap on Vddio is only 0.1uF  on the target board (it's 2.2uF on LaunchXL)

    2. The inductor feeding Vddio is the wrong value.  I specified Abracon P/N: ACML-0603H-600 (60 Ohms at 100MHz, 0.04 Ohms dc, 2.5A), but what got placed on the PCB was an Abracon P/N: ACML-0603H-221 (220 Ohms at 100MHz, 0.1 Ohm dc, 1.4A)

    I don't have the correct inductor, but I added two more of the wrong part in parallel with the existing one, and changed the decoupling cap to 1.2uF.

    Now the power supply rail looks like this: (Yellow trace)

    The negative going excursions are 50% better.  Perhaps with the appropriate inductor they would improve further?

    Vddio has a nominal value of 3.3Vdc.

    As an experiment, I could also short out the inductor to get a much cleaner looking DC on Vddio.

    Is this enough of a smoking gun to make it worth risking my last working prototype?

    Thoughts?

    Thanks,
    robin

  • Robin,

    Good catch on both the decap and the inductor/bead.  If I'm reading the new waveform correctly are we 3.3V +/- 0.192V with the new setup?  This is within the tolerance allowed on VDDIO (3.3V +/-10%)so we should be OK.  With the other waveform, I think it is likely we were tripping the BOR(Brown Out Reset) on the VDDIO rail, especially when the flash is being programmed.

    For the GPIO34 when connected to the XRSn, what you are seeing on power up is the watchdog Reset from the device until you gain control with the debugger.  Since you don't configure GPIO34 it will be an input always, so likely this wasn't doing anything bad to the XRSn pin, but good to get it out of the equation.

    I think you can flash the device, but I would switch to sector B or C, and uncheck A/D in the flash configs for automatic erase just to err on the side of caution.

    Best,

    Matthew

  • Thanks Matthew,

    Vddio noise is about 540mVp-p riding on 3.3Vdc.  At its lowest point, it reaches down to 3.06V, which is still within the 10% tolerance.  Although, the documentation says that BOR tolerance is 5% when the on-board Vreg is enabled.

    I switched my FLASH0 assignment to sector 'C' (FLASH0 : origin = 0x3f5000, length = 0x001000), and assigned .cinit to it. (.cinit : > FLASH0, PAGE = 0).

    Cleaned the project, built it, loaded it, and ran it without issue.

    Feeling a greater degree of confidence, I reassigned .text to FLASH0, and it runs as well.

    So, in a nutshell, I had a problem reassigning sections to flash memory.  At first glimpse, the power supply didn't seem to be a strong suspect.  Upon closer examination, noise on the Vddio pin was dipping below the tolerance allowed on the TMS320F28020, most likely causing a brown-out reset.  No reset occurred during normal operation, but I suspect the current it takes to perform a flash write would increase the noise to a problematic level.  After correcting PCB design flaws where the inductor feeding Vddio and the capacitor decoupling it were wrong values, my program now runs from flash memory.

    Shortly after this success, more power supply problems occurred.  I replaced the two locked MCUs, but at this point all three target proto boards are bricked.  The 3.3V reg is being pulled into overcurrent shutdown by the MCU.  I haven't found the culprit yet, but will start a new thread more appropriate to this issue.

    Thank you Matthew for all your help.  You are a scholar and a gentleman.