Hello,
I am migrating a DSP/BIOS project to legacy SYS/BIOS and I need some guidelines about the tools and the packages versions for the libraries that I am allowed to use.
The final aim is to migrate to full SYS/BIOS project. Now, I am at the middle stage of migrating to legacy SYS/BIOS and I am facing some linking errors.
The initial DSP/BIOS project builds with Makefile (no CCS) and uses the following tools-packages:
DSP/BIOS 05.41.04.18, CGT 06.1.22
The output DSP/BIOS file links with the following libraries:
NDK 2.00.00 ndk/lib/C64plus libraries:
stack.lib, netctrl.lib, nettool.lib, os.lib, miniPrintf.lib, hal_ser_stub.lib, hal_userled_stub.lib, hal_timer_bios.lib
EDMA3_LLD 01.10.00.xx release libraries:
edma3_drv_bios_c674.lib, edma3_rm_bios.lib
For the migration to legacy SYS/BIOS, I am using the following tools:
CGT 7.4.8, bios_6_34_05_24, ipc_1_25_03_15, xdais_7_21_01_07, uia_1_03_00_02, xdctools_3_24_07_73
I have converted the initial tci configuration file to cfg file using conversion tool and also generated compiler.opt and linker.cmd, I compiled the source files but I get errors when linking the final object.
The linking command is like this:
/ti/c6000_7.4.8/bin/lnk6x.exe --abi=coffabi -reread_libs -c -w -x -i/ti/c6000_7.4.8/lib -i/ti/bios_6_34_05_24/packages/ti/bios/lib -i/ti/cslc6000/lib -i/ti/c6000_7.4.8/include -o project6746_legacy.symbols.out -m project6746_legacy.symbols.out.map -l/ti/ndk/lib/C64plus/stack.lib -l/ti/ndk/lib/C64plus/netctrl.lib -l/ti/ndk/lib/C64plus/nettool.lib -l/ti/ndk/lib/C64plus/os.lib -l/ti/ndk/lib/C64plus/miniPrintf.lib -l/ti/ndk/lib/C64plus/hal/hal_ser_stub.lib -l/ti/ndk/lib/C64plus/hal/hal_userled_stub.lib -l/ti/ndk/lib/C64plus/hal/hal_timer_bios.lib -l/ti/sdo/edma3/drv/lib/Release/edma3_drv_bios_c674.lib -l/ti/sdo/edma3/rm/lib/c6748/Release/edma3_rm_bios.lib -lproject6746_legacy.cmd -llinker.cmd -l/ti/c6000_7.4.8/lib/libc.a { .... obj files from other modules}
I get undefined symbols from project module files, some of them:
_C64_enableIER, _CLK_countspms, _ECM_disableEvent, _EDRAM, _HOOK_getenv, _HWI_D_inhwi,
_LOGRAM, _MBX_pend, _PRD_tick, _SDERAM, _SEM_delete, _SWI_D_inswi, _SYS, _TRC_R_mask, _TSK_ATTRS, _TSK_exit, __HOOK_knlId
I get undefined symbols from BIOS and XDCTOOLS packages, some of them:
_ti_bios_support_Sys_E_error__C, _ti_bios_support_Sys_errorFxn__C, _ti_sysbios_family_c64p_Cache_EMIFA_BASE__C, _ti_sysbios_family_c64p_Hwi_Object__create__S, _ti_sysbios_knl_Semaphore_LM_pend__C, _xdc_runtime_Main_Module__id__C, etc
and I get unresolved symbol in linker.cmd, some of them:
_xdc_runtime_LoggerBuf_Object__table__V, _ti_sysbios_knl_Swi_Object__table__V, etc
The complete list of linking errors is attached.
If you have any hint what I have set up wrong would be very useful.
Also, I have the following questions:
- Are the original ndk / edma3 packages compatible with legacy SYS/BIOS?
- Should they be replaced when I move on to pure SYS/BIOS?
Thank you in advance.