Other Parts Discussed in Thread: SYSBIOS, AM3359
I'm trying to compile and load example program(ethercat slave) but there are error at linking.
It seemed to be wrong .cmd file.
Evaluation Board is ICE V1.
1. Error log message
<Linking>
warning: creating output section ".text" without a SECTIONS specification
warning: creating output section ".data" without a SECTIONS specification
warning: creating output section ".const" without a SECTIONS specification
warning: creating output section "ti.sysbios.family.arm.a8.mmuTableSection"
without a SECTIONS specification
warning: creating output section ".bss" without a SECTIONS specification
warning: creating output section "xdc.meta" without a SECTIONS specification
warning: creating output section ".vecs" without a SECTIONS specification
warning: creating output section ".bss:.common" without a SECTIONS
specification
warning: creating output section ".cinit" without a SECTIONS specification
undefined first referenced
symbol in file
--------- ----------------
IND_CALL C:\ti\xdctools_3_24_07_73\packages\ti\targets\arm\rtsarm\lib\auto_init.aea8fnv<auto_init.oea8fnv>
>> Compilation failure
app_reload_code_run ./tiescutils.obj
app_reload_code_size ./tiescutils.obj
app_reload_code_start ./tiescutils.obj
ti_sysbios_family_arm_a8_intcps_Hwi_create C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk/os_drivers/lib/sys_bios_driver.lib<osdrv_uart.obj>
ti_sysbios_family_arm_a8_intcps_Hwi_delete C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk/os_drivers/lib/sys_bios_driver.lib<osdrv_uart.obj>
ti_sysbios_knl_Semaphore_create C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk/protocols/ethercat_slave/stack_lib/ecat_slave_stack.lib<tiescbsp.obj>
ti_sysbios_knl_Semaphore_delete C:\ti\am335x_sysbios_ind_sdk_1.1.0.6\sdk/protocols/ethercat_slave/stack_lib/ecat_slave_stack.lib<tiescbsp.obj>
error: unresolved symbols remain
error: errors encountered during linking; "ethercat.out" not built
gmake: *** [ethercat.out] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
2. Reference set:
3.Command file ( No modified. )
3.1 am335x.cmd : is clicked twice, and strange at DDR3 -> ICE v1 has DDR2.
SECTIONS
{
.init: { boot*(.text)} > 0x80000000 /* make sure we can boot! */
GROUP: load > SRAM_HI
{
.bss:
.data:
.stack:
}
.app_reload_code: { -lsys_bios_driver.lib<osdrv_spiflash.obj,osdrv_mcspi.obj>(.text),-lam335x_platform.lib<plat_delay.obj,plat_mcspi.obj>(.text),-lecat_slave_stack.lib<tiesc_appreload.obj>(.text) } load > DDR3, run > 0x80040000, align = 0x4
LOAD_START(app_reload_code_start)
RUN_START(app_reload_code_run)
SIZE(app_reload_code_size)
.cinit: load > DDR3
.text: load >> DDR3 align = 0x8000
.const: load > DDR3
.vecs: load > DDR3
ti.sysbios.family.arm.a8.mmuTableSection: load >> SRAM_HI, type = NOINIT
xdc.meta: load >> DDR3, type = COPY
}
3.2 am335x_iram.cmd
SECTIONS
{
.init: { boot*(.text)} > 0x40300000
GROUP: load > 0x402f0400
{
.bss:
.neardata:
.rodata:
}
ti.sysbios.family.arm.a8.mmuTableSection: load > 0x402F8000 , type = NOINIT
.stack: load > SRAM_HI
.data: load >> SRAM_HI
.app_reload_code: { -lsys_bios_driver.lib<osdrv_spiflash.obj,osdrv_mcspi.obj>(.text),-lam335x_platform.lib<plat_delay.obj,plat_mcspi.obj>(.text),-lecat_slave_stack.lib<tiesc_appreload.obj>(.text) } load > OCMC_SRAM, run > 0x4030f000, align = 0x4
LOAD_START(app_reload_code_start)
RUN_START(app_reload_code_run)
SIZE(app_reload_code_size)
/* BL stack starts at 0x402f9600 and is 0x300 in size. Placing these in a safe zone(after mmuTableSection) */
GROUP: load > 0x402fc000
{
.vecs:
.const:
}
/* Forcing to make sure it does not conflict with BL execution. Grouping with above result in a warning */
.cinit: load > 0x402fcc00
.text: load >> OCMC_SRAM | SRAM_HI align = 0x4, fill = 0
.init_array: load > DDR3
xdc.meta: load >> SRAM_HI, type = COPY
xdc.noload: load >> OCMC_SRAM, type = COPY
}
3.3 am335x_nor.cmd
MEMORY
{
/* 16 bytes reserved for application header */
NOR_1 (RX) : org = 0x08010010, len = 0xFFF0
NOR_2 (RX) : org = 0x08020000, len = 0x20000
NOR_3 (RX) : org = 0x08040000, len = 0x20000
}
SECTIONS
{
.init: { boot*(.text)} load > 0x08010010
.text: load >> NOR_2
.cinit: load > NOR_1
.init_array: load > NOR_1
.const: load >> NOR_1
.vecs: load >> NOR_1
.bios_code: { sysbios.* (.text)} load > NOR_1
.sdk_mmu_code: { -lsys_bios_driver.lib<osdrv_mmu.obj> (.text)} load > NOR_1
.sdk_led_code: { -lam335x_platform.lib<plat_led.obj> (.text)} load > NOR_1
.sdk_platform_code: { -lam335x_platform.lib (.text)} load > NOR_1
.start_platform_code: { -lplatform.lib (.text) } load > NOR_1
.xdc_code: { ethercat_nor_pea8fnv.oea8fnv (.text) } load > NOR_1
.start_i2c_code: { -ldrivers.lib<hsi2c.obj> (.text) } load > NOR_1
GROUP: load > 0x08018000
{
.rtsarm_code: { ti.targets.arm.rtsarm.aea8fnv (.text) }
.tiescappl_code: { tiescappl.obj (.text)}
.tiescutils_code: { tiescutils.obj (.text)}
}
.autoinit_code: { auto_init.aea8fnv (.text) } load > NOR_1
.rtsv7a8_eabi_code: { -lrtsv7A8_A_le_n_v3_eabi.lib (.text) } load > NOR_1
.start_drivers_code: { drivers.lib (.text) } load > 0x08028000
.tiescutils_const: { tiescutils.obj (.const) } load > NOR_2
.coeappl_const: { -lecat_slave_stack.lib<coeappl.obj> (.const) } load > NOR_2
.tiescbsp_const: { -lecat_slave_stack.lib<tiescbsp.obj> (.const) } load > NOR_2
.objdef_const: { -lecat_slave_stack.lib<objdef.obj> (.const) } load > NOR_2
.sdoserv_const: { -lecat_slave_stack.lib<sdoserv.obj> (.const) } load > NOR_2
}