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.

TMS320C6748: UBL jump program for TMS320C6748

Part Number: TMS320C6748
Other Parts Discussed in Thread: SYSBIOS

Tool/software:

The use of C6748 products requires UBL to upgrade the app After power on, UBL retrieves the bin file of the APP through UART2 and transfers it to the RAM address 0x1180000. After the transfer is completed, it jumps to the APP for operation

The current issue is that the app needs to jump twice before it can run (determined by serial port printing)

0x11804820 is the map file of the app

Uint32 gAppPoint = 0x11804820;

static void (*APPEntry)(void);

void JumpToApp(void)

{

    APPEntry = (void (*)(void)) gAppPoint;

    (*APPEntry)();

}

  • I would like to know what is the difference between Debug and standalone run?

    when I use XDS560V2 to debug the Boot, it can jump to App directly,  

    but when it run alone, Boot need jump twice to App, and the interval between two Boots is 144 seconds.

    the code below is the App CMD file. I fix the _c_int00 to address 0x11800000.

    MEMORY
    {
        DSPL2ROM     o = 0x00700000  l = 0x00100000   /* 1MB L2 Internal ROM */
        DSPL2RAM     o = 0x00800000  l = 0x00040000   /* 256kB L2 Internal RAM */
        DSPL1PRAM    o = 0x00E00000  l = 0x00008000   /* 32kB L1 Internal Program RAM */
        DSPL1DRAM    o = 0x00F00000  l = 0x00008000   /* 32kB L1 Internal Data RAM */
        SHDSPL2ROM   o = 0x11700000  l = 0x00100000   /* 1MB L2 Shared Internal ROM */
        RAM4CINT00   o = 0x11800000  l = 0x00000400   /* 1kB L2 Shared Internal RAM */
        SHDSPL2RAM   o = 0x11800400  l = 0x0003FC00   /* 255kB L2 Shared Internal RAM */
        SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000   /* 32kB L1 Shared Internal Program RAM */
        SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000   /* 32kB L1 Shared Internal Data RAM */
        EMIFACS0     o = 0x40000000  l = 0x20000000   /* 512MB SDRAM Data (CS0) */
        EMIFACS2     o = 0x60000000  l = 0x02000000   /* 32MB Async Data (CS2) */
        EMIFACS3     o = 0x62000000  l = 0x02000000   /* 32MB Async Data (CS3) */
        EMIFACS4     o = 0x64000000  l = 0x02000000   /* 32MB Async Data (CS4) */
        EMIFACS5     o = 0x66000000  l = 0x02000000   /* 32MB Async Data (CS5) */
        SHRAM        o = 0x80000000  l = 0x00020000   /* 128kB Shared RAM */
        DDR2         o = 0xC0000000  l = 0x20000000   /* 512MB DDR2 Data */
    }                                              
                                                   
    SECTIONS                                       
    {                                              
        .text          >  SHDSPL2RAM
        .stack         >  SHDSPL2RAM
        .bss           >  SHDSPL2RAM
        .cio           >  SHDSPL2RAM
        .const         >  SHDSPL2RAM
        .data          >  SHDSPL2RAM
        .switch        >  SHDSPL2RAM
        .sysmem        >  SHDSPL2RAM
        .far           >  SHDSPL2RAM
        .args          >  SHDSPL2RAM
        .ppinfo        >  SHDSPL2RAM
        .ppdata        >  SHDSPL2RAM
      
        /* COFF sections */
        .pinit         >  SHDSPL2RAM
        .cinit         >  SHDSPL2RAM
      
        /* EABI sections */
        .binit         >  SHDSPL2RAM
        .init_array    >  SHDSPL2RAM
        .neardata      >  SHDSPL2RAM
        .fardata       >  SHDSPL2RAM
        .rodata        >  SHDSPL2RAM
        .c6xabi.exidx  >  SHDSPL2RAM
        .c6xabi.extab  >  SHDSPL2RAM
    
        .boot > RAM4CINT00
    	{
        	-l rts6740_elf.lib<boot.c.obj>(.text)
    	}
    }

  • Hello Steven,

    We've stopped supporting bare-metal or SYSBIOS based SW development for C674x. Please refer to this announcement and look at the resources provide there, especially:

    Regards,

    Jianzhong

  • The current issue is that the app needs to jump twice before it can run (determined by serial port printing)

    0x11804820 is the map file of the app

    Uint32 gAppPoint = 0x11804820;

    static void (*APPEntry)(void);

    void JumpToApp(void)

    {

        APPEntry = (void (*)(void)) gAppPoint;

        (*APPEntry)();

    }

    #1. Do you mean use this code can jump successfully? 

    #2. if not, please help me understand how do you know need to jump twice? as this is booting from UART, if fail should hang there.

    #3. Where is your UBL running? hope it is not overlayed with app. please double check the .map file.

  • #1. Do you mean use this code can jump successfully? 

          Yes, but it need to jump twice, when App running, it will print Ram data.

    #2. if not, please help me understand how do you know need to jump twice? as this is booting from UART, if fail should hang there.

    UBL and App are all in SPI Flash, not from UART, only print something through UART. 

  • #3. Where is your UBL running? hope it is not overlayed with app. please double check the .map file.

    UBL run in RAM 0x80000000, App run in 0x11800000, there aren`t overlapped with UBL and App. 

    Below is UBL .map file

    ******************************************************************************
                   TMS320C6x Linker PC v8.3.12                     
    ******************************************************************************
    >> Linked Fri Aug 16 08:42:12 2024
    
    OUTPUT FILE NAME:   <DLS-8_Bootloader.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 80009100
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      DSPL2ROM              00700000   00100000  00000000  00100000  RWIX
      DSPL2RAM              00800000   00040000  00000000  00040000  RWIX
      DSPL1PRAM             00e00000   00008000  00000000  00008000  RWIX
      DSPL1DRAM             00f00000   00008000  00000000  00008000  RWIX
      SHDSPL2ROM            11700000   00100000  00000000  00100000  RWIX
      SHDSPL2RAM            11800000   00040000  00000000  00040000  RWIX
      SHDSPL1PRAM           11e00000   00008000  00000000  00008000  RWIX
      SHDSPL1DRAM           11f00000   00008000  00000000  00008000  RWIX
      EMIFACS0              40000000   20000000  00000000  20000000  RWIX
      EMIFACS2              60000000   02000000  00000000  02000000  RWIX
      EMIFACS3              62000000   02000000  00000000  02000000  RWIX
      EMIFACS4              64000000   02000000  00000000  02000000  RWIX
      EMIFACS5              66000000   02000000  00000000  02000000  RWIX
      SHRAM                 80000000   00020000  0000b598  00014a68  RWIX
      DDR2                  c0000000   20000000  00000000  20000000  RWIX
    
    
    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    80000000    80000000    00009260   00009260    r-x
      80000000    80000000    00009260   00009260    r-x .text
    80009260    80009260    00001830   00000000    rw-
      80009260    80009260    00000830   00000000    rw- .fardata
      80009a90    80009a90    00000800   00000000    rw- .stack
      8000a290    8000a290    00000800   00000000    rw- .sysmem
    8000aa90    8000aa90    00000624   00000624    r--
      8000aa90    8000aa90    00000624   00000624    r-- .const
    8000b0b8    8000b0b8    00000388   00000000    rw-
      8000b0b8    8000b0b8    00000388   00000000    rw- .far
    8000b440    8000b440    00000080   00000080    r--
      8000b440    8000b440    00000080   00000080    r-- .switch
    8000b4c0    8000b4c0    0000004c   00000000    rw-
      8000b4c0    8000b4c0    00000038   00000000    rw- .neardata
      8000b4f8    8000b4f8    00000014   00000000    rw- .bss
    8000b510    8000b510    00000090   00000090    r--
      8000b510    8000b510    00000090   00000090    r-- .cinit
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text      0    80000000    00009260     
                      80000000    00001aa0     system_config.lib : interrupt.obj (.text:retain)
                      80001aa0    00001000     device.obj (.text)
                      80002aa0    00000f80     ymodem.obj (.text)
                      80003a20    00000e20     spi_mem.obj (.text)
                      80004840    000009a0     common.obj (.text)
                      800051e0    00000860     main.obj (.text)
                      80005a40    00000820     drivers.lib : timer.obj (.text)
                      80006260    000006e0     spi.obj (.text)
                      80006940    000005e0     system_config.lib : interrupt.obj (.text)
                      80006f20    00000580     drivers.lib : gpio.obj (.text)
                      800074a0    00000580                 : uart.obj (.text)
                      80007a20    00000440     GPIO.obj (.text)
                      80007e60    00000440     spi_memboot.obj (.text)
                      800082a0    00000160     util.obj (.text)
                      80008400    00000200     system_config.lib : intvecs.obj (.text)
                      80008600    000001a0     UART.obj (.text)
                      800087a0    00000140     download.obj (.text)
                      800088e0    00000140     drivers.lib : psc.obj (.text)
                      80008a20    00000100     rts6740_elf.lib : copy_decompress_rle.c.obj (.text:__TI_decompress_rle_core)
                      80008b20    000000e0                     : exit.c.obj (.text:exit)
                      80008c00    000000e0                     : memset.c.obj (.text:memset)
                      80008ce0    000000c0                     : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
                      80008da0    000000c0                     : divu.asm.obj (.text:__divu)
                      80008e60    000000c0                     : tls.c.obj (.text:tls:init:__TI_tls_init)
                      80008f20    000000a0                     : remu.asm.obj (.text:__remu)
                      80008fc0    000000a0                     : memcpy64.asm.obj (.text:memcpy)
                      80009060    000000a0     uart0.obj (.text)
                      80009100    00000080     rts6740_elf.lib : boot.c.obj (.text:_c_int00)
                      80009180    00000040                     : args_main.c.obj (.text:_args_main)
                      800091c0    00000020                     : startup.c.obj (.text:_system_post_cinit)
                      800091e0    00000020                     : pre_init.c.obj (.text:_system_pre_init)
                      80009200    00000020                     : exit.c.obj (.text:abort)
                      80009220    00000020                     : copy_decompress_none.c.obj (.text:decompress:none:__TI_decompress_none)
                      80009240    00000020                     : copy_decompress_rle.c.obj (.text:decompress:rle24:__TI_decompress_rle24)
    
    .stack     0    80009a90    00000800     UNINITIALIZED
                      80009a90    00000008     rts6740_elf.lib : boot.c.obj (.stack)
                      80009a98    000007f8     --HOLE--
    
    .bss       0    8000b4f8    00000014     UNINITIALIZED
                      8000b4f8    00000004     common.obj (.bss)
                      8000b4fc    00000004     util.obj (.bss)
                      8000b500    00000004     (.common:RamSource)
                      8000b504    00000004     (.common:gEntryPoint)
                      8000b508    00000004     (.common:hSpiMemInfo)
    
    .const     0    8000aa90    00000624     
                      8000aa90    00000228     common.obj (.const:.string)
                      8000acb8    0000018c     spi_memboot.obj (.const:.string)
                      8000ae44    00000144     download.obj (.const:.string)
                      8000af88    00000048     ymodem.obj (.const:.string)
                      8000afd0    00000044     spi_mem.obj (.const:.string)
                      8000b014    00000004     spi.obj (.const)
                      8000b018    00000020     device.obj (.const:.string:LOCAL_bootModeLUT)
                      8000b038    00000017     common.obj (.const:.string:$P$T0$1)
                      8000b04f    00000001     --HOLE-- [fill = 0]
                      8000b050    00000014     device_spi.obj (.const:DEVICE_SPI_MEM_params)
                      8000b064    00000004     spi.obj (.const:DEFAULT_SPI_CONFIG)
                      8000b068    00000010     main.obj (.const:.string:hex_table)
                      8000b078    0000000b     main.obj (.const:.string:$P$T0$4)
                      8000b083    00000004     device_spi.obj (.const:DEVICE_SPI_config)
                      8000b087    00000001     --HOLE-- [fill = 0]
                      8000b088    0000000a     download.obj (.const:.string:$P$T0$1)
                      8000b092    00000006     --HOLE-- [fill = 0]
                      8000b098    00000008     device_spi.obj (.const:DEVICE_SPI_baseAddr)
                      8000b0a0    00000008     device_spi.obj (.const)
                      8000b0a8    00000007     main.obj (.const:.string:$P$T1$5)
                      8000b0af    00000001     --HOLE-- [fill = 0]
                      8000b0b0    00000004     main.obj (.const:.string:$P$T2$6)
    
    .fardata   0    80009260    00000830     UNINITIALIZED
                      80009260    00000400     download.obj (.fardata:tab_1024)
                      80009660    00000400     download.obj (.fardata:tab_2048)
                      80009a60    00000022     main.obj (.fardata:txArray)
                      80009a82    00000002     --HOLE--
                      80009a84    0000000c     rts6740_elf.lib : exit.c.obj (.fardata)
    
    .sysmem    0    8000a290    00000800     UNINITIALIZED
                      8000a290    00000008     rts6740_elf.lib : memory.c.obj (.sysmem)
                      8000a298    000007f8     --HOLE--
    
    .far       0    8000b0b8    00000388     UNINITIALIZED
                      8000b0b8    00000240     system_config.lib : interrupt.obj (.far)
                      8000b2f8    00000100     (.common:file_name)
                      8000b3f8    00000018     (.common:gSPIInfo)
                      8000b410    00000014     (.common:gSPIMemParams)
                      8000b424    00000014     (.common:gSpiMemBoot)
                      8000b438    00000008     (.common:gSPIMemInfo)
    
    .switch    0    8000b440    00000080     
                      8000b440    00000050     device.obj (.switch:DEVICE_bootPeripheral)
                      8000b490    00000020     spi.obj (.switch:LOCAL_setupMode)
                      8000b4b0    00000010     drivers.lib : gpio.obj (.switch:GPIOIntTypeSet)
    
    .cinit     0    8000b510    00000090     
                      8000b510    00000030     (.cinit..fardata.load) [load image, compression = rle]
                      8000b540    00000022     (.cinit..neardata.load) [load image, compression = rle]
                      8000b562    0000000b     (.cinit..far.load) [load image, compression = rle]
                      8000b56d    00000009     (.cinit..bss.load) [load image, compression = rle]
                      8000b576    00000002     --HOLE-- [fill = 0]
                      8000b578    00000008     (__TI_handler_table)
                      8000b580    00000020     (__TI_cinit_table)
    
    .init_array 
    *          0    80000000    00000000     UNINITIALIZED
    
    .neardata 
    *          0    8000b4c0    00000038     UNINITIALIZED
                      8000b4c0    0000001c     ymodem.obj (.neardata)
                      8000b4dc    0000000e     main.obj (.neardata)
                      8000b4ea    00000002     --HOLE--
                      8000b4ec    0000000c     common.obj (.neardata)
    
    MODULE SUMMARY
    
           Module                       code    ro data   rw data
           ------                       ----    -------   -------
        .\
           ymodem.obj                   3968    72        288    
           device.obj                   4096    112       0      
           spi_mem.obj                  3616    68        28     
           common.obj                   2464    575       20     
           download.obj                 320     334       2048   
           main.obj                     2144    38        52     
           spi.obj                      1760    40        24     
           spi_memboot.obj              1088    396       20     
           util.obj                     352     0         4      
           uart0.obj                    160     0         0      
           device_spi.obj               0       40        0      
        +--+----------------------------+-------+---------+---------+
           Total:                       19968   1675      2484   
                                                                 
        .\Platform\
           GPIO.obj                     1088    0         0      
           UART.obj                     416     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1504    0         0      
                                                                 
        ../library/drivers.lib
           timer.obj                    2080    0         0      
           gpio.obj                     1408    16        0      
           uart.obj                     1408    0         0      
           psc.obj                      320     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       5216    16        0      
                                                                 
        ../library/system_config.lib
           interrupt.obj                8320    0         576    
           intvecs.obj                  512     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       8832    0         576    
                                                                 
        C:\ti\ccs1271\ccs\tools\compiler\ti-cgt-c6000_8.3.12\lib\rts6740_elf.lib
           copy_decompress_rle.c.obj    288     0         0      
           exit.c.obj                   256     0         12     
           memset.c.obj                 224     0         0      
           autoinit.c.obj               192     0         0      
           divu.asm.obj                 192     0         0      
           tls.c.obj                    192     0         0      
           memcpy64.asm.obj             160     0         0      
           remu.asm.obj                 160     0         0      
           boot.c.obj                   128     0         0      
           args_main.c.obj              64      0         0      
           copy_decompress_none.c.obj   32      0         0      
           pre_init.c.obj               32      0         0      
           startup.c.obj                32      0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1952    0         12     
                                                                 
           Heap:                        0       0         2048   
           Stack:                       0       0         2048   
           Linker Generated:            0       142       0      
        +--+----------------------------+-------+---------+---------+
           Grand Total:                 37472   1833      7168   
    
    
    LINKER GENERATED COPY TABLES
    
    __TI_cinit_table @ 8000b580 records: 4, size/record: 8, table size: 32
    	.fardata: load addr=8000b510, load size=00000030 bytes, run addr=80009260, run size=00000830 bytes, compression=rle
    	.neardata: load addr=8000b540, load size=00000022 bytes, run addr=8000b4c0, run size=00000038 bytes, compression=rle
    	.far: load addr=8000b562, load size=0000000b bytes, run addr=8000b0b8, run size=00000388 bytes, compression=rle
    	.bss: load addr=8000b56d, load size=00000009 bytes, run addr=8000b4f8, run size=00000014 bytes, compression=rle
    
    
    LINKER GENERATED HANDLER TABLE
    
    __TI_handler_table @ 8000b578 records: 2, size/record: 4, table size: 8
    	index: 0, handler: __TI_decompress_rle24
    	index: 1, handler: __TI_decompress_none
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    address   name                           
    -------   ----                           
    8000b4c4  AppRamDestination              
    8000b4ec  BlockNbr                       
    80009200  C$$EXIT                        
    800033e8  CalChecksum                    
    80003384  Cal_CRC16                      
    80004848  CheckAppValid                  
    800050d8  CopyFlashToRAM                 
    8000b064  DEFAULT_SPI_CONFIG             
    800025e0  DEVICE_AsyncMemInit            
    800025b8  DEVICE_ExternalMemInit         
    800028c0  DEVICE_I2CInit                 
    80001c10  DEVICE_LPSCTransition          
    80002178  DEVICE_PLL0Init                
    800023e4  DEVICE_PLL1Init                
    80001db0  DEVICE_PSCInit                 
    80002974  DEVICE_SDMMCInit               
    800026b4  DEVICE_SPIInit                 
    8000b050  DEVICE_SPI_MEM_params          
    8000b098  DEVICE_SPI_baseAddr            
    8000b083  DEVICE_SPI_config              
    80002a78  DEVICE_TIMER0Init              
    80002a84  DEVICE_TIMER0Start             
    80002a94  DEVICE_TIMER0Status            
    80002a8c  DEVICE_TIMER0Stop              
    800027a4  DEVICE_UARTInit                
    80002100  DEVICE_bootMode                
    8000206c  DEVICE_bootPeripheral          
    80001be8  DEVICE_chipRevIDType           
    8000214c  DEVICE_emifBusWidth            
    80001aa0  DEVICE_init                    
    80002050  DEVICE_kickLock                
    80002020  DEVICE_kickUnlock              
    80001d74  DEVICE_pinmuxControl           
    800053ac  Delay                          
    80004eac  DisplayVersion                 
    8000b4cc  EraseCounter                   
    80006d98  ExcCombineAdd                  
    80006de0  ExcCombineRemove               
    80006d78  ExcGlobalEnable                
    8000b4d4  FLASHStatus                    
    8000b4dc  Flag                           
    8000b4c0  FlashDestination               
    80007a20  GPIOBank0Pin0PinMuxSetup       
    80007c68  GPIOBank0Pin12PinMuxSetup      
    80007cb0  GPIOBank0Pin13PinMuxSetup      
    80007cf4  GPIOBank0Pin14PinMuxSetup      
    80007d40  GPIOBank0Pin15PinMuxSetup      
    80007a60  GPIOBank0Pin1PinMuxSetup       
    80007aac  GPIOBank0Pin2PinMuxSetup       
    80007af4  GPIOBank0Pin5PinMuxSetup       
    80007b40  GPIOBank0Pin6PinMuxSetup       
    80007d80  GPIOBank1Pin12PinMuxSetup      
    80007e0c  GPIOBank1Pin7PinMuxSetup       
    80007bd0  GPIOBank6Pin12PinMuxSetup      
    80007c20  GPIOBank6Pin13PinMuxSetup      
    80007b88  GPIOBank6Pin1PinMuxSetup       
    80007dcc  GPIOBank8Pin1PinMuxSetup       
    80009060  GPIOBank8Pin2PinMuxSetup       
    800073c4  GPIOBankIntDisable             
    80007394  GPIOBankIntEnable              
    80005284  GPIOBankPinInit                
    80005248  GPIOBankPinMuxSet              
    800073f0  GPIOBankPinsWrite              
    80006fb8  GPIODirModeGet                 
    80006f20  GPIODirModeSet                 
    80007264  GPIOIntTypeGet                 
    800070f8  GPIOIntTypeSet                 
    8000734c  GPIOPinIntClear                
    800072ec  GPIOPinIntStatus               
    80007098  GPIOPinRead                    
    80007018  GPIOPinWrite                   
    80004dd0  GetInputString                 
    80004c74  GetIntegerInput                
    80004d54  GetKey                         
    80004840  GetUpdateFlg                   
    800058e4  HexToString_16                 
    800057c0  HexToString_32                 
    800059ac  HexToString_8                  
    80004850  Int2Str                        
    80006940  IntDSPINTCInit                 
    80006cf0  IntDisable                     
    80006cc0  IntEnable                      
    80006ab8  IntEventClear                  
    80006bf4  IntEventCombineAdd             
    80006af0  IntEventCombineInit            
    80006c98  IntEventCombineRegister        
    80006c48  IntEventCombineRemove          
    800069fc  IntEventMap                    
    80006a84  IntEventSet                    
    80006d4c  IntGlobalDisable               
    80006d38  IntGlobalEnable                
    80006d60  IntGlobalRestore               
    800069b0  IntRegister                    
    80006d24  IntReset                       
    800069d4  IntUnRegister                  
    8000552c  InterruptInit                  
    800050c0  JumpToApp                      
    80005120  Main_Menu                      
    8000b4d0  NbrOfPage                      
    80005214  PSCInit                        
    800088e0  PSCModuleControl               
    8000b4c8  PageSize                       
    8000b4d8  RamAddr                        
    8000b500  RamSource                      
    80007ed0  SPI_MEM_BOOT_copy              
    80007e60  SPI_MEM_INIT                   
    80004094  SPI_MEM_eraseBytes             
    80004034  SPI_MEM_globalErase            
    80003a20  SPI_MEM_open                   
    80003d04  SPI_MEM_readBytes              
    80003fa8  SPI_MEM_verifyBytes            
    80003df4  SPI_MEM_writeBytes             
    8000672c  SPI_disableCS                  
    800066e0  SPI_enableCS                   
    80006260  SPI_open                       
    800063a0  SPI_readBytes                  
    80006368  SPI_reset                      
    80006494  SPI_writeBytes                 
    80006584  SPI_xferBytes                  
    80006668  SPI_xferOneChar                
    800087a0  SerialDownload                 
    80004d08  SerialKeyPressed               
    80004d74  SerialPutChar                  
    80004d98  Serial_PutString               
    80004914  Str2Int                        
    80005f0c  TimerCaptureConfigure          
    80005d08  TimerCaptureGet                
    800060b4  TimerClockModeSet              
    80005d58  TimerCompareGet                
    80005d34  TimerCompareSet                
    80005ad4  TimerConfigure                 
    80005c74  TimerCounterGet                
    80005c40  TimerCounterSet                
    80005a9c  TimerDisable                   
    80005ef0  TimerDivDwnRatio34Get          
    80005ea4  TimerDivDwnRatio34Set          
    80005a40  TimerEnable                    
    800053d8  TimerInit                      
    80006018  TimerInputGateDisable          
    80005fe0  TimerInputGateEnable           
    80005da8  TimerIntDisable                
    80005d78  TimerIntEnable                 
    80005df8  TimerIntStatusClear            
    80005dd4  TimerIntStatusGet              
    80005438  TimerInterruptInit             
    80006194  TimerInvertINDisable           
    8000615c  TimerInvertINEnable            
    8000620c  TimerInvertOUTDisable          
    800061d0  TimerInvertOUTEnable           
    80005480  TimerIsr                       
    8000612c  TimerOUTStatusGet              
    80005c10  TimerPeriodGet                 
    80005bd4  TimerPeriodSet                 
    80005e88  TimerPreScalarCount34Get       
    80005e34  TimerPreScalarCount34Set       
    800060f0  TimerPulseModeSet              
    80006050  TimerPulseWidthSet             
    80005fa8  TimerReadResetDisable          
    80005f6c  TimerReadResetEnable           
    80005cd8  TimerReloadGet                 
    80005ca4  TimerReloadSet                 
    80005b4c  TimerWatchdogActivate          
    80005b8c  TimerWatchdogReactivate        
    80007904  UARTBreakCtl                   
    800077f4  UARTCharGet                    
    800077c8  UARTCharGetNonBlocking         
    80007830  UARTCharPut                    
    80007788  UARTCharPutNonBlocking         
    80007738  UARTCharsAvail                 
    80007534  UARTConfigGetExpClk            
    800074a0  UARTConfigSetExpClk            
    8000760c  UARTDMADisable                 
    800075ec  UARTDMAEnable                  
    800076b4  UARTDisable                    
    80007698  UARTEnable                     
    800076f4  UARTFIFODisable                
    800076e0  UARTFIFOEnable                 
    800075c8  UARTFIFOLevelSet               
    80005540  UARTInit                       
    800078b0  UARTIntDisable                 
    80007888  UARTIntEnable                  
    800078d8  UARTIntStatus                  
    80005588  UARTInterruptInit              
    800055d0  UARTIsr                        
    80007990  UARTModemControlClear          
    800079c4  UARTModemControlGet            
    80007938  UARTModemControlSet            
    800079e4  UARTModemStatusGet             
    80007674  UARTParityModeGet              
    8000762c  UARTParityModeSet              
    80008600  UARTPinMuxSetup                
    80005704  UARTPuts                       
    80007768  UARTRxErrorGet                 
    8000770c  UARTSpaceAvail                 
    800082c8  UTIL_allocMem                  
    800082e0  UTIL_callocMem                 
    800082a0  UTIL_getCurrMemPtr             
    80008330  UTIL_memcpy                    
    800082ac  UTIL_setCurrMemPtr             
    80008380  UTIL_waitLoop                  
    800083c0  UTIL_waitLoopAccurate          
    80003310  UpdateCRC16                    
    8000b4f0  UserMemoryMask                 
    80003028  Ymodem_CheckResponse           
    80003044  Ymodem_PrepareIntialPacket     
    800031a8  Ymodem_PreparePacket           
    80002c94  Ymodem_Receive                 
    80003430  Ymodem_SendPacket              
    80003490  Ymodem_Transmit                
    8000b580  __TI_CINIT_Base                
    8000b5a0  __TI_CINIT_Limit               
    8000b578  __TI_Handler_Table_Base        
    8000b580  __TI_Handler_Table_Limit       
    8000a290  __TI_STACK_END                 
    00000800  __TI_STACK_SIZE                
    8000b4c0  __TI_STATIC_BASE               
    00000800  __TI_SYSMEM_SIZE               
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    80008ce0  __TI_auto_init_nobinit_nopinit 
    80009a84  __TI_cleanup_ptr               
    80009220  __TI_decompress_none           
    80009240  __TI_decompress_rle24          
    80009a88  __TI_dtors_ptr                 
    80009a8c  __TI_enable_exit_profile_output
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    80008e60  __TI_tls_init                  
    ffffffff  __binit__                      
    80008da0  __c6xabi_divu                  
    80008f20  __c6xabi_remu                  
    ffffffff  __c_args__                     
    80008da0  __divu                         
    80008f20  __remu                         
    80009180  _args_main                     
    80000ff8  _c674x_mask_int10_isr          
    800011c0  _c674x_mask_int11_isr          
    80001384  _c674x_mask_int12_isr          
    80001548  _c674x_mask_int13_isr          
    80001710  _c674x_mask_int14_isr          
    800018d8  _c674x_mask_int15_isr          
    80000550  _c674x_mask_int4_isr           
    80000718  _c674x_mask_int5_isr           
    800008e0  _c674x_mask_int6_isr           
    80000aa4  _c674x_mask_int7_isr           
    80000c68  _c674x_mask_int8_isr           
    80000e30  _c674x_mask_int9_isr           
    80000000  _c674x_nmi_isr                 
    800001c4  _c674x_rsvd_int2_isr           
    80000388  _c674x_rsvd_int3_isr           
    80009100  _c_int00                       
    80008400  _intcVectorTable               
    80009a90  _stack                         
    8000a290  _sys_memory                    
    800091c0  _system_post_cinit             
    800091e0  _system_pre_init               
    80009200  abort                          
    ffffffff  binit                          
    800090d0  enable485Rx                    
    800090b4  enable485Tx                    
    80008b20  exit                           
    8000b2f8  file_name                      
    8000b4f4  gAppPoint                      
    8000b504  gEntryPoint                    
    8000b3f8  gSPIInfo                       
    8000b438  gSPIMemInfo                    
    8000b410  gSPIMemParams                  
    8000b424  gSpiMemBoot                    
    8000b014  hDEFAULT_SPI_CONFIG            
    8000b0a4  hDEVICE_SPI_MEM_params         
    8000b0a0  hDEVICE_SPI_config             
    8000b508  hSpiMemInfo                    
    8000b068  hex_table                      
    800051e0  main                           
    80008fc0  memcpy                         
    80008c00  memset                         
    80009260  tab_1024                       
    80009660  tab_2048                       
    80009a60  txArray                        
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    address   name                           
    -------   ----                           
    00000800  __TI_STACK_SIZE                
    00000800  __TI_SYSMEM_SIZE               
    80000000  _c674x_nmi_isr                 
    800001c4  _c674x_rsvd_int2_isr           
    80000388  _c674x_rsvd_int3_isr           
    80000550  _c674x_mask_int4_isr           
    80000718  _c674x_mask_int5_isr           
    800008e0  _c674x_mask_int6_isr           
    80000aa4  _c674x_mask_int7_isr           
    80000c68  _c674x_mask_int8_isr           
    80000e30  _c674x_mask_int9_isr           
    80000ff8  _c674x_mask_int10_isr          
    800011c0  _c674x_mask_int11_isr          
    80001384  _c674x_mask_int12_isr          
    80001548  _c674x_mask_int13_isr          
    80001710  _c674x_mask_int14_isr          
    800018d8  _c674x_mask_int15_isr          
    80001aa0  DEVICE_init                    
    80001be8  DEVICE_chipRevIDType           
    80001c10  DEVICE_LPSCTransition          
    80001d74  DEVICE_pinmuxControl           
    80001db0  DEVICE_PSCInit                 
    80002020  DEVICE_kickUnlock              
    80002050  DEVICE_kickLock                
    8000206c  DEVICE_bootPeripheral          
    80002100  DEVICE_bootMode                
    8000214c  DEVICE_emifBusWidth            
    80002178  DEVICE_PLL0Init                
    800023e4  DEVICE_PLL1Init                
    800025b8  DEVICE_ExternalMemInit         
    800025e0  DEVICE_AsyncMemInit            
    800026b4  DEVICE_SPIInit                 
    800027a4  DEVICE_UARTInit                
    800028c0  DEVICE_I2CInit                 
    80002974  DEVICE_SDMMCInit               
    80002a78  DEVICE_TIMER0Init              
    80002a84  DEVICE_TIMER0Start             
    80002a8c  DEVICE_TIMER0Stop              
    80002a94  DEVICE_TIMER0Status            
    80002c94  Ymodem_Receive                 
    80003028  Ymodem_CheckResponse           
    80003044  Ymodem_PrepareIntialPacket     
    800031a8  Ymodem_PreparePacket           
    80003310  UpdateCRC16                    
    80003384  Cal_CRC16                      
    800033e8  CalChecksum                    
    80003430  Ymodem_SendPacket              
    80003490  Ymodem_Transmit                
    80003a20  SPI_MEM_open                   
    80003d04  SPI_MEM_readBytes              
    80003df4  SPI_MEM_writeBytes             
    80003fa8  SPI_MEM_verifyBytes            
    80004034  SPI_MEM_globalErase            
    80004094  SPI_MEM_eraseBytes             
    80004840  GetUpdateFlg                   
    80004848  CheckAppValid                  
    80004850  Int2Str                        
    80004914  Str2Int                        
    80004c74  GetIntegerInput                
    80004d08  SerialKeyPressed               
    80004d54  GetKey                         
    80004d74  SerialPutChar                  
    80004d98  Serial_PutString               
    80004dd0  GetInputString                 
    80004eac  DisplayVersion                 
    800050c0  JumpToApp                      
    800050d8  CopyFlashToRAM                 
    80005120  Main_Menu                      
    800051e0  main                           
    80005214  PSCInit                        
    80005248  GPIOBankPinMuxSet              
    80005284  GPIOBankPinInit                
    800053ac  Delay                          
    800053d8  TimerInit                      
    80005438  TimerInterruptInit             
    80005480  TimerIsr                       
    8000552c  InterruptInit                  
    80005540  UARTInit                       
    80005588  UARTInterruptInit              
    800055d0  UARTIsr                        
    80005704  UARTPuts                       
    800057c0  HexToString_32                 
    800058e4  HexToString_16                 
    800059ac  HexToString_8                  
    80005a40  TimerEnable                    
    80005a9c  TimerDisable                   
    80005ad4  TimerConfigure                 
    80005b4c  TimerWatchdogActivate          
    80005b8c  TimerWatchdogReactivate        
    80005bd4  TimerPeriodSet                 
    80005c10  TimerPeriodGet                 
    80005c40  TimerCounterSet                
    80005c74  TimerCounterGet                
    80005ca4  TimerReloadSet                 
    80005cd8  TimerReloadGet                 
    80005d08  TimerCaptureGet                
    80005d34  TimerCompareSet                
    80005d58  TimerCompareGet                
    80005d78  TimerIntEnable                 
    80005da8  TimerIntDisable                
    80005dd4  TimerIntStatusGet              
    80005df8  TimerIntStatusClear            
    80005e34  TimerPreScalarCount34Set       
    80005e88  TimerPreScalarCount34Get       
    80005ea4  TimerDivDwnRatio34Set          
    80005ef0  TimerDivDwnRatio34Get          
    80005f0c  TimerCaptureConfigure          
    80005f6c  TimerReadResetEnable           
    80005fa8  TimerReadResetDisable          
    80005fe0  TimerInputGateEnable           
    80006018  TimerInputGateDisable          
    80006050  TimerPulseWidthSet             
    800060b4  TimerClockModeSet              
    800060f0  TimerPulseModeSet              
    8000612c  TimerOUTStatusGet              
    8000615c  TimerInvertINEnable            
    80006194  TimerInvertINDisable           
    800061d0  TimerInvertOUTEnable           
    8000620c  TimerInvertOUTDisable          
    80006260  SPI_open                       
    80006368  SPI_reset                      
    800063a0  SPI_readBytes                  
    80006494  SPI_writeBytes                 
    80006584  SPI_xferBytes                  
    80006668  SPI_xferOneChar                
    800066e0  SPI_enableCS                   
    8000672c  SPI_disableCS                  
    80006940  IntDSPINTCInit                 
    800069b0  IntRegister                    
    800069d4  IntUnRegister                  
    800069fc  IntEventMap                    
    80006a84  IntEventSet                    
    80006ab8  IntEventClear                  
    80006af0  IntEventCombineInit            
    80006bf4  IntEventCombineAdd             
    80006c48  IntEventCombineRemove          
    80006c98  IntEventCombineRegister        
    80006cc0  IntEnable                      
    80006cf0  IntDisable                     
    80006d24  IntReset                       
    80006d38  IntGlobalEnable                
    80006d4c  IntGlobalDisable               
    80006d60  IntGlobalRestore               
    80006d78  ExcGlobalEnable                
    80006d98  ExcCombineAdd                  
    80006de0  ExcCombineRemove               
    80006f20  GPIODirModeSet                 
    80006fb8  GPIODirModeGet                 
    80007018  GPIOPinWrite                   
    80007098  GPIOPinRead                    
    800070f8  GPIOIntTypeSet                 
    80007264  GPIOIntTypeGet                 
    800072ec  GPIOPinIntStatus               
    8000734c  GPIOPinIntClear                
    80007394  GPIOBankIntEnable              
    800073c4  GPIOBankIntDisable             
    800073f0  GPIOBankPinsWrite              
    800074a0  UARTConfigSetExpClk            
    80007534  UARTConfigGetExpClk            
    800075c8  UARTFIFOLevelSet               
    800075ec  UARTDMAEnable                  
    8000760c  UARTDMADisable                 
    8000762c  UARTParityModeSet              
    80007674  UARTParityModeGet              
    80007698  UARTEnable                     
    800076b4  UARTDisable                    
    800076e0  UARTFIFOEnable                 
    800076f4  UARTFIFODisable                
    8000770c  UARTSpaceAvail                 
    80007738  UARTCharsAvail                 
    80007768  UARTRxErrorGet                 
    80007788  UARTCharPutNonBlocking         
    800077c8  UARTCharGetNonBlocking         
    800077f4  UARTCharGet                    
    80007830  UARTCharPut                    
    80007888  UARTIntEnable                  
    800078b0  UARTIntDisable                 
    800078d8  UARTIntStatus                  
    80007904  UARTBreakCtl                   
    80007938  UARTModemControlSet            
    80007990  UARTModemControlClear          
    800079c4  UARTModemControlGet            
    800079e4  UARTModemStatusGet             
    80007a20  GPIOBank0Pin0PinMuxSetup       
    80007a60  GPIOBank0Pin1PinMuxSetup       
    80007aac  GPIOBank0Pin2PinMuxSetup       
    80007af4  GPIOBank0Pin5PinMuxSetup       
    80007b40  GPIOBank0Pin6PinMuxSetup       
    80007b88  GPIOBank6Pin1PinMuxSetup       
    80007bd0  GPIOBank6Pin12PinMuxSetup      
    80007c20  GPIOBank6Pin13PinMuxSetup      
    80007c68  GPIOBank0Pin12PinMuxSetup      
    80007cb0  GPIOBank0Pin13PinMuxSetup      
    80007cf4  GPIOBank0Pin14PinMuxSetup      
    80007d40  GPIOBank0Pin15PinMuxSetup      
    80007d80  GPIOBank1Pin12PinMuxSetup      
    80007dcc  GPIOBank8Pin1PinMuxSetup       
    80007e0c  GPIOBank1Pin7PinMuxSetup       
    80007e60  SPI_MEM_INIT                   
    80007ed0  SPI_MEM_BOOT_copy              
    800082a0  UTIL_getCurrMemPtr             
    800082ac  UTIL_setCurrMemPtr             
    800082c8  UTIL_allocMem                  
    800082e0  UTIL_callocMem                 
    80008330  UTIL_memcpy                    
    80008380  UTIL_waitLoop                  
    800083c0  UTIL_waitLoopAccurate          
    80008400  _intcVectorTable               
    80008600  UARTPinMuxSetup                
    800087a0  SerialDownload                 
    800088e0  PSCModuleControl               
    80008b20  exit                           
    80008c00  memset                         
    80008ce0  __TI_auto_init_nobinit_nopinit 
    80008da0  __c6xabi_divu                  
    80008da0  __divu                         
    80008e60  __TI_tls_init                  
    80008f20  __c6xabi_remu                  
    80008f20  __remu                         
    80008fc0  memcpy                         
    80009060  GPIOBank8Pin2PinMuxSetup       
    800090b4  enable485Tx                    
    800090d0  enable485Rx                    
    80009100  _c_int00                       
    80009180  _args_main                     
    800091c0  _system_post_cinit             
    800091e0  _system_pre_init               
    80009200  C$$EXIT                        
    80009200  abort                          
    80009220  __TI_decompress_none           
    80009240  __TI_decompress_rle24          
    80009260  tab_1024                       
    80009660  tab_2048                       
    80009a60  txArray                        
    80009a84  __TI_cleanup_ptr               
    80009a88  __TI_dtors_ptr                 
    80009a8c  __TI_enable_exit_profile_output
    80009a90  _stack                         
    8000a290  __TI_STACK_END                 
    8000a290  _sys_memory                    
    8000b014  hDEFAULT_SPI_CONFIG            
    8000b050  DEVICE_SPI_MEM_params          
    8000b064  DEFAULT_SPI_CONFIG             
    8000b068  hex_table                      
    8000b083  DEVICE_SPI_config              
    8000b098  DEVICE_SPI_baseAddr            
    8000b0a0  hDEVICE_SPI_config             
    8000b0a4  hDEVICE_SPI_MEM_params         
    8000b2f8  file_name                      
    8000b3f8  gSPIInfo                       
    8000b410  gSPIMemParams                  
    8000b424  gSpiMemBoot                    
    8000b438  gSPIMemInfo                    
    8000b4c0  FlashDestination               
    8000b4c0  __TI_STATIC_BASE               
    8000b4c4  AppRamDestination              
    8000b4c8  PageSize                       
    8000b4cc  EraseCounter                   
    8000b4d0  NbrOfPage                      
    8000b4d4  FLASHStatus                    
    8000b4d8  RamAddr                        
    8000b4dc  Flag                           
    8000b4ec  BlockNbr                       
    8000b4f0  UserMemoryMask                 
    8000b4f4  gAppPoint                      
    8000b500  RamSource                      
    8000b504  gEntryPoint                    
    8000b508  hSpiMemInfo                    
    8000b578  __TI_Handler_Table_Base        
    8000b580  __TI_CINIT_Base                
    8000b580  __TI_Handler_Table_Limit       
    8000b5a0  __TI_CINIT_Limit               
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    ffffffff  __binit__                      
    ffffffff  __c_args__                     
    ffffffff  binit                          
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    
    [280 symbols]
    

    Below is App .map file

    ******************************************************************************
                   TMS320C6x Linker PC v8.3.12                     
    ******************************************************************************
    >> Linked Fri Aug 16 08:19:11 2024
    
    OUTPUT FILE NAME:   <TIMER.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 11800000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      DSPL2ROM              00700000   00100000  00000000  00100000  RWIX
      DSPL2RAM              00800000   00040000  00000000  00040000  RWIX
      DSPL1PRAM             00e00000   00008000  00000000  00008000  RWIX
      DSPL1DRAM             00f00000   00008000  00000000  00008000  RWIX
      SHDSPL2ROM            11700000   00100000  00000000  00100000  RWIX
      RAM4CINT00            11800000   00000400  00000080  00000380  RWIX
      SHDSPL2RAM            11800400   0003fc00  00005441  0003a7bf  RWIX
      SHDSPL1PRAM           11e00000   00008000  00000000  00008000  RWIX
      SHDSPL1DRAM           11f00000   00008000  00000000  00008000  RWIX
      EMIFACS0              40000000   20000000  00000000  20000000  RWIX
      EMIFACS2              60000000   02000000  00000000  02000000  RWIX
      EMIFACS3              62000000   02000000  00000000  02000000  RWIX
      EMIFACS4              64000000   02000000  00000000  02000000  RWIX
      EMIFACS5              66000000   02000000  00000000  02000000  RWIX
      SHRAM                 80000000   00020000  00000000  00020000  RWIX
      DDR2                  c0000000   20000000  00000000  20000000  RWIX
    
    
    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    11800000    11800000    00000080   00000080    r-x
      11800000    11800000    00000080   00000080    r-x .boot
    11800400    11800400    00004940   00004940    r-x
      11800400    11800400    00004940   00004940    r-x .text
    11804d40    11804d40    00000a40   00000000    rw-
      11804d40    11804d40    00000800   00000000    rw- .stack
      11805540    11805540    00000240   00000000    rw- .far
    11805780    11805780    00000074   00000074    r--
      11805780    11805780    00000064   00000064    r-- .const
      118057e4    118057e4    00000010   00000010    r-- .switch
    118057f4    118057f4    0000000d   00000000    rw-
      118057f4    118057f4    0000000c   00000000    rw- .fardata
      11805800    11805800    00000001   00000000    rw- .neardata
    11805808    11805808    00000040   00000040    r--
      11805808    11805808    00000040   00000040    r-- .cinit
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text      0    11800400    00004940     
                      11800400    00001aa0     system_config.lib : interrupt.obj (.text:retain)
                      11801ea0    00000820     drivers.lib : timer.obj (.text)
                      118026c0    00000600     main.obj (.text)
                      11802cc0    000005e0     system_config.lib : interrupt.obj (.text)
                      118032a0    00000580     drivers.lib : gpio.obj (.text)
                      11803820    00000580                 : uart.obj (.text)
                      11803da0    00000440     GPIO.obj (.text)
                      118041e0    000001a0     UART.obj (.text)
                      11804380    00000040     rts6740_elf.lib : args_main.c.obj (.text:_args_main)
                      118043c0    00000020                     : startup.c.obj (.text:_system_post_cinit)
                      118043e0    00000020                     : pre_init.c.obj (.text:_system_pre_init)
                      11804400    00000200     system_config.lib : intvecs.obj (.text)
                      11804600    00000140     drivers.lib : psc.obj (.text)
                      11804740    00000100     rts6740_elf.lib : copy_decompress_rle.c.obj (.text:__TI_decompress_rle_core)
                      11804840    000000e0                     : exit.c.obj (.text:exit)
                      11804920    000000e0                     : memset.c.obj (.text:memset)
                      11804a00    000000c0                     : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
                      11804ac0    000000c0                     : divu.asm.obj (.text:__divu)
                      11804b80    000000c0                     : tls.c.obj (.text:tls:init:__TI_tls_init)
                      11804c40    000000a0                     : memcpy64.asm.obj (.text:memcpy)
                      11804ce0    00000020                     : exit.c.obj (.text:abort)
                      11804d00    00000020                     : copy_decompress_none.c.obj (.text:decompress:none:__TI_decompress_none)
                      11804d20    00000020                     : copy_decompress_rle.c.obj (.text:decompress:rle24:__TI_decompress_rle24)
    
    .stack     0    11804d40    00000800     UNINITIALIZED
                      11804d40    00000008     rts6740_elf.lib : boot.c.obj (.stack)
                      11804d48    000007f8     --HOLE--
    
    .const     0    11805780    00000064     
                      11805780    0000003c     main.obj (.const:.string)
                      118057bc    00000004     --HOLE-- [fill = 0]
                      118057c0    00000010     main.obj (.const:.string:hex_table)
                      118057d0    0000000b     main.obj (.const:.string:$P$T0$1)
                      118057db    00000005     --HOLE-- [fill = 0]
                      118057e0    00000004     main.obj (.const:.string:$P$T1$2)
    
    .switch    0    118057e4    00000010     
                      118057e4    00000010     drivers.lib : gpio.obj (.switch:GPIOIntTypeSet)
    
    .far       0    11805540    00000240     UNINITIALIZED
                      11805540    00000240     system_config.lib : interrupt.obj (.far)
    
    .fardata   0    118057f4    0000000c     UNINITIALIZED
                      118057f4    0000000c     rts6740_elf.lib : exit.c.obj (.fardata)
    
    .cinit     0    11805808    00000040     
                      11805808    0000000d     (.cinit..fardata.load) [load image, compression = rle]
                      11805815    0000000b     (.cinit..far.load) [load image, compression = rle]
                      11805820    00000008     (__TI_handler_table)
                      11805828    00000007     (.cinit..neardata.load) [load image, compression = rle]
                      1180582f    00000001     --HOLE-- [fill = 0]
                      11805830    00000018     (__TI_cinit_table)
    
    .init_array 
    *          0    11800400    00000000     UNINITIALIZED
    
    .neardata 
    *          0    11805800    00000001     UNINITIALIZED
                      11805800    00000001     main.obj (.neardata)
    
    .boot      0    11800000    00000080     
                      11800000    00000080     rts6740_elf.lib : boot.c.obj (.text:_c_int00)
    
    MODULE SUMMARY
    
           Module                       code    ro data   rw data
           ------                       ----    -------   -------
        .\
           main.obj                     1536    91        1      
        +--+----------------------------+-------+---------+---------+
           Total:                       1536    91        1      
                                                                 
        .\Platform\
           GPIO.obj                     1088    0         0      
           UART.obj                     416     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1504    0         0      
                                                                 
        ../library/drivers.lib
           timer.obj                    2080    0         0      
           gpio.obj                     1408    16        0      
           uart.obj                     1408    0         0      
           psc.obj                      320     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       5216    16        0      
                                                                 
        ../library/system_config.lib
           interrupt.obj                8320    0         576    
           intvecs.obj                  512     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       8832    0         576    
                                                                 
        C:/ti/ccs1271/ccs/tools/compiler/ti-cgt-c6000_8.3.12/lib/rts6740_elf.lib
           copy_decompress_rle.c.obj    288     0         0      
           exit.c.obj                   256     0         12     
           memset.c.obj                 224     0         0      
           autoinit.c.obj               192     0         0      
           tls.c.obj                    192     0         0      
           memcpy64.asm.obj             160     0         0      
           boot.c.obj                   128     0         0      
           args_main.c.obj              64      0         0      
           copy_decompress_none.c.obj   32      0         0      
           pre_init.c.obj               32      0         0      
           startup.c.obj                32      0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1600    0         12     
                                                                 
        C:\ti\ccs1271\ccs\tools\compiler\ti-cgt-c6000_8.3.12\lib\rts6740_elf.lib
           divu.asm.obj                 192     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       192     0         0      
                                                                 
           Stack:                       0       0         2048   
           Linker Generated:            0       63        0      
        +--+----------------------------+-------+---------+---------+
           Grand Total:                 18880   170       2637   
    
    
    LINKER GENERATED COPY TABLES
    
    __TI_cinit_table @ 11805830 records: 3, size/record: 8, table size: 24
    	.fardata: load addr=11805808, load size=0000000d bytes, run addr=118057f4, run size=0000000c bytes, compression=rle
    	.far: load addr=11805815, load size=0000000b bytes, run addr=11805540, run size=00000240 bytes, compression=rle
    	.neardata: load addr=11805828, load size=00000007 bytes, run addr=11805800, run size=00000001 bytes, compression=rle
    
    
    LINKER GENERATED HANDLER TABLE
    
    __TI_handler_table @ 11805820 records: 2, size/record: 4, table size: 8
    	index: 0, handler: __TI_decompress_rle24
    	index: 1, handler: __TI_decompress_none
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    address   name                           
    -------   ----                           
    11804ce0  C$$EXIT                        
    11803118  ExcCombineAdd                  
    11803160  ExcCombineRemove               
    118030f8  ExcGlobalEnable                
    11805800  Flag                           
    11803da0  GPIOBank0Pin0PinMuxSetup       
    11803fe8  GPIOBank0Pin12PinMuxSetup      
    11804030  GPIOBank0Pin13PinMuxSetup      
    11804074  GPIOBank0Pin14PinMuxSetup      
    118040c0  GPIOBank0Pin15PinMuxSetup      
    11803de0  GPIOBank0Pin1PinMuxSetup       
    11803e2c  GPIOBank0Pin2PinMuxSetup       
    11803e74  GPIOBank0Pin5PinMuxSetup       
    11803ec0  GPIOBank0Pin6PinMuxSetup       
    11804100  GPIOBank1Pin12PinMuxSetup      
    1180418c  GPIOBank1Pin7PinMuxSetup       
    11803f50  GPIOBank6Pin12PinMuxSetup      
    11803fa0  GPIOBank6Pin13PinMuxSetup      
    11803f08  GPIOBank6Pin1PinMuxSetup       
    1180414c  GPIOBank8Pin1PinMuxSetup       
    11803744  GPIOBankIntDisable             
    11803714  GPIOBankIntEnable              
    118027c0  GPIOBankPinInit                
    11802784  GPIOBankPinMuxSet              
    11803770  GPIOBankPinsWrite              
    11803338  GPIODirModeGet                 
    118032a0  GPIODirModeSet                 
    118035e4  GPIOIntTypeGet                 
    11803478  GPIOIntTypeSet                 
    118036cc  GPIOPinIntClear                
    1180366c  GPIOPinIntStatus               
    11803418  GPIOPinRead                    
    11803398  GPIOPinWrite                   
    11802b0c  HexToString_32                 
    11802c30  HexToString_8                  
    11802cc0  IntDSPINTCInit                 
    11803070  IntDisable                     
    11803040  IntEnable                      
    11802e38  IntEventClear                  
    11802f74  IntEventCombineAdd             
    11802e70  IntEventCombineInit            
    11803018  IntEventCombineRegister        
    11802fc8  IntEventCombineRemove          
    11802d7c  IntEventMap                    
    11802e04  IntEventSet                    
    118030cc  IntGlobalDisable               
    118030b8  IntGlobalEnable                
    118030e0  IntGlobalRestore               
    11802d30  IntRegister                    
    118030a4  IntReset                       
    11802d54  IntUnRegister                  
    1180294c  InterruptInit                  
    11802750  PSCInit                        
    11804600  PSCModuleControl               
    1180236c  TimerCaptureConfigure          
    11802168  TimerCaptureGet                
    11802514  TimerClockModeSet              
    118021b8  TimerCompareGet                
    11802194  TimerCompareSet                
    11801f34  TimerConfigure                 
    118020d4  TimerCounterGet                
    118020a0  TimerCounterSet                
    11801efc  TimerDisable                   
    11802350  TimerDivDwnRatio34Get          
    11802304  TimerDivDwnRatio34Set          
    11801ea0  TimerEnable                    
    118028ac  TimerInit                      
    11802478  TimerInputGateDisable          
    11802440  TimerInputGateEnable           
    11802208  TimerIntDisable                
    118021d8  TimerIntEnable                 
    11802258  TimerIntStatusClear            
    11802234  TimerIntStatusGet              
    1180290c  TimerInterruptInit             
    118025f4  TimerInvertINDisable           
    118025bc  TimerInvertINEnable            
    1180266c  TimerInvertOUTDisable          
    11802630  TimerInvertOUTEnable           
    11802960  TimerIsr                       
    1180258c  TimerOUTStatusGet              
    11802070  TimerPeriodGet                 
    11802034  TimerPeriodSet                 
    118022e8  TimerPreScalarCount34Get       
    11802294  TimerPreScalarCount34Set       
    11802550  TimerPulseModeSet              
    118024b0  TimerPulseWidthSet             
    11802408  TimerReadResetDisable          
    118023cc  TimerReadResetEnable           
    11802138  TimerReloadGet                 
    11802104  TimerReloadSet                 
    11801fac  TimerWatchdogActivate          
    11801fec  TimerWatchdogReactivate        
    11803c84  UARTBreakCtl                   
    11803b74  UARTCharGet                    
    11803b48  UARTCharGetNonBlocking         
    11803bb0  UARTCharPut                    
    11803b08  UARTCharPutNonBlocking         
    11803ab8  UARTCharsAvail                 
    118038b4  UARTConfigGetExpClk            
    11803820  UARTConfigSetExpClk            
    1180398c  UARTDMADisable                 
    1180396c  UARTDMAEnable                  
    11803a34  UARTDisable                    
    11803a18  UARTEnable                     
    11803a74  UARTFIFODisable                
    11803a60  UARTFIFOEnable                 
    11803948  UARTFIFOLevelSet               
    11802a04  UARTInit                       
    11803c30  UARTIntDisable                 
    11803c08  UARTIntEnable                  
    11803c58  UARTIntStatus                  
    11803d10  UARTModemControlClear          
    11803d44  UARTModemControlGet            
    11803cb8  UARTModemControlSet            
    11803d64  UARTModemStatusGet             
    118039f4  UARTParityModeGet              
    118039ac  UARTParityModeSet              
    118041e0  UARTPinMuxSetup                
    11802a4c  UARTPuts                       
    11803ae8  UARTRxErrorGet                 
    11803a8c  UARTSpaceAvail                 
    11805830  __TI_CINIT_Base                
    11805848  __TI_CINIT_Limit               
    11805820  __TI_Handler_Table_Base        
    11805828  __TI_Handler_Table_Limit       
    11805540  __TI_STACK_END                 
    00000800  __TI_STACK_SIZE                
    11805800  __TI_STATIC_BASE               
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    11804a00  __TI_auto_init_nobinit_nopinit 
    118057f4  __TI_cleanup_ptr               
    11804d00  __TI_decompress_none           
    11804d20  __TI_decompress_rle24          
    118057f8  __TI_dtors_ptr                 
    118057fc  __TI_enable_exit_profile_output
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    11804b80  __TI_tls_init                  
    ffffffff  __binit__                      
    11804ac0  __c6xabi_divu                  
    ffffffff  __c_args__                     
    11804ac0  __divu                         
    11804380  _args_main                     
    118013f8  _c674x_mask_int10_isr          
    118015c0  _c674x_mask_int11_isr          
    11801784  _c674x_mask_int12_isr          
    11801948  _c674x_mask_int13_isr          
    11801b10  _c674x_mask_int14_isr          
    11801cd8  _c674x_mask_int15_isr          
    11800950  _c674x_mask_int4_isr           
    11800b18  _c674x_mask_int5_isr           
    11800ce0  _c674x_mask_int6_isr           
    11800ea4  _c674x_mask_int7_isr           
    11801068  _c674x_mask_int8_isr           
    11801230  _c674x_mask_int9_isr           
    11800400  _c674x_nmi_isr                 
    118005c4  _c674x_rsvd_int2_isr           
    11800788  _c674x_rsvd_int3_isr           
    11800000  _c_int00                       
    11804400  _intcVectorTable               
    11804d40  _stack                         
    118043c0  _system_post_cinit             
    118043e0  _system_pre_init               
    11804ce0  abort                          
    ffffffff  binit                          
    11804840  exit                           
    118057c0  hex_table                      
    118026c0  main                           
    11804c40  memcpy                         
    11804920  memset                         
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    address   name                           
    -------   ----                           
    00000800  __TI_STACK_SIZE                
    11800000  _c_int00                       
    11800400  _c674x_nmi_isr                 
    118005c4  _c674x_rsvd_int2_isr           
    11800788  _c674x_rsvd_int3_isr           
    11800950  _c674x_mask_int4_isr           
    11800b18  _c674x_mask_int5_isr           
    11800ce0  _c674x_mask_int6_isr           
    11800ea4  _c674x_mask_int7_isr           
    11801068  _c674x_mask_int8_isr           
    11801230  _c674x_mask_int9_isr           
    118013f8  _c674x_mask_int10_isr          
    118015c0  _c674x_mask_int11_isr          
    11801784  _c674x_mask_int12_isr          
    11801948  _c674x_mask_int13_isr          
    11801b10  _c674x_mask_int14_isr          
    11801cd8  _c674x_mask_int15_isr          
    11801ea0  TimerEnable                    
    11801efc  TimerDisable                   
    11801f34  TimerConfigure                 
    11801fac  TimerWatchdogActivate          
    11801fec  TimerWatchdogReactivate        
    11802034  TimerPeriodSet                 
    11802070  TimerPeriodGet                 
    118020a0  TimerCounterSet                
    118020d4  TimerCounterGet                
    11802104  TimerReloadSet                 
    11802138  TimerReloadGet                 
    11802168  TimerCaptureGet                
    11802194  TimerCompareSet                
    118021b8  TimerCompareGet                
    118021d8  TimerIntEnable                 
    11802208  TimerIntDisable                
    11802234  TimerIntStatusGet              
    11802258  TimerIntStatusClear            
    11802294  TimerPreScalarCount34Set       
    118022e8  TimerPreScalarCount34Get       
    11802304  TimerDivDwnRatio34Set          
    11802350  TimerDivDwnRatio34Get          
    1180236c  TimerCaptureConfigure          
    118023cc  TimerReadResetEnable           
    11802408  TimerReadResetDisable          
    11802440  TimerInputGateEnable           
    11802478  TimerInputGateDisable          
    118024b0  TimerPulseWidthSet             
    11802514  TimerClockModeSet              
    11802550  TimerPulseModeSet              
    1180258c  TimerOUTStatusGet              
    118025bc  TimerInvertINEnable            
    118025f4  TimerInvertINDisable           
    11802630  TimerInvertOUTEnable           
    1180266c  TimerInvertOUTDisable          
    118026c0  main                           
    11802750  PSCInit                        
    11802784  GPIOBankPinMuxSet              
    118027c0  GPIOBankPinInit                
    118028ac  TimerInit                      
    1180290c  TimerInterruptInit             
    1180294c  InterruptInit                  
    11802960  TimerIsr                       
    11802a04  UARTInit                       
    11802a4c  UARTPuts                       
    11802b0c  HexToString_32                 
    11802c30  HexToString_8                  
    11802cc0  IntDSPINTCInit                 
    11802d30  IntRegister                    
    11802d54  IntUnRegister                  
    11802d7c  IntEventMap                    
    11802e04  IntEventSet                    
    11802e38  IntEventClear                  
    11802e70  IntEventCombineInit            
    11802f74  IntEventCombineAdd             
    11802fc8  IntEventCombineRemove          
    11803018  IntEventCombineRegister        
    11803040  IntEnable                      
    11803070  IntDisable                     
    118030a4  IntReset                       
    118030b8  IntGlobalEnable                
    118030cc  IntGlobalDisable               
    118030e0  IntGlobalRestore               
    118030f8  ExcGlobalEnable                
    11803118  ExcCombineAdd                  
    11803160  ExcCombineRemove               
    118032a0  GPIODirModeSet                 
    11803338  GPIODirModeGet                 
    11803398  GPIOPinWrite                   
    11803418  GPIOPinRead                    
    11803478  GPIOIntTypeSet                 
    118035e4  GPIOIntTypeGet                 
    1180366c  GPIOPinIntStatus               
    118036cc  GPIOPinIntClear                
    11803714  GPIOBankIntEnable              
    11803744  GPIOBankIntDisable             
    11803770  GPIOBankPinsWrite              
    11803820  UARTConfigSetExpClk            
    118038b4  UARTConfigGetExpClk            
    11803948  UARTFIFOLevelSet               
    1180396c  UARTDMAEnable                  
    1180398c  UARTDMADisable                 
    118039ac  UARTParityModeSet              
    118039f4  UARTParityModeGet              
    11803a18  UARTEnable                     
    11803a34  UARTDisable                    
    11803a60  UARTFIFOEnable                 
    11803a74  UARTFIFODisable                
    11803a8c  UARTSpaceAvail                 
    11803ab8  UARTCharsAvail                 
    11803ae8  UARTRxErrorGet                 
    11803b08  UARTCharPutNonBlocking         
    11803b48  UARTCharGetNonBlocking         
    11803b74  UARTCharGet                    
    11803bb0  UARTCharPut                    
    11803c08  UARTIntEnable                  
    11803c30  UARTIntDisable                 
    11803c58  UARTIntStatus                  
    11803c84  UARTBreakCtl                   
    11803cb8  UARTModemControlSet            
    11803d10  UARTModemControlClear          
    11803d44  UARTModemControlGet            
    11803d64  UARTModemStatusGet             
    11803da0  GPIOBank0Pin0PinMuxSetup       
    11803de0  GPIOBank0Pin1PinMuxSetup       
    11803e2c  GPIOBank0Pin2PinMuxSetup       
    11803e74  GPIOBank0Pin5PinMuxSetup       
    11803ec0  GPIOBank0Pin6PinMuxSetup       
    11803f08  GPIOBank6Pin1PinMuxSetup       
    11803f50  GPIOBank6Pin12PinMuxSetup      
    11803fa0  GPIOBank6Pin13PinMuxSetup      
    11803fe8  GPIOBank0Pin12PinMuxSetup      
    11804030  GPIOBank0Pin13PinMuxSetup      
    11804074  GPIOBank0Pin14PinMuxSetup      
    118040c0  GPIOBank0Pin15PinMuxSetup      
    11804100  GPIOBank1Pin12PinMuxSetup      
    1180414c  GPIOBank8Pin1PinMuxSetup       
    1180418c  GPIOBank1Pin7PinMuxSetup       
    118041e0  UARTPinMuxSetup                
    11804380  _args_main                     
    118043c0  _system_post_cinit             
    118043e0  _system_pre_init               
    11804400  _intcVectorTable               
    11804600  PSCModuleControl               
    11804840  exit                           
    11804920  memset                         
    11804a00  __TI_auto_init_nobinit_nopinit 
    11804ac0  __c6xabi_divu                  
    11804ac0  __divu                         
    11804b80  __TI_tls_init                  
    11804c40  memcpy                         
    11804ce0  C$$EXIT                        
    11804ce0  abort                          
    11804d00  __TI_decompress_none           
    11804d20  __TI_decompress_rle24          
    11804d40  _stack                         
    11805540  __TI_STACK_END                 
    118057c0  hex_table                      
    118057f4  __TI_cleanup_ptr               
    118057f8  __TI_dtors_ptr                 
    118057fc  __TI_enable_exit_profile_output
    11805800  Flag                           
    11805800  __TI_STATIC_BASE               
    11805820  __TI_Handler_Table_Base        
    11805828  __TI_Handler_Table_Limit       
    11805830  __TI_CINIT_Base                
    11805848  __TI_CINIT_Limit               
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    ffffffff  __binit__                      
    ffffffff  __c_args__                     
    ffffffff  binit                          
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    
    [172 symbols]
    

  • Do you mean wait 144s, it automatically run to the menu again?

    seems warm reset, do you enabled watchdog?

  • Yes, UBL automatically run again after 144s

     I didn`t  enable watchdog, if disable watchdog is  default.  

  • There is very little chance that don't need to wait for 144s, but still UBL run twice.

  • #1. The jump code is almost same as TI UBL as below, so it should be okay.

    2548.dspubl-03.20.00.14.tar.gz

    2548.armubl-03.20.00.14.tar.gz

    /************************************************************
    * Local Function Declarations                               *
    ************************************************************/
    
    static Uint32 LOCAL_boot(void);
    static void (*APPEntry)(void);
    
    
    /************************************************************
    * Local Variable Definitions                                *
    ************************************************************/
    
    /************************************************************
    * Global Variable Definitions                               *
    ************************************************************/
    
    extern Uint32 gEntryPoint;
    
    extern DEVICE_OperatingPoint gDeviceOpPoint;
    /************************************************************
    * Global Function Definitions                               *
    ************************************************************/
    
    // Main entry point
    void main(void)
    {
    
      // First thing, put DSP in reset
      DEVICE_disable_DSP();
    
      // Call to real boot function code
      LOCAL_boot();
    
      // Jump to entry point
      DEBUG0_printString("\r\nJumping to entry point at ");
      DEBUG1_printHexInt(gEntryPoint);
      DEBUG0_printString(".\r\n");
      APPEntry = (void (*)(void)) gEntryPoint;
      (*APPEntry)();
    
    }

    #2. And 144s is long time for program running.  suggest check from system view, for example observe RESETOUT pin, if there pulse between jump and execute again.

    Add code to read RSTYPE register to see if there is warm reset occurred. 

  • XWRST is always 0x00000001, mean Power on reset.

    I print it like this:    

    uint32_t RSTYPE = PLL0->RSTYPE;

    print(RSTYPE);


  • I'll add one more detail, in the middle of the 144 seconds, I send a jump command, and when it reboots, it jumps directly to the app.
    It looks like, for 144 seconds, the UART is working and saved the jump command.

  • Are you using interrupt mode or polling mode to service the UART?

  • I used polling mode, queries the interrupt flag of the UART.

    No global interrupt enabled.

  • The SHDSPL2RAM  start from 0x11800000 is same physical address of DSPL2RAM 0x00800000, change to 0x00800000 other than 0x11800000 address range for DSP core view. 

    and try to add more printf in app to locate where run to abnormal?

  • Do you mean to map App start address from 0x0080000? 

  • Yes, change cmd file, actually from DSP CPU view, the L2 SRAM start from 0x00800000. not 0x11800000. maybe no difference, worth a try, clean and correct the cmd file is always right thing.

  • I only change App start address from 0x11800000 to 0x00800000, 

    the issue is still there. I don`t know what is it doing in the 144 second.

    ******************************************************************************
                   TMS320C6x Linker PC v8.3.12                     
    ******************************************************************************
    >> Linked Fri Aug 16 16:47:53 2024
    
    OUTPUT FILE NAME:   <TIMER.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 00800000
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      DSPL2ROM              00700000   00100000  00000000  00100000  RWIX
      RAM4CINT00            00800000   00000400  00000080  00000380  RWIX
      DSPL2RAM              00800400   0003fc00  00005441  0003a7bf  RWIX
      DSPL1PRAM             00e00000   00008000  00000000  00008000  RWIX
      DSPL1DRAM             00f00000   00008000  00000000  00008000  RWIX
      SHDSPL2ROM            11700000   00100000  00000000  00100000  RWIX
      SHDSPL2RAM            11800000   00040000  00000000  00040000  RWIX
      SHDSPL1PRAM           11e00000   00008000  00000000  00008000  RWIX
      SHDSPL1DRAM           11f00000   00008000  00000000  00008000  RWIX
      EMIFACS0              40000000   20000000  00000000  20000000  RWIX
      EMIFACS2              60000000   02000000  00000000  02000000  RWIX
      EMIFACS3              62000000   02000000  00000000  02000000  RWIX
      EMIFACS4              64000000   02000000  00000000  02000000  RWIX
      EMIFACS5              66000000   02000000  00000000  02000000  RWIX
      SHRAM                 80000000   00020000  00000000  00020000  RWIX
      DDR2                  c0000000   20000000  00000000  20000000  RWIX
    
    
    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    00800000    00800000    00000080   00000080    r-x
      00800000    00800000    00000080   00000080    r-x .boot
    00800400    00800400    00004940   00004940    r-x
      00800400    00800400    00004940   00004940    r-x .text
    00804d40    00804d40    00000a40   00000000    rw-
      00804d40    00804d40    00000800   00000000    rw- .stack
      00805540    00805540    00000240   00000000    rw- .far
    00805780    00805780    00000074   00000074    r--
      00805780    00805780    00000064   00000064    r-- .const
      008057e4    008057e4    00000010   00000010    r-- .switch
    008057f4    008057f4    0000000d   00000000    rw-
      008057f4    008057f4    0000000c   00000000    rw- .fardata
      00805800    00805800    00000001   00000000    rw- .neardata
    00805808    00805808    00000040   00000040    r--
      00805808    00805808    00000040   00000040    r-- .cinit
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .text      0    00800400    00004940     
                      00800400    00001aa0     system_config.lib : interrupt.obj (.text:retain)
                      00801ea0    00000820     drivers.lib : timer.obj (.text)
                      008026c0    00000600     main.obj (.text)
                      00802cc0    000005e0     system_config.lib : interrupt.obj (.text)
                      008032a0    00000580     drivers.lib : gpio.obj (.text)
                      00803820    00000580                 : uart.obj (.text)
                      00803da0    00000440     GPIO.obj (.text)
                      008041e0    000001a0     UART.obj (.text)
                      00804380    00000040     rts6740_elf.lib : args_main.c.obj (.text:_args_main)
                      008043c0    00000020                     : startup.c.obj (.text:_system_post_cinit)
                      008043e0    00000020                     : pre_init.c.obj (.text:_system_pre_init)
                      00804400    00000200     system_config.lib : intvecs.obj (.text)
                      00804600    00000140     drivers.lib : psc.obj (.text)
                      00804740    00000100     rts6740_elf.lib : copy_decompress_rle.c.obj (.text:__TI_decompress_rle_core)
                      00804840    000000e0                     : exit.c.obj (.text:exit)
                      00804920    000000e0                     : memset.c.obj (.text:memset)
                      00804a00    000000c0                     : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit:__TI_auto_init_nobinit_nopinit)
                      00804ac0    000000c0                     : divu.asm.obj (.text:__divu)
                      00804b80    000000c0                     : tls.c.obj (.text:tls:init:__TI_tls_init)
                      00804c40    000000a0                     : memcpy64.asm.obj (.text:memcpy)
                      00804ce0    00000020                     : exit.c.obj (.text:abort)
                      00804d00    00000020                     : copy_decompress_none.c.obj (.text:decompress:none:__TI_decompress_none)
                      00804d20    00000020                     : copy_decompress_rle.c.obj (.text:decompress:rle24:__TI_decompress_rle24)
    
    .stack     0    00804d40    00000800     UNINITIALIZED
                      00804d40    00000008     rts6740_elf.lib : boot.c.obj (.stack)
                      00804d48    000007f8     --HOLE--
    
    .const     0    00805780    00000064     
                      00805780    0000003c     main.obj (.const:.string)
                      008057bc    00000004     --HOLE-- [fill = 0]
                      008057c0    00000010     main.obj (.const:.string:hex_table)
                      008057d0    0000000b     main.obj (.const:.string:$P$T0$1)
                      008057db    00000005     --HOLE-- [fill = 0]
                      008057e0    00000004     main.obj (.const:.string:$P$T1$2)
    
    .switch    0    008057e4    00000010     
                      008057e4    00000010     drivers.lib : gpio.obj (.switch:GPIOIntTypeSet)
    
    .far       0    00805540    00000240     UNINITIALIZED
                      00805540    00000240     system_config.lib : interrupt.obj (.far)
    
    .fardata   0    008057f4    0000000c     UNINITIALIZED
                      008057f4    0000000c     rts6740_elf.lib : exit.c.obj (.fardata)
    
    .cinit     0    00805808    00000040     
                      00805808    0000000d     (.cinit..fardata.load) [load image, compression = rle]
                      00805815    0000000b     (.cinit..far.load) [load image, compression = rle]
                      00805820    00000008     (__TI_handler_table)
                      00805828    00000007     (.cinit..neardata.load) [load image, compression = rle]
                      0080582f    00000001     --HOLE-- [fill = 0]
                      00805830    00000018     (__TI_cinit_table)
    
    .init_array 
    *          0    00800400    00000000     UNINITIALIZED
    
    .neardata 
    *          0    00805800    00000001     UNINITIALIZED
                      00805800    00000001     main.obj (.neardata)
    
    .boot      0    00800000    00000080     
                      00800000    00000080     rts6740_elf.lib : boot.c.obj (.text:_c_int00)
    
    MODULE SUMMARY
    
           Module                       code    ro data   rw data
           ------                       ----    -------   -------
        .\
           main.obj                     1536    91        1      
        +--+----------------------------+-------+---------+---------+
           Total:                       1536    91        1      
                                                                 
        .\Platform\
           GPIO.obj                     1088    0         0      
           UART.obj                     416     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1504    0         0      
                                                                 
        ../library/drivers.lib
           timer.obj                    2080    0         0      
           gpio.obj                     1408    16        0      
           uart.obj                     1408    0         0      
           psc.obj                      320     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       5216    16        0      
                                                                 
        ../library/system_config.lib
           interrupt.obj                8320    0         576    
           intvecs.obj                  512     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       8832    0         576    
                                                                 
        C:/ti/ccs1271/ccs/tools/compiler/ti-cgt-c6000_8.3.12/lib/rts6740_elf.lib
           copy_decompress_rle.c.obj    288     0         0      
           exit.c.obj                   256     0         12     
           memset.c.obj                 224     0         0      
           autoinit.c.obj               192     0         0      
           tls.c.obj                    192     0         0      
           memcpy64.asm.obj             160     0         0      
           boot.c.obj                   128     0         0      
           args_main.c.obj              64      0         0      
           copy_decompress_none.c.obj   32      0         0      
           pre_init.c.obj               32      0         0      
           startup.c.obj                32      0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       1600    0         12     
                                                                 
        C:\ti\ccs1271\ccs\tools\compiler\ti-cgt-c6000_8.3.12\lib\rts6740_elf.lib
           divu.asm.obj                 192     0         0      
        +--+----------------------------+-------+---------+---------+
           Total:                       192     0         0      
                                                                 
           Stack:                       0       0         2048   
           Linker Generated:            0       63        0      
        +--+----------------------------+-------+---------+---------+
           Grand Total:                 18880   170       2637   
    
    
    LINKER GENERATED COPY TABLES
    
    __TI_cinit_table @ 00805830 records: 3, size/record: 8, table size: 24
    	.fardata: load addr=00805808, load size=0000000d bytes, run addr=008057f4, run size=0000000c bytes, compression=rle
    	.far: load addr=00805815, load size=0000000b bytes, run addr=00805540, run size=00000240 bytes, compression=rle
    	.neardata: load addr=00805828, load size=00000007 bytes, run addr=00805800, run size=00000001 bytes, compression=rle
    
    
    LINKER GENERATED HANDLER TABLE
    
    __TI_handler_table @ 00805820 records: 2, size/record: 4, table size: 8
    	index: 0, handler: __TI_decompress_rle24
    	index: 1, handler: __TI_decompress_none
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    address   name                           
    -------   ----                           
    00804ce0  C$$EXIT                        
    00803118  ExcCombineAdd                  
    00803160  ExcCombineRemove               
    008030f8  ExcGlobalEnable                
    00805800  Flag                           
    00803da0  GPIOBank0Pin0PinMuxSetup       
    00803fe8  GPIOBank0Pin12PinMuxSetup      
    00804030  GPIOBank0Pin13PinMuxSetup      
    00804074  GPIOBank0Pin14PinMuxSetup      
    008040c0  GPIOBank0Pin15PinMuxSetup      
    00803de0  GPIOBank0Pin1PinMuxSetup       
    00803e2c  GPIOBank0Pin2PinMuxSetup       
    00803e74  GPIOBank0Pin5PinMuxSetup       
    00803ec0  GPIOBank0Pin6PinMuxSetup       
    00804100  GPIOBank1Pin12PinMuxSetup      
    0080418c  GPIOBank1Pin7PinMuxSetup       
    00803f50  GPIOBank6Pin12PinMuxSetup      
    00803fa0  GPIOBank6Pin13PinMuxSetup      
    00803f08  GPIOBank6Pin1PinMuxSetup       
    0080414c  GPIOBank8Pin1PinMuxSetup       
    00803744  GPIOBankIntDisable             
    00803714  GPIOBankIntEnable              
    008027b8  GPIOBankPinInit                
    00802780  GPIOBankPinMuxSet              
    00803770  GPIOBankPinsWrite              
    00803338  GPIODirModeGet                 
    008032a0  GPIODirModeSet                 
    008035e4  GPIOIntTypeGet                 
    00803478  GPIOIntTypeSet                 
    008036cc  GPIOPinIntClear                
    0080366c  GPIOPinIntStatus               
    00803418  GPIOPinRead                    
    00803398  GPIOPinWrite                   
    00802b0c  HexToString_32                 
    00802c30  HexToString_8                  
    00802cc0  IntDSPINTCInit                 
    00803070  IntDisable                     
    00803040  IntEnable                      
    00802e38  IntEventClear                  
    00802f74  IntEventCombineAdd             
    00802e70  IntEventCombineInit            
    00803018  IntEventCombineRegister        
    00802fc8  IntEventCombineRemove          
    00802d7c  IntEventMap                    
    00802e04  IntEventSet                    
    008030cc  IntGlobalDisable               
    008030b8  IntGlobalEnable                
    008030e0  IntGlobalRestore               
    00802d30  IntRegister                    
    008030a4  IntReset                       
    00802d54  IntUnRegister                  
    0080294c  InterruptInit                  
    0080274c  PSCInit                        
    00804600  PSCModuleControl               
    0080236c  TimerCaptureConfigure          
    00802168  TimerCaptureGet                
    00802514  TimerClockModeSet              
    008021b8  TimerCompareGet                
    00802194  TimerCompareSet                
    00801f34  TimerConfigure                 
    008020d4  TimerCounterGet                
    008020a0  TimerCounterSet                
    00801efc  TimerDisable                   
    00802350  TimerDivDwnRatio34Get          
    00802304  TimerDivDwnRatio34Set          
    00801ea0  TimerEnable                    
    008028ac  TimerInit                      
    00802478  TimerInputGateDisable          
    00802440  TimerInputGateEnable           
    00802208  TimerIntDisable                
    008021d8  TimerIntEnable                 
    00802258  TimerIntStatusClear            
    00802234  TimerIntStatusGet              
    0080290c  TimerInterruptInit             
    008025f4  TimerInvertINDisable           
    008025bc  TimerInvertINEnable            
    0080266c  TimerInvertOUTDisable          
    00802630  TimerInvertOUTEnable           
    00802960  TimerIsr                       
    0080258c  TimerOUTStatusGet              
    00802070  TimerPeriodGet                 
    00802034  TimerPeriodSet                 
    008022e8  TimerPreScalarCount34Get       
    00802294  TimerPreScalarCount34Set       
    00802550  TimerPulseModeSet              
    008024b0  TimerPulseWidthSet             
    00802408  TimerReadResetDisable          
    008023cc  TimerReadResetEnable           
    00802138  TimerReloadGet                 
    00802104  TimerReloadSet                 
    00801fac  TimerWatchdogActivate          
    00801fec  TimerWatchdogReactivate        
    00803c84  UARTBreakCtl                   
    00803b74  UARTCharGet                    
    00803b48  UARTCharGetNonBlocking         
    00803bb0  UARTCharPut                    
    00803b08  UARTCharPutNonBlocking         
    00803ab8  UARTCharsAvail                 
    008038b4  UARTConfigGetExpClk            
    00803820  UARTConfigSetExpClk            
    0080398c  UARTDMADisable                 
    0080396c  UARTDMAEnable                  
    00803a34  UARTDisable                    
    00803a18  UARTEnable                     
    00803a74  UARTFIFODisable                
    00803a60  UARTFIFOEnable                 
    00803948  UARTFIFOLevelSet               
    00802a04  UARTInit                       
    00803c30  UARTIntDisable                 
    00803c08  UARTIntEnable                  
    00803c58  UARTIntStatus                  
    00803d10  UARTModemControlClear          
    00803d44  UARTModemControlGet            
    00803cb8  UARTModemControlSet            
    00803d64  UARTModemStatusGet             
    008039f4  UARTParityModeGet              
    008039ac  UARTParityModeSet              
    008041e0  UARTPinMuxSetup                
    00802a4c  UARTPuts                       
    00803ae8  UARTRxErrorGet                 
    00803a8c  UARTSpaceAvail                 
    00805830  __TI_CINIT_Base                
    00805848  __TI_CINIT_Limit               
    00805820  __TI_Handler_Table_Base        
    00805828  __TI_Handler_Table_Limit       
    00805540  __TI_STACK_END                 
    00000800  __TI_STACK_SIZE                
    00805800  __TI_STATIC_BASE               
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    00804a00  __TI_auto_init_nobinit_nopinit 
    008057f4  __TI_cleanup_ptr               
    00804d00  __TI_decompress_none           
    00804d20  __TI_decompress_rle24          
    008057f8  __TI_dtors_ptr                 
    008057fc  __TI_enable_exit_profile_output
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    00804b80  __TI_tls_init                  
    ffffffff  __binit__                      
    00804ac0  __c6xabi_divu                  
    ffffffff  __c_args__                     
    00804ac0  __divu                         
    00804380  _args_main                     
    008013f8  _c674x_mask_int10_isr          
    008015c0  _c674x_mask_int11_isr          
    00801784  _c674x_mask_int12_isr          
    00801948  _c674x_mask_int13_isr          
    00801b10  _c674x_mask_int14_isr          
    00801cd8  _c674x_mask_int15_isr          
    00800950  _c674x_mask_int4_isr           
    00800b18  _c674x_mask_int5_isr           
    00800ce0  _c674x_mask_int6_isr           
    00800ea4  _c674x_mask_int7_isr           
    00801068  _c674x_mask_int8_isr           
    00801230  _c674x_mask_int9_isr           
    00800400  _c674x_nmi_isr                 
    008005c4  _c674x_rsvd_int2_isr           
    00800788  _c674x_rsvd_int3_isr           
    00800000  _c_int00                       
    00804400  _intcVectorTable               
    00804d40  _stack                         
    008043c0  _system_post_cinit             
    008043e0  _system_pre_init               
    00804ce0  abort                          
    ffffffff  binit                          
    00804840  exit                           
    008057c0  hex_table                      
    008026c0  main                           
    00804c40  memcpy                         
    00804920  memset                         
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    address   name                           
    -------   ----                           
    00000800  __TI_STACK_SIZE                
    00800000  _c_int00                       
    00800400  _c674x_nmi_isr                 
    008005c4  _c674x_rsvd_int2_isr           
    00800788  _c674x_rsvd_int3_isr           
    00800950  _c674x_mask_int4_isr           
    00800b18  _c674x_mask_int5_isr           
    00800ce0  _c674x_mask_int6_isr           
    00800ea4  _c674x_mask_int7_isr           
    00801068  _c674x_mask_int8_isr           
    00801230  _c674x_mask_int9_isr           
    008013f8  _c674x_mask_int10_isr          
    008015c0  _c674x_mask_int11_isr          
    00801784  _c674x_mask_int12_isr          
    00801948  _c674x_mask_int13_isr          
    00801b10  _c674x_mask_int14_isr          
    00801cd8  _c674x_mask_int15_isr          
    00801ea0  TimerEnable                    
    00801efc  TimerDisable                   
    00801f34  TimerConfigure                 
    00801fac  TimerWatchdogActivate          
    00801fec  TimerWatchdogReactivate        
    00802034  TimerPeriodSet                 
    00802070  TimerPeriodGet                 
    008020a0  TimerCounterSet                
    008020d4  TimerCounterGet                
    00802104  TimerReloadSet                 
    00802138  TimerReloadGet                 
    00802168  TimerCaptureGet                
    00802194  TimerCompareSet                
    008021b8  TimerCompareGet                
    008021d8  TimerIntEnable                 
    00802208  TimerIntDisable                
    00802234  TimerIntStatusGet              
    00802258  TimerIntStatusClear            
    00802294  TimerPreScalarCount34Set       
    008022e8  TimerPreScalarCount34Get       
    00802304  TimerDivDwnRatio34Set          
    00802350  TimerDivDwnRatio34Get          
    0080236c  TimerCaptureConfigure          
    008023cc  TimerReadResetEnable           
    00802408  TimerReadResetDisable          
    00802440  TimerInputGateEnable           
    00802478  TimerInputGateDisable          
    008024b0  TimerPulseWidthSet             
    00802514  TimerClockModeSet              
    00802550  TimerPulseModeSet              
    0080258c  TimerOUTStatusGet              
    008025bc  TimerInvertINEnable            
    008025f4  TimerInvertINDisable           
    00802630  TimerInvertOUTEnable           
    0080266c  TimerInvertOUTDisable          
    008026c0  main                           
    0080274c  PSCInit                        
    00802780  GPIOBankPinMuxSet              
    008027b8  GPIOBankPinInit                
    008028ac  TimerInit                      
    0080290c  TimerInterruptInit             
    0080294c  InterruptInit                  
    00802960  TimerIsr                       
    00802a04  UARTInit                       
    00802a4c  UARTPuts                       
    00802b0c  HexToString_32                 
    00802c30  HexToString_8                  
    00802cc0  IntDSPINTCInit                 
    00802d30  IntRegister                    
    00802d54  IntUnRegister                  
    00802d7c  IntEventMap                    
    00802e04  IntEventSet                    
    00802e38  IntEventClear                  
    00802e70  IntEventCombineInit            
    00802f74  IntEventCombineAdd             
    00802fc8  IntEventCombineRemove          
    00803018  IntEventCombineRegister        
    00803040  IntEnable                      
    00803070  IntDisable                     
    008030a4  IntReset                       
    008030b8  IntGlobalEnable                
    008030cc  IntGlobalDisable               
    008030e0  IntGlobalRestore               
    008030f8  ExcGlobalEnable                
    00803118  ExcCombineAdd                  
    00803160  ExcCombineRemove               
    008032a0  GPIODirModeSet                 
    00803338  GPIODirModeGet                 
    00803398  GPIOPinWrite                   
    00803418  GPIOPinRead                    
    00803478  GPIOIntTypeSet                 
    008035e4  GPIOIntTypeGet                 
    0080366c  GPIOPinIntStatus               
    008036cc  GPIOPinIntClear                
    00803714  GPIOBankIntEnable              
    00803744  GPIOBankIntDisable             
    00803770  GPIOBankPinsWrite              
    00803820  UARTConfigSetExpClk            
    008038b4  UARTConfigGetExpClk            
    00803948  UARTFIFOLevelSet               
    0080396c  UARTDMAEnable                  
    0080398c  UARTDMADisable                 
    008039ac  UARTParityModeSet              
    008039f4  UARTParityModeGet              
    00803a18  UARTEnable                     
    00803a34  UARTDisable                    
    00803a60  UARTFIFOEnable                 
    00803a74  UARTFIFODisable                
    00803a8c  UARTSpaceAvail                 
    00803ab8  UARTCharsAvail                 
    00803ae8  UARTRxErrorGet                 
    00803b08  UARTCharPutNonBlocking         
    00803b48  UARTCharGetNonBlocking         
    00803b74  UARTCharGet                    
    00803bb0  UARTCharPut                    
    00803c08  UARTIntEnable                  
    00803c30  UARTIntDisable                 
    00803c58  UARTIntStatus                  
    00803c84  UARTBreakCtl                   
    00803cb8  UARTModemControlSet            
    00803d10  UARTModemControlClear          
    00803d44  UARTModemControlGet            
    00803d64  UARTModemStatusGet             
    00803da0  GPIOBank0Pin0PinMuxSetup       
    00803de0  GPIOBank0Pin1PinMuxSetup       
    00803e2c  GPIOBank0Pin2PinMuxSetup       
    00803e74  GPIOBank0Pin5PinMuxSetup       
    00803ec0  GPIOBank0Pin6PinMuxSetup       
    00803f08  GPIOBank6Pin1PinMuxSetup       
    00803f50  GPIOBank6Pin12PinMuxSetup      
    00803fa0  GPIOBank6Pin13PinMuxSetup      
    00803fe8  GPIOBank0Pin12PinMuxSetup      
    00804030  GPIOBank0Pin13PinMuxSetup      
    00804074  GPIOBank0Pin14PinMuxSetup      
    008040c0  GPIOBank0Pin15PinMuxSetup      
    00804100  GPIOBank1Pin12PinMuxSetup      
    0080414c  GPIOBank8Pin1PinMuxSetup       
    0080418c  GPIOBank1Pin7PinMuxSetup       
    008041e0  UARTPinMuxSetup                
    00804380  _args_main                     
    008043c0  _system_post_cinit             
    008043e0  _system_pre_init               
    00804400  _intcVectorTable               
    00804600  PSCModuleControl               
    00804840  exit                           
    00804920  memset                         
    00804a00  __TI_auto_init_nobinit_nopinit 
    00804ac0  __c6xabi_divu                  
    00804ac0  __divu                         
    00804b80  __TI_tls_init                  
    00804c40  memcpy                         
    00804ce0  C$$EXIT                        
    00804ce0  abort                          
    00804d00  __TI_decompress_none           
    00804d20  __TI_decompress_rle24          
    00804d40  _stack                         
    00805540  __TI_STACK_END                 
    008057c0  hex_table                      
    008057f4  __TI_cleanup_ptr               
    008057f8  __TI_dtors_ptr                 
    008057fc  __TI_enable_exit_profile_output
    00805800  Flag                           
    00805800  __TI_STATIC_BASE               
    00805820  __TI_Handler_Table_Base        
    00805828  __TI_Handler_Table_Limit       
    00805830  __TI_CINIT_Base                
    00805848  __TI_CINIT_Limit               
    ffffffff  __TI_pprof_out_hndl            
    ffffffff  __TI_prof_data_size            
    ffffffff  __TI_prof_data_start           
    ffffffff  __binit__                      
    ffffffff  __c_args__                     
    ffffffff  binit                          
    UNDEFED   __TI_TLS_INIT_Base             
    UNDEFED   __TI_TLS_INIT_Limit            
    
    [172 symbols]
    

  • Now, I test it again, and it doesn`t need 144s to wait.

    But  UBL still need to run twice before jump to App.

    The only different is address 0x1180000 and 0x0080000 .

  • Upload the .cmd file of UBL and App to take a look.

  • UBL .CMD file

    /****************************************************************************/
    /*  C6748.cmd                                                               */
    /*  Copyright (c) 2010 Texas Instruments Incorporated                       */
    /*  Author: Rafael de Souza                                                 */
    /*                                                                          */
    /*    Description: This file is a sample linker command file that can be    */
    /*                 used for linking programs built with the C compiler and  */
    /*                 running the resulting .out file on a C6748               */
    /*                 device.  Use it as a guideline.  You will want to        */
    /*                 change the memory layout to match your specific C6xxx    */
    /*                 target system.  You may want to change the allocation    */
    /*                 scheme according to the size of your program.            */
    /*                                                                          */
    /****************************************************************************/
    
    MEMORY
    {
        DSPL2ROM     o = 0x00700000  l = 0x00100000   /* 1MB L2 Internal ROM */
        DSPL2RAM     o = 0x00800000  l = 0x00040000   /* 256kB L2 Internal RAM */
        DSPL1PRAM    o = 0x00E00000  l = 0x00008000   /* 32kB L1 Internal Program RAM */
        DSPL1DRAM    o = 0x00F00000  l = 0x00008000   /* 32kB L1 Internal Data RAM */
        SHDSPL2ROM   o = 0x11700000  l = 0x00100000   /* 1MB L2 Shared Internal ROM */
        SHDSPL2RAM   o = 0x11800000  l = 0x00040000   /* 256kB L2 Shared Internal RAM */
        SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000   /* 32kB L1 Shared Internal Program RAM */
        SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000   /* 32kB L1 Shared Internal Data RAM */
        EMIFACS0     o = 0x40000000  l = 0x20000000   /* 512MB SDRAM Data (CS0) */
        EMIFACS2     o = 0x60000000  l = 0x02000000   /* 32MB Async Data (CS2) */
        EMIFACS3     o = 0x62000000  l = 0x02000000   /* 32MB Async Data (CS3) */
        EMIFACS4     o = 0x64000000  l = 0x02000000   /* 32MB Async Data (CS4) */
        EMIFACS5     o = 0x66000000  l = 0x02000000   /* 32MB Async Data (CS5) */
        SHRAM        o = 0x80000000  l = 0x00020000   /* 128kB Shared RAM */
        DDR2         o = 0xC0000000  l = 0x20000000   /* 512MB DDR2 Data */
    }                                              
                                                   
    SECTIONS                                       
    {                                              
        .text          >  SHRAM                    
        .stack         >  SHRAM                    
        .bss           >  SHRAM                    
        .cio           >  SHRAM                    
        .const         >  SHRAM                    
        .data          >  SHRAM                    
        .switch        >  SHRAM                    
        .sysmem        >  SHRAM                    
        .far           >  SHRAM                    
        .args          >  SHRAM                    
        .ppinfo        >  SHRAM
        .ppdata        >  SHRAM
      
        /* COFF sections */
        .pinit         >  SHRAM
        .cinit         >  SHRAM
      
        /* EABI sections */
        .binit         >  SHRAM
        .init_array    >  SHRAM
        .neardata      >  SHRAM
        .fardata       >  SHRAM
        .rodata        >  SHRAM
        .c6xabi.exidx  >  SHRAM
        .c6xabi.extab  >  SHRAM
    }
    

    App .CMD file

    /****************************************************************************/
    /*  C6748.cmd                                                               */
    /*  Copyright (c) 2010 Texas Instruments Incorporated                       */
    /*  Author: Rafael de Souza                                                 */
    /*                                                                          */
    /*    Description: This file is a sample linker command file that can be    */
    /*                 used for linking programs built with the C compiler and  */
    /*                 running the resulting .out file on a C6748               */
    /*                 device.  Use it as a guideline.  You will want to        */
    /*                 change the memory layout to match your specific C6xxx    */
    /*                 target system.  You may want to change the allocation    */
    /*                 scheme according to the size of your program.            */
    /*                                                                          */
    /****************************************************************************/
    
    MEMORY
    {
        DSPL2ROM     o = 0x00700000  l = 0x00100000   /* 1MB L2 Internal ROM */
        RAM4CINT00   o = 0x00800000  l = 0x00000400   /* 1kB L2 Shared Internal RAM */
        DSPL2RAM     o = 0x00800400  l = 0x0003FC00   /* 255kB L2 Internal RAM */
        DSPL1PRAM    o = 0x00E00000  l = 0x00008000   /* 32kB L1 Internal Program RAM */
        DSPL1DRAM    o = 0x00F00000  l = 0x00008000   /* 32kB L1 Internal Data RAM */
        SHDSPL2ROM   o = 0x11700000  l = 0x00100000   /* 1MB L2 Shared Internal ROM */
        SHDSPL2RAM   o = 0x11800000  l = 0x00040000   /* 256kB L2 Shared Internal RAM */
        SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000   /* 32kB L1 Shared Internal Program RAM */
        SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000   /* 32kB L1 Shared Internal Data RAM */
        EMIFACS0     o = 0x40000000  l = 0x20000000   /* 512MB SDRAM Data (CS0) */
        EMIFACS2     o = 0x60000000  l = 0x02000000   /* 32MB Async Data (CS2) */
        EMIFACS3     o = 0x62000000  l = 0x02000000   /* 32MB Async Data (CS3) */
        EMIFACS4     o = 0x64000000  l = 0x02000000   /* 32MB Async Data (CS4) */
        EMIFACS5     o = 0x66000000  l = 0x02000000   /* 32MB Async Data (CS5) */
        SHRAM        o = 0x80000000  l = 0x00020000   /* 128kB Shared RAM */
        DDR2         o = 0xC0000000  l = 0x20000000   /* 512MB DDR2 Data */
    }                                              
                                                   
    SECTIONS                                       
    {                                              
        .text          >  DSPL2RAM
        .stack         >  DSPL2RAM
        .bss           >  DSPL2RAM
        .cio           >  DSPL2RAM
        .const         >  DSPL2RAM
        .data          >  DSPL2RAM
        .switch        >  DSPL2RAM
        .sysmem        >  DSPL2RAM
        .far           >  DSPL2RAM
        .args          >  DSPL2RAM
        .ppinfo        >  DSPL2RAM
        .ppdata        >  DSPL2RAM
      
        /* COFF sections */
        .pinit         >  DSPL2RAM
        .cinit         >  DSPL2RAM
      
        /* EABI sections */
        .binit         >  DSPL2RAM
        .init_array    >  DSPL2RAM
        .neardata      >  DSPL2RAM
        .fardata       >  DSPL2RAM
        .rodata        >  DSPL2RAM
        .c6xabi.exidx  >  DSPL2RAM
        .c6xabi.extab  >  DSPL2RAM
    
        .boot > RAM4CINT00
    	{
        	-l rts6740_elf.lib<boot.c.obj>(.text)
    	}
    }
    

  • Remove useless memory, cmd file should be more clear:

    ubl.cmd

    /****************************************************************************/
    /*  C6748.cmd                                                               */
    /*  Copyright (c) 2010 Texas Instruments Incorporated                       */
    /*  Author: Rafael de Souza                                                 */
    /*                                                                          */
    /*    Description: This file is a sample linker command file that can be    */
    /*                 used for linking programs built with the C compiler and  */
    /*                 running the resulting .out file on a C6748               */
    /*                 device.  Use it as a guideline.  You will want to        */
    /*                 change the memory layout to match your specific C6xxx    */
    /*                 target system.  You may want to change the allocation    */
    /*                 scheme according to the size of your program.            */
    /*                                                                          */
    /****************************************************************************/
    
    MEMORY
    {
        DSPL2RAM     o = 0x00800000  l = 0x00040000   /* 256kB L2 Internal RAM */
        SHRAM        o = 0x80000000  l = 0x00020000   /* 128kB Shared RAM */
    }                                              
                                                   
    SECTIONS                                       
    {                                              
        .text          >  SHRAM                    
        .stack         >  SHRAM                    
        .bss           >  SHRAM                    
        .cio           >  SHRAM                    
        .const         >  SHRAM                    
        .data          >  SHRAM                    
        .switch        >  SHRAM                    
        .sysmem        >  SHRAM                    
        .far           >  SHRAM                    
        .args          >  SHRAM                    
        .ppinfo        >  SHRAM
        .ppdata        >  SHRAM
      
        /* COFF sections */
        .pinit         >  SHRAM
        .cinit         >  SHRAM
      
        /* EABI sections */
        .binit         >  SHRAM
        .init_array    >  SHRAM
        .neardata      >  SHRAM
        .fardata       >  SHRAM
        .rodata        >  SHRAM
        .c6xabi.exidx  >  SHRAM
        .c6xabi.extab  >  SHRAM
    }

    app.cmd

    /****************************************************************************/
    /*  C6748.cmd                                                               */
    /*  Copyright (c) 2010 Texas Instruments Incorporated                       */
    /*  Author: Rafael de Souza                                                 */
    /*                                                                          */
    /*    Description: This file is a sample linker command file that can be    */
    /*                 used for linking programs built with the C compiler and  */
    /*                 running the resulting .out file on a C6748               */
    /*                 device.  Use it as a guideline.  You will want to        */
    /*                 change the memory layout to match your specific C6xxx    */
    /*                 target system.  You may want to change the allocation    */
    /*                 scheme according to the size of your program.            */
    /*                                                                          */
    /****************************************************************************/
    
    MEMORY
    {
    /*    
        RAM4CINT00   o = 0x00800000  l = 0x00000400   /* 1kB L2 Internal RAM */
    */
        DSPL2RAM     o = 0x00800000  l = 0x00040000   /* 255kB L2 Internal RAM */
        SHRAM        o = 0x80000000  l = 0x00020000   /* 128kB Shared RAM */
    }                                              
                                                   
    SECTIONS                                       
    {    
        .boot > 0x00800000
    	{
        	-l rts6740_elf.lib<boot.c.obj>(.text)
    	}
    /*    .text:_c_int00 load = 0x00800000 */
    /*    .boot          load = 0x00800000 */
        .text          >  DSPL2RAM
        .stack         >  DSPL2RAM
        .bss           >  DSPL2RAM
        .cio           >  DSPL2RAM
        .const         >  DSPL2RAM
        .data          >  DSPL2RAM
        .switch        >  DSPL2RAM
        .sysmem        >  DSPL2RAM
        .far           >  DSPL2RAM
        .args          >  DSPL2RAM
        .ppinfo        >  DSPL2RAM
        .ppdata        >  DSPL2RAM
      
        /* COFF sections */
        .pinit         >  DSPL2RAM
        .cinit         >  DSPL2RAM
      
        /* EABI sections */
        .binit         >  DSPL2RAM
        .init_array    >  DSPL2RAM
        .neardata      >  DSPL2RAM
        .fardata       >  DSPL2RAM
        .rodata        >  DSPL2RAM
        .c6xabi.exidx  >  DSPL2RAM
        .c6xabi.extab  >  DSPL2RAM
    
    /*
     .boot > RAM4CINT00
    	{
        	-l rts6740_elf.lib<boot.c.obj>(.text)
    	}
    */
    }

  • Yes, clear. 

    But, UBL still jump to App twice.

  • I am afraid the problem in your code logic, you can refer C678 starterware boot example. 

    www.ti.com/.../STARTERWARE-C6748

    For a trial, combine 2 and 3 in sequence. jump to app just after load from flash. 

    Just guess, maybe something wrong in case switch branch code.

  • explain the command.

    command 1: get App from UART and copy to SPI Flash.

    command 2: did not achieve.

    command 3: copy App from SPI Flash to RAM, and execute App.

    for "combine 2 and 3 in sequence", it`s command 3 ?

    the logic of command was implemented in some product, I think it`s reliable.

  • We did not see you code, can't comment on your description. 

    Did you look at the Starterware Boot example I mentioned above?

    /******************************************************************************
    **                     Global Variable Definitions
    *******************************************************************************/
    
    unsigned int entryPoint = 0;
    unsigned int DspEntryPoint = 0;
    
    
    /******************************************************************************
    **                     Global Function Definitions
    *******************************************************************************/
    /*
     * \brief This function initializes the system and copies the image. 
     *
     * \param  none
     *
     * \return none 
    */
    int main(void)
    {
        /* Configures PLL and DDR controller*/
        BlPlatformConfig();
    
        UARTPuts("StarterWare ", -1);
        UARTPuts(deviceType, -1);
        UARTPuts(" Boot Loader\n\r", -1);
    
        /* Copies application from non-volatile flash memory to RAM */
        ImageCopy();
    
        UARTPuts("Jumping to StarterWare Application...\r\n\n", -1);
    
        /* Do any post-copy config before leaving boot loader */
        BlPlatformConfigPostBoot();
    
        /* Giving control to the application */
        appEntry = (void (*)(void)) entryPoint;
    
        (*appEntry)( );
    
        return 0;
    }

    This example is referred by most users without any doubt.

    You can also test it on your board.

  • Yes, the example could work correctly,

    but I can`t find the reason for my issue. 

  • Thanks for your help, I resolved the issue by using the example. 

    Although I couldn't find what was wrong with my code.