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.

RTOS/CC3235MODSF: Bin size

Part Number: CC3235MODSF
Other Parts Discussed in Thread: CC3200, UNIFLASH,

Tool/software: TI-RTOS

Hi,

I'm getting a bin file of ~508K for a program using TIRTOS  on the CC3235MODSF. (Which gives a size too big error when uploaded to uniflash) whereas I'd expect something in the 100-200Ko based on the other programs I've written for cc3200 and cc3220.

I suppose it has to do with the cmd file which I took from the examples provided in the sdk.

Do you have any idea what could be causing this?

/*
 *  ======== CC3235SF_LAUNCHXL.cmd ========
 */

/*
 * The starting address of the application.  Normally the interrupt vectors
 * must be located at the beginning of the application.
 */
#define SRAM_BASE   0x20000000
#define FLASH_BASE  0x01000800

--stack_size=1024   /* C stack is also used for ISR stack */

HEAPSIZE = 0x8000;  /* Size of heap buffer used by HeapMem */

MEMORY
{
    /* Bootloader uses FLASH_HDR during initialization */
    FLASH_HDR (RX)  : origin = 0x01000000, length = 0x7FF      /* 2 KB */
    FLASH     (RX)  : origin = 0x01000800, length = 0x0FF800   /* 1022KB */
    SRAM      (RWX) : origin = 0x20000000, length = 0x00040000 /* 256KB */
}

/* Section allocation in memory */

SECTIONS
{
    .dbghdr     : > FLASH_HDR
    .text       : > FLASH
    .TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
    .const      : > FLASH
    .cinit      : > FLASH
    .pinit      : > FLASH
    .init_array : > FLASH

    .data       : > SRAM
    .bss        : > SRAM
    .sysmem     : > SRAM

    /* Heap buffer used by HeapMem */
    .priheap   : {
        __primary_heap_start__ = .;
        . += HEAPSIZE;
        __primary_heap_end__ = .;
    } > SRAM align 8

    .stack      : > SRAM(HIGH)
}

Thanks,

Cédric

  • Do you also have the .map file?  I am looking at the tcpecho example and the resources look like this:

    OUTPUT FILE NAME:   <tcpecho_CC3235SF_LAUNCHXL_tirtos_ccs.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 0100d295
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      FLASH_HDR             01000000   000007ff  00000000  000007ff  R  X
      FLASH                 01000800   000ff800  0000fdc8  000efa38  R  X
      SRAM                  20000000   00040000  0000a402  00035bfe  RW X

    Regards,

    Chris

  • Sure, here it is:

    OUTPUT FILE NAME:   <display_v2.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 01021319
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      FLASH_HDR             01000000   000007ff  00000000  000007ff  R  X
      FLASH                 01000800   000ff800  000256b5  000da14b  R  X
      SRAM                  20000000   00040000  00010264  0002fd9c  RW X



  • Any idea?

    I suppose the 496MB comes from the segment between flash and sram (0x20000000 - 0x1000800 = 520091648)

    But I'm not clear on how to change the configuration to avoid this to be initialized in the bin file.

    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    01000800    01000800    000256a8   000256a8    r-x
      01000800    01000800    00023d1a   00023d1a    r-x .text
      0102451c    0102451c    00001573   00001573    r-- .const
      01025a90    01025a90    00000418   00000418    r-- .cinit
    20000310    20000310    00001914   00000000    rw-
      20000310    20000310    00001914   00000000    rw- .data
    20004000    20004000    00008040   0000003c    r--
      20004000    20004000    0000003c   0000003c    r-- .resetVecs
      20004040    20004040    00008000   00000000    r-- .priheap
    2000c400    2000c400    00006208   00000000    rw-
      2000c400    2000c400    00006208   00000000    rw- .bss
    2003fc00    2003fc00    00000400   00000000    rw-
      2003fc00    2003fc00    00000400   00000000    rw- .stack

  • After some googling and playing arround I found that when forcing the resetVecs to be in Flash the bin size was ok.

    I added in Section:

        .resetVecs  : > FLASH_BASE

    I do not understand why my project requires a different cmd file than the example...