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.