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.

Mapped memory address is difference between CCSv3 and CCSv5

Hello, 

My customer compile their project used by CCSv5. The project is also compiled on CCSv3.

Now they compare hex file of CCSv3 and v5, and memory address is difference like a following.

【CCSv3】0040 0000 ~ 0041 7FFF    (Address range 96KB)

【CCSv5】0000 0000 ~ 0001 BFFF    (Address range 112KB)

On hex file of CCSv5,  the address 0000 0200 to 0000 7200 is not located anything, and 0040 0000 offset is not there.

Do anyone know the reason and how to resolve it?

Compiler version is as below.

【CCSv3】Ver3.2.2

【CCSv5】Ver4.4 (C5500compiler)

I attached both hex file.

Compere of HEX file.xlsx

Regards,

Kengo Furuya

  • Based on what I see here, I suspect the linker command file is very different between the two projects.  Is that the case?

    Thanks and regards,

    -George

  • Build Option on CCSv3.xlsxGeorge,

    I attached build option setting on ccsv3. The hex55 scpc_hex.cmd file is set as Final build steps.

    In scpc_hex.cmd, memory address have 0x400000 offset.

    Customer would like to do the same setting on CCSv5. Could you tell me how to set on CCSv5?

    Regards,

    Kengo Furuya

  • You have shown the hex utility command file.  That is not what I am asking about.  I am asking about the linker command file.  This file is an input to the linker.  Among other things, it specifies the valid memory ranges in the system, and where to place sections of code and data in those memory ranges.  I suspect this file is very different between the two builds.  Is that the case?

    Thanks and regards,

    -George

  • Hi George,

    I attached linker command file of both v3 and v5. Please point out to have a offset the same with v3.

    v3.cmd.txt
    /*   Do *not* directly modify this file.  It was    */
    /*   generated by the Configuration Tool; any  */
    /*   changes risk being overwritten.                */
    
    /* INPUT SCPC.cdb */
    
    /* MODULE PARAMETERS */
    GBL_USERINITFXN = _FXN_F_nop;
    GBL_BIOS_BOOTFXN = GBL_F_biosbootfxn;
    
    MEM_SEGZERO = DARAM;
    MEM_MALLOCSEG = DARAM;
    
    CLK_TIMEFXN = CLK_F_getshtime;
    CLK_HOOKFXN = CLK_F_run;
    
    PRD_THOOKFXN = KNL_tick_stub;
    
    RTDX_DATAMEMSEG = DARAM;
    
    HST_DSMBUFSEG = DARAM;
    
    SWI_EHOOKFXN = GBL_NULL;
    SWI_IHOOKFXN = GBL_NULL;
    SWI_EXECFXN = SWI_F_exec;
    SWI_RUNFXN = SWI_F_run;
    
    TSK_STACKSEG = DARAM;
    TSK_VCREATEFXN = _FXN_F_nop;
    TSK_VDELETEFXN = _FXN_F_nop;
    TSK_VEXITFXN = _FXN_F_nop;
    
    IDL_CALIBRFXN = IDL_F_stub;
    
    SYS_ABORTFXN = _UTL_doAbort;
    SYS_ERRORFXN = _UTL_doError;
    SYS_EXITFXN = _UTL_halt;
    SYS_PUTCFXN = _UTL_doPutc;
    
    GIO_CREATEFXN = _FXN_F_nop;
    GIO_DELETEFXN = _FXN_F_nop;
    GIO_PENDFXN = _FXN_F_nop;
    GIO_POSTFXN = _FXN_F_nop;
    
    PWRM_PWRM_BOOTHOOKFXN = _FXN_F_nop;
    
    /* OBJECT ALIASES */
    _DARAM = DARAM;
    _SARAM = SARAM;
    _VECT = VECT;
    _PRD_clock = PRD_clock;
    _RTA_fromHost = RTA_fromHost;
    _RTA_toHost = RTA_toHost;
    _HWI_RESET = HWI_RESET;
    _HWI_NMI = HWI_NMI;
    _HWI_INT2 = HWI_INT2;
    _HWI_INT3 = HWI_INT3;
    _HWI_INT4 = HWI_INT4;
    _HWI_INT5 = HWI_INT5;
    _HWI_INT6 = HWI_INT6;
    _HWI_INT7 = HWI_INT7;
    _HWI_INT8 = HWI_INT8;
    _HWI_INT9 = HWI_INT9;
    _HWI_INT10 = HWI_INT10;
    _HWI_INT11 = HWI_INT11;
    _HWI_INT12 = HWI_INT12;
    _HWI_INT13 = HWI_INT13;
    _HWI_INT14 = HWI_INT14;
    _HWI_INT15 = HWI_INT15;
    _HWI_INT16 = HWI_INT16;
    _HWI_INT17 = HWI_INT17;
    _HWI_INT18 = HWI_INT18;
    _HWI_INT19 = HWI_INT19;
    _HWI_INT20 = HWI_INT20;
    _HWI_INT21 = HWI_INT21;
    _HWI_INT22 = HWI_INT22;
    _HWI_INT23 = HWI_INT23;
    _HWI_BERR = HWI_BERR;
    _HWI_DLOG = HWI_DLOG;
    _HWI_RTOS = HWI_RTOS;
    _HWI_SINT27 = HWI_SINT27;
    _HWI_SINT28 = HWI_SINT28;
    _HWI_SINT29 = HWI_SINT29;
    _HWI_SINT30 = HWI_SINT30;
    _HWI_SINT31 = HWI_SINT31;
    _KNL_swi = KNL_swi;
    _chcdng_mod_swi = chcdng_mod_swi;
    _dem_div_swi = dem_div_swi;
    _chdcdng_div_swi = chdcdng_div_swi;
    _rssi_swi = rssi_swi;
    _offset_swi = offset_swi;
    _chdcdng_nonediv_swi = chdcdng_nonediv_swi;
    _TSK_idle = TSK_idle;
    _LNK_dataPump = LNK_dataPump;
    _RTA_dispatcher = RTA_dispatcher;
    _IDL_cpuLoad = IDL_cpuLoad;
    _LOG_system = LOG_system;
    _IDL_busyObj = IDL_busyObj;
    
    /* MODULE GBL */
    
    SECTIONS {
       .vers block(0x20000) (COPY): {} /* version information */
    }
    
    -priority
    -llnkrtdx.a55l
    -ldrivers.a55l         /* device drivers support */
    -lsioboth.a55l         /* supports both SIO models */
    -lbiosi.a55l           /* DSP/BIOS support */
    -lrtdxx.lib            /* RTDX JTAG support */
    -lcsl5509ax.lib
    -lrts55x.lib           /* C and C++ run-time library support */
    -lclki.a55l
    
    /* MODULE MEM */
    -stack 0x1400
    -sysstack 0xc00
    
    SECTIONS { .sysstack : block(0x20000) fill = 0xfeeb {
               GBL_sysstackbeg = .;
               *(.sysstack)
               GBL_sysstackend = GBL_sysstackbeg + 0xc00 -1 ;
                _HWI_SYSSTKTOP = GBL_sysstackbeg; 
                _HWI_SYSSTKBOTTOM =
    (GBL_sysstackend+1);
           } > DARAM}
    
    MEMORY {
       DARAM:      origin = 0x200,         len = 0xfe00
       SARAM:      origin = 0x10000,       len = 0x40000
       VECT:       origin = 0x100,         len = 0x100
    }
    /* MODULE CLK */
    SECTIONS {
       .clk: block(0x20000){
            _CLK_start = _CLK_start55;
            CLK_F_gethtime = CLK_F_getshtime;
            CLK_A_TABBEG = .;
            *(.clk)
            CLK_A_TABEND = .;
            CLK_A_TABLEN = (. - CLK_A_TABBEG) / 2;
       } > DARAM 
    }
    _CLK_PRD = CLK_PRD;
    _CLK_COUNTSPMS = CLK_COUNTSPMS;
    _CLK_REGS = CLK_REGS;
    _CLK_USETIMER = CLK_USETIMER;
    _CLK_TIMERNUM = CLK_TIMERNUM;
    _CLK_TCR = CLK_TCR;
    _CLK_TDDR = CLK_TDDR;
    
    /* MODULE PRD */
    SECTIONS {
       .prd: block(0x20000){
            PRD_A_TABBEG = .;
            /* no PRD objects */
            PRD_A_TABEND = .;
            PRD_A_TABLEN = (. - PRD_A_TABBEG) / 20;
       } > DARAM
    }
    
    /* MODULE RTDX */
    _RTDX_interrupt_mask = 0x0;
    
    /* MODULE HWI */
    HWI_TINT = HWI_INT4;
    _HWI_TINT = HWI_TINT;
    /* MODULE SWI */
    SECTIONS {
       .swi: block(0x20000){
            SWI_A_TABBEG = .;
            *(.swi)
            SWI_A_TABEND = .;
            SWI_A_TABLEN = (. - SWI_A_TABBEG) / 22;
       } > DARAM
    }
    
    /* MODULE IDL */
    SECTIONS {
       .idl: block(0x20000){
            IDL_A_TABBEG = .;
            *(.idl)
            IDL_A_TABEND = .;
            IDL_A_TABLEN = (. - IDL_A_TABBEG) / 4;
            IDL_A_CALBEG = .;
            *(.idlcal)
            IDL_A_CALEND = .;
            IDL_A_CALLEN = (. - IDL_A_CALBEG) / 4;
       } > DARAM
    }
    
    
    
    SECTIONS {
            .bss: block(0x20000)    {} > DARAM
            
            .hwi_disp_sec:     {} > DARAM
            
            .far:     {} > DARAM
            
            .sysdata: block(0x20000) {} > DARAM
            
            .sys: block(0x20000)    {} > DARAM
            
            .sts: block(0x20000){
                 STS_A_TABBEG = .;
                _STS_A_TABBEG = .;
                *(.sts)
                STS_A_TABEND = .;
                _STS_A_TABEND = .;
                 STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
                _STS_A_TABLEN = (. - _STS_A_TABBEG) / 16;
            } > DARAM
            
            .sysregs: {} > DARAM
            
            .args: align = 0x4  fill=0 block(0x20000) {
                *(.args)
                . += 0x10;
            } > DARAM
            
            .mem: 	  {} > DARAM
            
            .trace: block(0x20000) fill = 0x0 {
               _SYS_PUTCBEG = .;
               . += 0x200;
               _SYS_PUTCEND = . - 1;
            } > DARAM
            
            .pip: block(0x20000){
                 PIP_A_TABBEG = .;
                _PIP_A_TABBEG = .;
                *(.pip)
                PIP_A_TABEND = .;
                _PIP_A_TABEND = .;
                 PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
                _PIP_A_TABLEN = (. - _PIP_A_TABBEG) / 100;
            } > DARAM
            
            /* LOG_system buffer */
            .LOG_system$buf: block(0x20000) align = 0x80 fill = 0xffff {} > DARAM
            
            .data: block(0x20000)  {} > DARAM
            
            .const:    {} > DARAM
            
            .printf (COPY): {} > DARAM
            
            .cio:     {} > DARAM
            
            .log: block(0x20000){
                 LOG_A_TABBEG = .;
                _LOG_A_TABBEG = .;
                *(.log)
                LOG_A_TABEND = .;
                _LOG_A_TABEND = .;
                 LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 20;
                _LOG_A_TABLEN = (. - _LOG_A_TABBEG) / 20;
            } > DARAM
            
            .TSK_idle$stk: block(0x20000){
                *(.TSK_idle$stk)
            } > DARAM
            
            .tsk: block(0x20000){
                *(.tsk)
            } > DARAM
            
            .stack: block(0x20000) fill=0xbeef {
                GBL_stackbeg = .;
                *(.stack)
                GBL_stackend = (GBL_stackbeg + 0x1400 - 1) ;
                _HWI_STKBOTTOM = (GBL_stackend+1);
                _HWI_STKTOP = (GBL_stackbeg);
            } > DARAM
            
            .gio: block(0x20000)    {} > DARAM
            
            .rtdx_data: block(0x20000){}  > DARAM
            
            .csldata: block(0x20000) {
                *(.csldata)
            } > DARAM
            
            .hst: block(0x20000){
                 HST_A_TABBEG = .;
                _HST_A_TABBEG = .;
                *(.hst)
                HST_A_TABEND = .;
                _HST_A_TABEND = .;
                 HST_A_TABLEN = (. - _HST_A_TABBEG) / 8;
                _HST_A_TABLEN = (. - _HST_A_TABBEG) / 8;
            } > DARAM
            
            .dsm: block(0x20000) {} > DARAM
            
           /* RTA_fromHost buffer */
           .hst1: block(0x20000) align = 0x4 {} > DARAM
            
           /* RTA_toHost buffer */
           .hst0: block(0x20000) align = 0x4 {} > DARAM
            
            .DARAM$heap: {
                DARAM$B = .;
                _DARAM_base = .;
                DARAM$L = 0x200;
                _DARAM_length = 0x200;
                . += 0x200;
            } > DARAM
            
            .trcdata:    {} > SARAM
            
            .rtdx_text: {}  > SARAM
            
            .bios:    {} > SARAM
            
            frt:    {} > SARAM
            
            .text:    {} > SARAM
            
            .switch:    {} > SARAM
            
            .pinit: block(0x20000)    {} > SARAM
            
            .cinit: block(0x20000)    {} > SARAM
            
            .sysinit:    {} > SARAM
            
            .gblinit: block(0x20000)   {} > SARAM
            
            .hwi:  {}  > SARAM
            
            .hwi_vec:  align = 0x100{
                HWI_A_VECS = .;
               _HWI_A_VECS = . ; 
               *(.hwi_vec)
            } > VECT
            
    }
    
    

    v5.cmd.txt
    /*   Do *not* directly modify this file.  It was    */
    /*   generated by the Configuration Tool; any  */
    /*   changes risk being overwritten.                */
    
    /* INPUT SCPC.cdb */
    
    /* MODULE PARAMETERS */
    -u _FXN_F_nop
    GBL_USERINITFXN = _FXN_F_nop;
    -u _FXN_F_nop
    GBL_BIOS_BOOTFXN = _FXN_F_nop;
    
    -u DARAM
    MEM_SEGZERO = DARAM;
    -u DARAM
    MEM_MALLOCSEG = DARAM;
    
    -u _CLK_getshtime
    CLK_TIMEFXN = _CLK_getshtime;
    -u _CLK_run
    CLK_HOOKFXN = _CLK_run;
    
    -u KNL_tick_stub
    PRD_THOOKFXN = KNL_tick_stub;
    
    -u DARAM
    RTDX_DATAMEMSEG = DARAM;
    
    -u DARAM
    HST_DSMBUFSEG = DARAM;
    
    -u GBL_NULL
    SWI_EHOOKFXN = GBL_NULL;
    -u GBL_NULL
    SWI_IHOOKFXN = GBL_NULL;
    -u SWI_F_exec
    SWI_EXECFXN = SWI_F_exec;
    -u SWI_F_run
    SWI_RUNFXN = SWI_F_run;
    
    -u DARAM
    TSK_STACKSEG = DARAM;
    -u _FXN_F_nop
    TSK_VCREATEFXN = _FXN_F_nop;
    -u _FXN_F_nop
    TSK_VDELETEFXN = _FXN_F_nop;
    -u _FXN_F_nop
    TSK_VEXITFXN = _FXN_F_nop;
    
    -u _IDL_stub
    IDL_CALIBRFXN = _IDL_stub;
    
    -u _UTL_doAbort
    SYS_ABORTFXN = _UTL_doAbort;
    -u _UTL_doError
    SYS_ERRORFXN = _UTL_doError;
    -u _UTL_halt
    SYS_EXITFXN = _UTL_halt;
    -u _UTL_doPutc
    SYS_PUTCFXN = _UTL_doPutc;
    
    -u _FXN_F_nop
    GIO_CREATEFXN = _FXN_F_nop;
    -u _FXN_F_nop
    GIO_DELETEFXN = _FXN_F_nop;
    -u _FXN_F_nop
    GIO_PENDFXN = _FXN_F_nop;
    -u _FXN_F_nop
    GIO_POSTFXN = _FXN_F_nop;
    
    -u _FXN_F_nop
    PWRM_PWRM_BOOTHOOKFXN = _FXN_F_nop;
    
    /* OBJECT ALIASES */
    _DARAM = DARAM;
    _SARAM = SARAM;
    _VECT = VECT;
    _PRD_clock = PRD_clock;
    _RTA_fromHost = RTA_fromHost;
    _RTA_toHost = RTA_toHost;
    _HWI_RESET = HWI_RESET;
    _HWI_NMI = HWI_NMI;
    _HWI_INT2 = HWI_INT2;
    _HWI_INT3 = HWI_INT3;
    _HWI_INT4 = HWI_INT4;
    _HWI_INT5 = HWI_INT5;
    _HWI_INT6 = HWI_INT6;
    _HWI_INT7 = HWI_INT7;
    _HWI_INT8 = HWI_INT8;
    _HWI_INT9 = HWI_INT9;
    _HWI_INT10 = HWI_INT10;
    _HWI_INT11 = HWI_INT11;
    _HWI_INT12 = HWI_INT12;
    _HWI_INT13 = HWI_INT13;
    _HWI_INT14 = HWI_INT14;
    _HWI_INT15 = HWI_INT15;
    _HWI_INT16 = HWI_INT16;
    _HWI_INT17 = HWI_INT17;
    _HWI_INT18 = HWI_INT18;
    _HWI_INT19 = HWI_INT19;
    _HWI_INT20 = HWI_INT20;
    _HWI_INT21 = HWI_INT21;
    _HWI_INT22 = HWI_INT22;
    _HWI_INT23 = HWI_INT23;
    _HWI_BERR = HWI_BERR;
    _HWI_DLOG = HWI_DLOG;
    _HWI_RTOS = HWI_RTOS;
    _HWI_SINT27 = HWI_SINT27;
    _HWI_SINT28 = HWI_SINT28;
    _HWI_SINT29 = HWI_SINT29;
    _HWI_SINT30 = HWI_SINT30;
    _HWI_SINT31 = HWI_SINT31;
    _KNL_swi = KNL_swi;
    _chcdng_mod_swi = chcdng_mod_swi;
    _chdcdng_div_swi = chdcdng_div_swi;
    _chdcdng_nonediv_swi = chdcdng_nonediv_swi;
    _dem_div_swi = dem_div_swi;
    _offset_swi = offset_swi;
    _rssi_swi = rssi_swi;
    _TSK_idle = TSK_idle;
    _LNK_dataPump = LNK_dataPump;
    _RTA_dispatcher = RTA_dispatcher;
    _IDL_cpuLoad = IDL_cpuLoad;
    _LOG_system = LOG_system;
    _IDL_busyObj = IDL_busyObj;
    
    /* MODULE GBL */
    
    SECTIONS {
       .vers block(0x20000) (COPY): {} /* version information */
    }
    
    --"diag_suppress=10286" /* new linker needs new BIOS (SDSCM00026767) */
    
    --"diag_suppress=16002"
    -priority
    -llnkrtdx.a55L
    -ldrivers.a55L         /* device drivers support */
    -lsioboth.a55L         /* supports both SIO models */
    -lbios5509.a55L        /* 5509 and compatible chips */
    -lbios.a55L            /* DSP/BIOS support */
    -lrtdxx.lib            /* RTDX JTAG support */
    -lrts55x.lib           /* C and C++ run-time library support */
    
    
    
    
    /* MODULE MEM */
    -stack 0x1400
    -sysstack 0xc00
    
    MEMORY {
       PAGE 0:     DARAM:    origin = 0x200, len = 0xfe00
       PAGE 0:     SARAM:    origin = 0x10000, len = 0x40000
       PAGE 0:     VECT:     origin = 0x100, len = 0x100
    }
    /* MODULE CLK */
    SECTIONS {
       .clk: block(0x20000), RUN_START(CLK_A_TABBEGb) {
           CLK_F_gethtime = _CLK_getshtime;
           CLK_A_TABBEG = CLK_A_TABBEGb / 2;
            *(.clk) 
       } > DARAM PAGE 0
    }
    _CLK_PRD = CLK_PRD;
    _CLK_COUNTSPMS = CLK_COUNTSPMS;
    _CLK_REGS = CLK_REGS;
    _CLK_USETIMER = CLK_USETIMER;
    _CLK_TIMERNUM = CLK_TIMERNUM;
    _CLK_TCR = CLK_TCR;
    _CLK_TDDR = CLK_TDDR;
    
    /* MODULE PRD */
    SECTIONS {
       .prd: block(0x20000) RUN_START(PRD_A_TABBEGb), RUN_END(PRD_A_TABENDb) {
           PRD_A_TABBEG = PRD_A_TABBEGb / 2;
           PRD_A_TABEND = PRD_A_TABENDb / 2;
       } > DARAM PAGE 0
    }
    PRD_A_TABLEN = 0;
    
    /* MODULE RTDX */
    _RTDX_interrupt_mask = 0x0;
    
    /* MODULE HWI */
    HWI_TINT = HWI_INT4;
    _HWI_TINT = HWI_TINT;
    /* MODULE SWI */
    SECTIONS {
       .swi: block(0x20000) RUN_START(SWI_A_TABBEGb), RUN_END(SWI_A_TABENDb) {
           SWI_A_TABBEG = SWI_A_TABBEGb / 2;
           SWI_A_TABEND = SWI_A_TABENDb / 2;
       } > DARAM PAGE 0
    }
    SWI_A_TABLEN = 7;
    
    /* MODULE TSK */
    SECTIONS {
       .tsk: block(0x20000) {
            *(.tsk) 
       } > DARAM PAGE 0
    }
    
    /* MODULE IDL */
    SECTIONS {
       .idl: block(0x20000), RUN_START(IDL_A_TABBEGb) {
           IDL_A_TABBEG = IDL_A_TABBEGb / 2;
       } > DARAM PAGE 0
       
       .idlcal: block(0x20000), RUN_START(IDL_A_CALBEGb) {
           IDL_A_CALBEG = IDL_A_CALBEGb / 2;
       } > DARAM PAGE 0 
    }
    
    
    LOG_A_TABLEN = 1; _LOG_A_TABLEN = 1;
    
    PIP_A_TABLEN = 2;
    
    
    SECTIONS {
            .bss: block(0x20000)    {} > DARAM PAGE 0
    
            .hwi_disp_sec:  block(0x20000) {} > DARAM PAGE 0
    
            .far:     {} > DARAM PAGE 0
    
            .sysdata: block(0x20000) {} > DARAM PAGE 0
    
            .mem: 	  {} > DARAM PAGE 0
    
            .cio:     {} > DARAM PAGE 0
    
            .sysregs: {} > DARAM PAGE 0
    
            .dsm: block(0x20000) {} > DARAM PAGE 0
    
            .data: block(0x20000)  {} > DARAM PAGE 0
    
            .gio: block(0x20000)    {} > DARAM PAGE 0
    
            .sys: block(0x20000)    {} > DARAM PAGE 0
    
            .pwrmdb: block(0x20000)   {} > DARAM PAGE 0
    
            .rtdx_data: block(0x20000){}  > DARAM PAGE 0
    
            .TSK_idle$stk: block(0x20000){
                *(.TSK_idle$stk)
            } > DARAM PAGE 0
    
            GROUP {
             .const: {} 
             .printf (COPY): {} 
            } > DARAM PAGE 0
    
            /* LOG_system buffer */
            .LOG_system$buf: block(0x20000) align = 0x80 {} > DARAM PAGE 0
    
           /* RTA_fromHost buffer */
           .hst1: block(0x20000) align = 0x4 {} > DARAM PAGE 0
    
           /* RTA_toHost buffer */
           .hst0: block(0x20000) align = 0x4 {} > DARAM PAGE 0
    
            .args: align = 0x4  fill=0 block(0x20000) {
                *(.args)
                . += 0x10;
            } > DARAM PAGE 0
    
            .trace: block(0x20000) fill = 0x0 {
               _SYS_PUTCBEG = .;
               . += 0x400;
               _SYS_PUTCEND = . - 1;
            } > DARAM PAGE 0
    
            .hst: block(0x20000), RUN_START(HST_A_TABBEGb), RUN_END(HST_A_TABENDb) {
               HST_A_TABBEG = HST_A_TABBEGb / 2; _HST_A_TABBEG = HST_A_TABBEGb / 2;
               HST_A_TABEND = HST_A_TABENDb / 2; _HST_A_TABEND = HST_A_TABENDb / 2;
            } > DARAM PAGE 0
    
            .log: block(0x20000), RUN_START(LOG_A_TABBEGb), RUN_END(LOG_A_TABENDb) {
               LOG_A_TABBEG = LOG_A_TABBEGb / 2; _LOG_A_TABBEG = LOG_A_TABBEGb / 2;
               LOG_A_TABEND = LOG_A_TABENDb / 2; _LOG_A_TABEND = LOG_A_TABENDb / 2;
            } > DARAM PAGE 0
    
            .pip: block(0x20000), RUN_START(PIP_A_TABBEGb), RUN_END(PIP_A_TABENDb) {
               PIP_A_TABBEG = PIP_A_TABBEGb / 2; _PIP_A_TABBEG = PIP_A_TABBEGb / 2;
               PIP_A_TABEND = PIP_A_TABENDb / 2; _PIP_A_TABEND = PIP_A_TABENDb / 2;
            } > DARAM PAGE 0
    
            .sts: block(0x20000), RUN_START(STS_A_TABBEGb), RUN_END(STS_A_TABENDb) {
               STS_A_TABBEG = STS_A_TABBEGb / 2; _STS_A_TABBEG = STS_A_TABBEGb / 2;
               STS_A_TABEND = STS_A_TABENDb / 2; _STS_A_TABEND = STS_A_TABENDb / 2;
            } > DARAM PAGE 0
    
            GROUP { 
                    .sysstack :  align = 0x4 {
                    GBL_sysstackbeg = .;
                     *(.sysstack)
                     GBL_sysstackend = GBL_sysstackbeg + 0xc00 -1 ;
                    _HWI_SYSSTKTOP = GBL_sysstackbeg; 
                   _HWI_SYSSTKBOTTOM = (GBL_sysstackend+1);
                   } 
                    .stack: align = 0x4 {
                    GBL_stackbeg = .;
                     *(.stack)
                    GBL_stackend = (GBL_stackbeg + 0x1400 - 1) ;
                    _HWI_STKBOTTOM = (GBL_stackend+1);
                    _HWI_STKTOP = (GBL_stackbeg);
                    }
            } BLOCK(0x20000), run  > DARAM PAGE 0
    
            .DARAM$heap: RUN_START(DARAM$Bb), RUN_START(_DARAM_baseb), RUN_SIZE(DARAM$L), RUN_SIZE(_DARAM_length) {
                . += 0x200;
                DARAM$B = DARAM$Bb / 2;
                _DARAM_base = _DARAM_baseb / 2;
            }  > DARAM PAGE 0
    
            frt:    {} > SARAM PAGE 0
    
            .bios:    {} > SARAM PAGE 0
    
            .text:    {} > SARAM PAGE 0
    
            .switch:    {} > SARAM PAGE 0
    
            .sysinit:    {} > SARAM PAGE 0
    
            .trcdata:    {} > SARAM PAGE 0
    
            .rtdx_text: {}  > SARAM PAGE 0
    
            .cinit: block(0x20000)    {} > SARAM PAGE 0
    
            .pinit: block(0x20000)    {} > SARAM PAGE 0
    
            .gblinit: block(0x20000)   {} > SARAM PAGE 0
    
            .hwi:  {
           /* no HWI stubs are necessary */
           }  > SARAM PAGE 0
    
            .hwi_vec:  align = 0x100 {
                *(.hwi_vec)
            } RUN_START(HWI_A_VECS),  > VECT PAGE 0
    
    }
    
    

    Regards,

    Kengo Furuya

  • I apologize for the delay.  I'm still struggling to understand what happened in your case.  I'm about to ask for a few more files.  While I know it will help, I'm sorry I cannot promise that this will finally let me see your problem.

    Please send, for both the CCSv3 and CCSv5 build, everything the hex utility sees when it is invoked.  That includes the .out file, the command file, and all the options.  That should allow me the reproduce your results.  I think that will allow me to understand your case.

    Thanks and regards,

    -George