I have been using the prebuilt edma3_lld_02_11_04_01 library successfully for the C6748 core of an OMAP-L138, but recently I wanted to use it for my same SysBIOS (bios_6_33_03_33) on the ARM9 core.
I found that the EDMA libraries were not pre-built for the ARM9 core, so I figured out how to modify makerules/env.mk to point to all the right tools and packages/component.mk to just build the OMAP-L138 targets, and successfully built (as far as I can tell) for both the ARM9 and C674x targets.
My first problem is that now my C6748 projects no longer build, complaining about such items as EDMA3_DRV_close.
The odd thing is that when I use nm, I can see that EDMA3_DRV_close is defined, i.e.,
bash-4.1$ c:/ti/ccsv5/tools/compiler/c6000/bin/nm6x.exe "C:\ti\edma3_lld_02_11_04_01\packages\ti\sdo\edma3\drv\lib\674\debug\edma3_lld_drv.ae674"| grep EDMA3_DRV_close
00000000 t .text:_EDMA3_DRV_close
00000000 T _EDMA3_DRV_close
Yet even when I stick this very library manually on the end of the link line, it still doesn't find it, i.e., the error cut and paste from CCS5 is,
C:/ti/ccsv5/tools/compiler/c6000/bin/cl6x" --cmd_file="C:\Workdir\Vision\Software\ST4\DSP\DSP_lib\ST4_DSP_project.opt" -mv6740 -g --define=ST_DO_TRACE --define=cmNoCodeTrace --display_error_number --diag_warning=225 --abi=eabi -z -m"ST4_DSP_app.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c6000/lib" --reread_libs --rom_model -o "ST4_DSP_app.out" ./version.obj -l"./configPkg/linker.cmd" "./main.obj" -l"C:\Workdir\Vision\Generated\ST4\DSP\Release\DSP_alg.lib" -l"C:\Workdir\Vision\Software\ST4\DSP\DSP_lib\ST4_DSP_project_debug.cmd" -l"libc.a" -lc:/ti/edma3_lld_02_11_04_01/packages/ti/sdo/edma3/drv/lib/674/release/edma3_lld_drv.ae674
<Linking>
undefined first referenced
symbol in file
--------- ----------------
EDMA3_DRV_close c:\Workdir\Vision\Software\ST4\DSP\DSP_lib\Debug\DSP_lib.lib<uart_drv.obj>
I'm not even sure how this is possible: I can see the EDMA3_DRV_close symbol in the library, I see I am referencing the library (both explicitly here and the same library is in the generated linker.cmd file), but the symbol is not found. The EDMA library was built as ELF (--abi=eabi), and uart_drv.obj was built with ELF (--abi=eabi), so I just can't tell what could be going wrong.
I'm fairly certain I am doing something wrong, but any pointers on what would be greatly appreciated.