Hi,
I've been working on a custom board featuring C6672 DSP. I'm able to properly build projects and load applications to the processor through an XDS560v2 emulator.
Now, I want to store the application in the on-board Spansion NOR flash (which resides in 0x70000000:0x73FFFFFF) and boot the processor with that application on startup. To that end, I've learnt that I need to pass the output file through a series of TI tools (namely hex6x, b2ccs, ccs2bin). However, I don't know how to fill the ROMS section of the RMD file required by hex6x.
Here, I've attached my linker command file (that is dynamically generated by SYS/BIOS configuration file and the platform package)
/* * Do not modify this file; it is automatically generated from the template * linkcmd.xdt in the ti.targets.elf package and will be overwritten. */ /* * put '"'s around paths because, without this, the linker * considers '-' as minus operator, not a file name character. */ -l"C:\Users\okancalis\workspace_app\appv2\Release\configPkg\package\cfg\app_pe66.oe66" -l"C:\ti\edma3_lld_2_12_05_30C\packages\ti\sdo\edma3\drv\sample\lib\c6678-evm\66\release\edma3_lld_drv_sample.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\hal\timer_bios\lib\hal_timer_bios.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\os\lib\os.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\hal\userled_stub\lib\hal_userled_stub.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\hal\eth_stub\lib\hal_eth_stub.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\tools\cgi\lib\cgi.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\tools\hdlc\lib\hdlc.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\tools\console\lib\console_min.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\netctrl\lib\netctrl_min.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\nettools\lib\nettool.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\hal\ser_stub\lib\hal_ser_stub.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\tools\servers\lib\servers_min.ae66" -l"C:\ti\ndk_2_26_00_08\packages\ti\ndk\stack\lib\stk6.ae66" -l"C:\Users\okancalis\workspace_app\appv2\src\sysbios\sysbios.ae66" -l"C:\ti\pdk_AD-0000-0486_1_4_0_0\packages\ti\platform\evmc6678l\platform_lib\lib\release\ti.platform.evm6678l.ae66" -l"C:\ti\pdk_AD-0000-0486_1_4_0_0\packages\ti\csl\lib\ti.csl.ae66" -l"C:\ti\pdk_AD-0000-0486_1_4_0_0\packages\ti\drv\pcie\lib\ti.drv.pcie.ae66" -l"C:\ti\edma3_lld_2_12_05_30C\packages\ti\sdo\edma3\drv\lib\66\release\edma3_lld_drv.ae66" -l"C:\ti\edma3_lld_2_12_05_30C\packages\ti\sdo\edma3\rm\lib\c6678-evm\66\release\edma3_lld_rm.ae66" -l"C:\ti\bios_6_52_00_12\packages\ti\targets\rts6000\lib\ti.targets.rts6000.ae66" -l"C:\ti\bios_6_52_00_12\packages\ti\targets\rts6000\lib\boot.ae66" --retain="*(xdc.meta)" --args 0x0 -heap 0x0 -stack 0x400 MEMORY { MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000 DDR (RWX) : org = 0xa0000000, len = 0x60000000 DDR_PCIE (W) : org = 0x80000000, len = 0x20000000 BOOT (R) : org = 0x70000000, len = 0x100 INTVEC (R) : org = 0x70000100, len = 0x1000 EMIF16_CS2 (R) : org = 0x70001100, len = 0x3fe000 } /* * Linker command file contributions from all loaded packages: */ /* Content from xdc.services.global (null): */ /* Content from xdc (null): */ /* Content from xdc.corevers (null): */ /* Content from xdc.shelf (null): */ /* Content from xdc.services.spec (null): */ /* Content from xdc.services.intern.xsr (null): */ /* Content from xdc.services.intern.gen (null): */ /* Content from xdc.services.intern.cmd (null): */ /* Content from xdc.bld (null): */ /* Content from ti.targets (null): */ /* Content from ti.targets.elf (null): */ /* Content from xdc.rov (null): */ /* Content from xdc.runtime (null): */ /* Content from ti.targets.rts6000 (null): */ /* Content from ti.sysbios.interfaces (null): */ /* Content from ti.sysbios.family (null): */ /* Content from xdc.services.getset (null): */ /* Content from ti.ndk.rov (null): */ /* Content from ti.sdo.edma3.rm (null): */ /* Content from ti.sdo.edma3.drv (null): */ /* Content from ti.drv.pcie (null): */ /* Content from ti.csl (null): */ /* Content from ti.platform.evmc6678l (null): */ /* Content from ti.sysbios.family.c62 (null): */ /* Content from xdc.runtime.knl (null): */ /* Content from ti.ndk (null): */ /* Content from ti.ndk.hal.timer_bios (null): */ /* Content from ti.ndk.os (null): */ /* Content from ti.ndk.hal.userled_stub (null): */ /* Content from ti.ndk.hal.eth_stub (null): */ /* Content from ti.ndk.tools.cgi (null): */ /* Content from ti.ndk.tools.hdlc (null): */ /* Content from ti.ndk.stack (null): */ /* Content from ti.ndk.tools.console (null): */ /* Content from ti.ndk.netctrl (null): */ /* Content from ti.ndk.nettools (null): */ /* Content from ti.ndk.hal.ser_stub (null): */ /* Content from ti.ndk.tools.servers (null): */ /* Content from ti.sysbios.family.c64p.tci6488 (null): */ /* Content from ti.catalog.c6000 (null): */ /* Content from ti.catalog (null): */ /* Content from ti.catalog.peripherals.hdvicp2 (null): */ /* Content from xdc.platform (null): */ /* Content from xdc.cfg (null): */ /* Content from ti.platforms.generic (null): */ /* Content from ComintKarettaBoard (null): */ /* Content from ti.sysbios.hal (null): */ /* Content from ti.sysbios.knl (null): */ /* Content from ti.sysbios.timers.timer64 (null): */ /* Content from ti.sysbios.family.c64p (ti/sysbios/family/c64p/linkcmd.xdt): */ /* Content from ti.sysbios.family.c66 (ti/sysbios/family/c66/linkcmd.xdt): */ ti_sysbios_family_c66_Cache_l1dSize = 32768; ti_sysbios_family_c66_Cache_l1pSize = 32768; ti_sysbios_family_c66_Cache_l2Size = 524288; /* Content from ti.sysbios (null): */ /* Content from ti.sysbios.rts (ti/sysbios/rts/linkcmd.xdt): */ /* Content from ti.sysbios.rts.ti (ti/sysbios/rts/ti/linkcmd.xdt): */ /* Content from ti.ndk.config (null): */ /* Content from ti.sdo.edma3.drv.sample (null): */ /* Content from ti.sysbios.family.c66.tci66xx (null): */ /* Content from ti.sysbios.gates (null): */ /* Content from ti.sysbios.xdcruntime (null): */ /* Content from ti.sysbios.heaps (null): */ /* Content from ti.sysbios.utils (null): */ /* Content from configPkg (null): */ /* Content from xdc.services.io (null): */ /* * symbolic aliases for static instance objects */ xdc_runtime_Startup__EXECFXN__C = 1; xdc_runtime_Startup__RESETFXN__C = 1; SECTIONS { .text: load >> DDR .ti.decompress: load > DDR .stack: load > MSMCSRAM GROUP: load > DDR { .bss: .neardata: .rodata: } .cinit: load > DDR .pinit: load >> DDR .init_array: load > DDR .const: load >> DDR .data: load >> DDR .fardata: load >> DDR .switch: load >> DDR .sysmem: load > DDR .far: load >> DDR .args: load > DDR align = 0x4, fill = 0 {_argsize = 0x0; } .cio: load >> DDR .ti.handler_table: load > DDR .c6xabi.exidx: load > DDR .c6xabi.extab: load >> DDR PCIE_DATA_SECTION: load > DDR_PCIE .vecs: load > DDR xdc.meta: load > DDR, type = COPY }
When I feed my app.out file to the hex6x tool with this RMD file
app.out --ascii --image --map=app.map --entrypoint _c_int00 --order L ROMS { ROM1: org=0x70000000, len=0x200000, romwidth=32, memwidth=32 files={app.btbl} }
Translating to ASCII-Hex format...
"app.out" ==> .const.1
warning: section app.out(.const.1) at 0a025d3f0h falls in unconfigured memory
(skipped)
"app.out" ==> .text
warning: section app.out(.text) at 0a025d400h falls in unconfigured memory
(skipped)
"app.out" ==> .const.2
warning: section app.out(.const.2) at 0a02ab0c0h falls in unconfigured memory
(skipped)
"app.out" ==> .switch
warning: section app.out(.switch) at 0a02b4b0ch falls in unconfigured memory
(skipped)
"app.out" ==> .vecs
warning: section app.out(.vecs) at 0a02b5000h falls in unconfigured memory
(skipped)
"app.out" ==> .cinit
warning: section app.out(.cinit) at 0a02b5320h falls in unconfigured memory
(skipped)
Is this happening because of some inconsistency between my linker script and RMD file? If so, how can I resolve it?
Thanks in advance.