This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Conflicting libraries when upgrading ccv3.2 to ccv5

I am trying to upgrade ccsv3.2 to ccvv5 and have had many problems.  The latest is this.

I get these errors when building:

>>>>>

 error #10056: symbol "_MDIO_timerTick" redefined: first defined in

.../Src/TiLteLib/cixcvrProductEC/LTE/lib/csl_3x_C6482_v3_00_10_01/csl_c6482.lib<csl_mdio.o>";

redefined in

.../Src/Ti/ndk/lib/hal/dsk6455/hal_eth_c6455.lib<c6455_mdio.o64P>"

 and about 8 more MDIO related errors.

>>>

How do I fix this problem??  I need both of these libraries.

  • Hi Bryan Hehn,

    The C6455 Ethernet driver has its own copy of the file csl_mdio.c (which contains the definition of the function MDIO_timerTick).

    It looks like the CSL library you are also using does as well.

    I'm not how this worked before your upgrade attempt, as this conflict exists independently of CCSv3 vs CCSv5.

    Are you using NDK 2.0?  Do you have the driver sources for the C6455?

    You could rebuild the 6455 Ethernet driver to *exclude* the MDIO_timerTick from the csl_mdio.c (assuming that the function MDIO_timerTick in the Ethernet driver is equivalent to the one in the CSL library ...) and just rely on the one that exists in the CSL library.

    Steve

  • This is the version of ndk taken from an include file:

    *  @(#) TCP/IP_Network_Developers_Kit 1.92.00.22 01-10-2007 (ndk-b22)

     

    how could I rebuild the library without the mdio?

    Also FYI we are using a c6482.

  • Ok, you are using a version of NDK that did not ship with sources.  So, my idea to rebuild the driver without MDIO would not work for the version that you have.

    One option is for you to download the NDK 2.00 which does have the driver sources.

    But, I'm still curious about how your original application built.

    Can you attach the original CCSv3 project file?

    Steve

  • Here is my ccv3.2 pjt:

    ; Code Composer Project File, Version 2.0 (do not modify or remove this line)

    [Project Settings]
    ProjectDir="C:\lteStuff\Archive\2011_12_13_faa_drop\Lte\Build\"
    ProjectType=Executable
    CPUFamily=TMS320C64XX
    Tool="Compiler"
    Tool="CustomBuilder"
    Tool="DspBiosBuilder"
    Tool="Linker"
    Config="DSK6482"
    Config="Stingray3"

    [Source Files]
    Source="..\Src\Control\main.cpp"
    Source="..\Src\Control\MsgFilter.cpp"
    Source="..\Src\Control\SystemEventManager.cpp"
    Source="..\Src\DSKTest\CommandControlPort.cpp"
    Source="..\Src\DSKTest\DiagnosticConsole.c"
    Source="..\Src\DSKTest\dsk6455_junk.c"
    Source="..\Src\DSKTest\Ethernet.cpp"
    Source="..\Src\DSKTest\Hpi2Tcp.cpp"
    Source="..\Src\Hardware\Ad5641.cpp"
    Source="..\Src\Hardware\Ad7991.cpp"
    Source="..\Src\Hardware\C64xDma.cpp"
    Source="..\Src\Hardware\C64xEmif.cpp"
    Source="..\Src\Hardware\C64xGpio.cpp"
    Source="..\Src\Hardware\C64xI2C.cpp"
    Source="..\Src\Hardware\C64xMcBsp.cpp"
    Source="..\Src\Hardware\C64xMcBsp0.cpp"
    Source="..\Src\Hardware\C64xMcBsp1.cpp"
    Source="..\Src\Hardware\C64xPll.cpp"
    Source="..\Src\Hardware\C64xProcessor.cpp"
    Source="..\Src\Hardware\C64xSerialPort.cpp"
    Source="..\Src\Hardware\Cy8c9560a.cpp"
    Source="..\Src\Hardware\DspInterrupt.cpp"
    Source="..\Src\Hardware\EeProm.cpp"
    Source="..\Src\Hardware\ErrorReporter.cpp"
    Source="..\Src\Hardware\ExternalRam.cpp"
    Source="..\Src\Hardware\Fpga.cpp"
    Source="..\Src\Hardware\Hardware.cpp"
    Source="..\Src\Hardware\Lms6002d.cpp"
    Source="..\Src\Hardware\RefOsc1PpsAlgorithm.cpp"
    Source="..\Src\Hardware\RfCard.cpp"
    Source="..\Src\Hardware\Si5338.cpp"
    Source="..\Src\LteHardware\LteHardware.cpp"
    Source="..\Src\LteHardware\SelfTest.cpp"
    Source="..\Src\LTELIB_Override\table_sin_cos.c"
    Source="..\Src\LteUtil\BitBufReadUtil.cpp"
    Source="..\Src\LteUtil\BitBufWriteUtil.cpp"
    Source="..\Src\LteUtil\EarfcnUtil.cpp"
    Source="..\Src\LteUtil\FftUtil.cpp"
    Source="..\Src\LteUtil\LteDebugMenu.cpp"
    Source="..\Src\LteUtil\LteUtil.cpp"
    Source="..\Src\LteUtil\TBSizeUtil.cpp"
    Source="..\Src\NeoKernel\DspMbx.cpp"
    Source="..\Src\NeoKernel\DspMem.cpp"
    Source="..\Src\NeoKernel\DspSem.cpp"
    Source="..\Src\NeoKernel\DspTsk.cpp"
    Source="..\Src\NeoKernel\NeoBuild.cpp"
    Source="..\Src\NeoKernel\NeoMbx.cpp"
    Source="..\Src\NeoKernel\NeoQue.cpp"
    Source="..\Src\NeoKernel\NeoSys.cpp"
    Source="..\Src\NeoKernel\NeoTime.cpp"
    Source="..\Src\NeoKernel\NeoTimer.cpp"
    Source="..\Src\NeoKernel\NeoTimerManager.cpp"
    Source="..\Src\NeoKernel\NeoVersion.cpp"
    Source="..\Src\NeoKernel\Observer.cpp"
    Source="..\Src\NeoKernel\ObserverNode.cpp"
    Source="..\Src\NeoKernel\Queue.cpp"
    Source="..\Src\NeoKernel\QueueNode.cpp"
    Source="..\Src\NeoKernel\Subject.cpp"
    Source="..\Src\NeoKernel\TimeUnit.cpp"
    Source="..\Src\NeoKernel\TypeUtils.cpp"
    Source="..\Src\NeoProtocol\Application.cpp"
    Source="..\Src\NeoProtocol\Layer.cpp"
    Source="..\Src\NeoProtocol\LayerGroup.cpp"
    Source="..\Src\NeoProtocol\LayerId.cpp"
    Source="..\Src\NeoProtocol\MsgTrx.cpp"
    Source="..\Src\NeoProtocol\MsgTrxNeo.cpp"
    Source="..\Src\NeoProtocol\Physical.cpp"
    Source="..\Src\NeoProtocol\PhysicalHpi.cpp"
    Source="..\Src\NeoProtocol\ProtocolManager.cpp"
    Source="..\Src\NeoProtocol\ProtocolStack.cpp"
    Source="..\Src\NeoProtocol\Transaction.cpp"
    Source="..\Src\NeoProtocol\Transport.cpp"
    Source="..\Src\NeoProtocol\TransportNeo.cpp"
    Source="..\Src\Protocol\Bcch.cpp"
    Source="..\Src\Protocol\Dci.cpp"
    Source="..\Src\Protocol\DciFormat0.cpp"
    Source="..\Src\Protocol\DciFormat1A.cpp"
    Source="..\Src\Protocol\DciFormat1C.cpp"
    Source="..\Src\Protocol\DirectedSurveyMgr.cpp"
    Source="..\Src\Protocol\DownlinkScheduler.cpp"
    Source="..\Src\Protocol\LteLayer2.cpp"
    Source="..\Src\Protocol\LteLayer3.cpp"
    Source="..\Src\Protocol\LteQueue.cpp"
    Source="..\Src\Protocol\Mac.cpp"
    Source="..\Src\Protocol\ProtocolLayer.cpp"
    Source="..\Src\Protocol\Rach.cpp"
    Source="..\Src\Protocol\Rlc.cpp"
    Source="..\Src\Protocol\UEList.cpp"
    Source="..\Src\Protocol\UplinkScheduler.cpp"
    Source="..\Src\Protocol\UserEquipment.cpp"
    Source="..\Src\SigProc\ChannelScan\Algorithms\CPPeakSearch.cpp"
    Source="..\Src\SigProc\ChannelScan\Algorithms\DelayCorrelateRecursive.cpp"
    Source="..\Src\SigProc\ChannelScan\ChannelScanAlgorithm.cpp"
    Source="..\Src\SigProc\ChannelScan\CPOffsetList.cpp"
    Source="..\Src\SigProc\ChannelScan\CPSearcher.cpp"
    Source="..\Src\SigProc\ChannelScan\ENodeBInfoList.cpp"
    Source="..\Src\SigProc\ChannelScan\PssList.cpp"
    Source="..\Src\SigProc\ChannelScan\PssSearcher.cpp"
    Source="..\Src\SigProc\ChannelScan\RxMeasAlgorithm.cpp"
    Source="..\Src\SigProc\ChannelScan\SssList.cpp"
    Source="..\Src\SigProc\ChannelScan\SssSearcher.cpp"
    Source="..\Src\SigProc\ChannelScan\UnitTest_CPSearcher.cpp"
    Source="..\Src\SigProc\ChannelScan\UnitTest_RxMeasAlgorithm.cpp"
    Source="..\Src\SigProc\ChannelScanManager.cpp"
    Source="..\Src\SigProc\DlRxManager.cpp"
    Source="..\Src\SigProc\DownlinkRx\Algorithms\DecimateAndFilter.cpp"
    Source="..\Src\SigProc\DownlinkRx\Algorithms\UnitTest_DecimateAndFilter.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxAcqAlgorithm.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxAcqFreq.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxAcqSss.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxAcqTime.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxFineTimingAlgorithm.cpp"
    Source="..\Src\SigProc\DownlinkRx\DlRxSubframeRxAlgorithm.cpp"
    Source="..\Src\SigProc\DownlinkRx\PcfichDemod.cpp"
    Source="..\Src\SigProc\DownlinkRx\PdcchDemod.cpp"
    Source="..\Src\SigProc\DownlinkRx\PdschDemod.cpp"
    Source="..\Src\SigProc\DownlinkRx\PssFd.cpp"
    Source="..\Src\SigProc\DownlinkRx\UnitTest_DlRxFineTimingAlgorithm.cpp"
    Source="..\Src\SigProc\DownlinkRx\UnitTest_PcfichDemod.cpp"
    Source="..\Src\SigProc\DownlinkRx\UnitTest_PdcchDemod.cpp"
    Source="..\Src\SigProc\DownlinkRx\UnitTest_PdschDemod.cpp"
    Source="..\Src\SigProc\DownlinkTx\DlMapperForCntrlCh.cpp"
    Source="..\Src\SigProc\DownlinkTx\DlTxAlgorithm.cpp"
    Source="..\Src\SigProc\DownlinkTx\LteConvCoder.cpp"
    Source="..\Src\SigProc\DownlinkTx\PbchGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\PcfichGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\PdcchGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\PdschGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\PhichGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\PssGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\ReferenceSignalGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\SssGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_DlMapperForCntrlCh.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_LteConvCoder.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_PbchGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_PcfichGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_PdcchGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_PdschGen.cpp"
    Source="..\Src\SigProc\DownlinkTx\UnitTest_PhichGen.cpp"
    Source="..\Src\SigProc\ENodeBManager.cpp"
    Source="..\Src\SigProc\FpgaDataThread.cpp"
    Source="..\Src\SigProc\IQSampleCollector.cpp"
    Source="..\Src\SigProc\IQSampleDistributor.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\Algorithms\FreqRotate.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\Algorithms\PssPeakSearch.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\CplxUtil.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\DeLayerMapPrecoder.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\DlChanEst.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\DlDemapperForCntrlCh.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\DlMapDemapper.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\DlMapDemapperForPdsch.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\LteInterleaver.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\LteSigProcAlgPool.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\Mib.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\PbchDemod.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\PbchReceiver.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\RefSignalUtil.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\SoftSliceUtil.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\SssRxUtil.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\TCP2_EDMA.c"
    Source="..\Src\SigProc\LteSigProcCommon\TurboDecode.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_DeLayerMapPrecoder.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_DlDemapperForCntrlCh.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_DlMapDemapperForPdsch.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_LteInterleaver.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_Mib.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_TurboDecoder.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\UnitTest_ViterbiDecoder.cpp"
    Source="..\Src\SigProc\LteSigProcCommon\ViterbiDecoder.cpp"
    Source="..\Src\SigProc\RxProcThread.cpp"
    Source="..\Src\SigProc\SignalProcLayer.cpp"
    Source="..\Src\SigProc\TxProcThread.cpp"
    Source="..\Src\SigProc\UplinkRx\PrachDetectAlgorithm.cpp"
    Source="..\Src\SigProc\UplinkRx\PucchRxAlgorithm.cpp"
    Source="..\Src\SigProc\UplinkRx\PuschRxAlgorithm.cpp"
    Source="..\Src\SigProc\UplinkRx\UEUlSchedList.cpp"
    Source="..\Src\Ti\ndk\lib\c64plus\hal\hal_ser_stub.lib"
    Source="..\Src\Ti\ndk\lib\c64plus\hal\hal_timer_bios.lib"
    Source="..\Src\Ti\ndk\lib\c64plus\netctrl.lib"
    Source="..\Src\Ti\ndk\lib\c64plus\nettool.lib"
    Source="..\Src\Ti\ndk\lib\c64plus\os.lib"
    Source="..\Src\Ti\ndk\lib\c64plus\stk.lib"
    Source="..\Src\Ti\ndk\lib\hal\dsk6455\hal_eth_c6455.lib"
    Source="..\Src\Ti\ndk\lib\hal\dsk6455\hal_userled_c6455.lib"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusDSPLIB_v100\lib\dsp64plus.lib"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusDSPLIB_v100\support\fft\gen_twiddle_fft16x16.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusDSPLIB_v100\support\fft\gen_twiddle_ifft16x16.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\lib\csl_3x_C6482_v3_00_10_01\csl_c6482.lib"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\chanDeint\LTELIB_chanDeint.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\Channel_Estimation_BPT\LTELIB_Ch_Est_BPT.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\Channel_Estimation_TD\LTELIB_Ch_Est_TD.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\CodeBlkSegmentRule\LTELIB_segmentationRule.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\CRC\LTELIB_crc.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\deRateMatchingCC\LTELIB_deRateMatchingCC.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DeRMSoftBitPos\LTELIB_deRMSoftBitPos.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\descrChanDeintDemux\LTELIB_demuxAckOrRank.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\descrChanDeintDemux\LTELIB_demuxDataCtrl.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\descrChanDeintDemux\LTELIB_descrChanDeintDemux.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\descrChanDeintDemux\LTELIB_zeroOutAck.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DFT_IDFT\LTELIB_DFT.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DFT_IDFT\LTELIB_DFT_init.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DFT_IDFT\LTELIB_IDFT.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFT\iw_512_le.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFT\w_1024_le.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFT\w_128_le.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFT\w_2048_le.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFT\w_512_le.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FFTShift\LTELIB_fftShift.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\FreqShift\LTELIB_FreqShift.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genCtcInterleaver\LTELIB_genCtcInterleaver.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genDLPSync\LTELIB_genDLPSync.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genDLRefSignal\LTELIB_genDLRefSignal.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genDLSSync\LTELIB_genDLSSync.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genPseudoRandSeq\LTELIB_genPseudoRandSeq.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genUL_PUSCH_demodRS\LTELIB_genUL_PUSCH_demodRS.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\LTELIB_bitProcUtil.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\MRCEqualizer\LTELIB_ulMrcEqualizer.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PRACHreceiver\LTELIB_prachMatchFilter.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PRACHreceiver\LTELIB_prachPeakSearch.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PRACHreceiver\LTELIB_prachPowerUpInit.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PRACHreceiver\LTELIB_prachPreambleInit.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PRACHreceiver\LTELIB_prachPreProc.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchDecodeF1.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchF1DTXthreshCalc.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchInit.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchInitFmt1.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchPreProcess.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PUCCHreceiver\LTELIB_pucchTables.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\RateMatching\LTELIB_rateMatching.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\RateMatching\LTELIB_rateMatchOutputCopy.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\RateMatchingCC\LTELIB_rateMatching_CC.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\ScramblerConstMapper\LTELIB_scrConstMapper.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\SoftDeScrambler\LTELIB_SoftDeScrambler.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\SoftSlicer\LTELIB_softSlicer.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\SubBlkDeint\LTELIB_subBlkDeint.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\tcp2DataPrep\LTELIB_tcp2DataPrep.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\TurboEncoder\LTELIB_turboEncoder.c"
    Source="..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\TurboEncoder\LTELIB_unpackbits.c"
    Source="..\Src\Utility\Crc16.cpp"
    Source="..\Src\Utility\DebugTextString.cpp"
    Source="..\Src\Utility\DspDebugMenu.cpp"
    Source="..\Src\Utility\ExtMemPool.cpp"
    Source="..\Src\Utility\Fifo.cpp"
    Source="..\Src\Utility\FifoBuffer.cpp"
    Source="..\Src\Utility\Identifier.cpp"
    Source="..\Src\Utility\LogUtil.cpp"
    Source="..\Src\Utility\Manager.cpp"
    Source="..\Src\Utility\StateMachine.cpp"
    Source="..\Src\Utility\StateMachineNode.cpp"
    Source="..\Src\Utility\Utilities.cpp"
    Source="LteDsp.tcf"
    Source="LteDsp.cmd"

    [Generated Files]
    Source="LteDspcfg.s62"
    Source="LteDspcfg_c.c"

    ["DSK6482" Settings]
    InitialBuildCmd=del *.s62 /F
    InitialBuildCmd=del *.h62 /F
    FinalBuildCmd=del *.cdb /F

    ["Stingray3" Settings]
    InitialBuildCmd=del *.s62 /F
    InitialBuildCmd=del *.h62 /F
    FinalBuildCmd=del *.cdb /F
    FinalBuildCmd=makesrec

    ["Compiler" Settings: "DSK6482"]
    Options=-g -o3 -fr"$(Proj_dir)\..\bin\DSK6482" -i"$(BIOS_INSTALL_DIR)\" -i"$(Proj_dir)\..\Src\LTELIB_Override" -i"$(Proj_dir)\..\Src\NeoKernel" -i"$(Proj_dir)\..\Src\NeoProtocol" -i"$(Proj_dir)\..\Src\DSKTest" -i"$(Proj_dir)\..\Src\Utility" -i"$(Proj_dir)\..\Src\Hardware" -i"$(Proj_dir)\..\Src\FrameworkMessages" -i"$(Proj_dir)\..\Src\LteUtil" -i"$(Proj_dir)\..\Src\Control" -i"$(Proj_dir)\..\Src\LteHardware" -i"$(Proj_dir)\..\Src\Protocol" -i"$(Proj_dir)\..\Src\ProtocolMessages" -i"$(Proj_dir)\..\Src\SigProc" -i"$(Proj_dir)\..\Src\SigProcMessages" -i"$(Proj_dir)\..\Src\SigProc\LteSigProcCommon" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrCommon\api\c64plus" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PuschUciDecoder" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\deRateMatchingCC" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\CRC" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusDSPLIB_v100\include" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\csl_3x_C6482_v3_00_10_01\api" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\tcp2DataPrep" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusBEDSPLIB_v100\support\fft" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DFT_IDFT" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genPseudoRandSeq" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\chanDeint" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\SoftDeScrambler" -i"$(Proj_dir)\..\Src\Ti\ndk\inc" -i"$(Proj_dir)\..\Src\Ti\csl\inc" -i"$(Proj_dir)\..\Src\CSN" -i"$(Proj_dir)\..\Src\CSN\LTE" -i"$(Proj_dir)\..\Src\CSN\src" -d"_DSK_BUILD" -d"_USE_ETHERNET" -d"_cplusplus" -d"_DSP" -d"TI_DSP_64X" -d"CACHE_LARGE" -d"COMPOSER_64X" -d"VCP_IN_USE" -d"_SNR_" -ms0 -mv6400+

    ["Compiler" Settings: "Stingray3"]
    Options=-g -o3 -fr"$(Proj_dir)\..\bin\Stingray3" -i"$(Proj_dir)\..\Src\LTELIB_Override" -i"$(Proj_dir)\..\Src\NeoKernel" -i"$(Proj_dir)\..\Src\NeoProtocol" -i"$(Proj_dir)\..\Src\DSKTest" -i"$(Proj_dir)\..\Src\Utility" -i"$(Proj_dir)\..\Src\Hardware" -i"$(Proj_dir)\..\Src\FrameworkMessages" -i"$(Proj_dir)\..\Src\LteUtil" -i"$(Proj_dir)\..\Src\Control" -i"$(Proj_dir)\..\Src\LteHardware" -i"$(Proj_dir)\..\Src\Protocol" -i"$(Proj_dir)\..\Src\ProtocolMessages" -i"$(Proj_dir)\..\Src\SigProc" -i"$(Proj_dir)\..\Src\SigProcMessages" -i"$(Proj_dir)\..\Src\SigProc\LteSigProcCommon" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrCommon\api\c64plus" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\PuschUciDecoder" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\deRateMatchingCC" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\CRC" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusDSPLIB_v100\include" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\csl_3x_C6482_v3_00_10_01\api" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\tcp2DataPrep" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\lib\C64xplusBEDSPLIB_v100\support\fft" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\DFT_IDFT" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\genPseudoRandSeq" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\chanDeint" -i"$(Proj_dir)\..\Src\TiLteLib\cixcvrProductEC\LTE\LTElib\SoftDeScrambler" -i"$(Proj_dir)\..\Src\Ti\ndk\inc" -i"$(Proj_dir)\..\Src\Ti\csl\inc" -i"$(Proj_dir)\..\Src\CSN" -i"$(Proj_dir)\..\Src\CSN\LTE" -i"$(Proj_dir)\..\Src\CSN\src" -d"_cplusplus" -d"_DSP" -d"TI_DSP_64X" -d"CACHE_LARGE" -d"COMPOSER_64X" -d"VCP_IN_USE" -d"_SNR_" -ms0 -mv6400+

    ["DspBiosBuilder" Settings: "DSK6482"]
    Options=-Dconfig.importPath="..\\src\\TI_DSK" -DIncludeNDK=1

    ["DspBiosBuilder" Settings: "Stingray3"]
    Options=-Dconfig.importPath="..\\src\\TI_DSK" -DIncludeNDK=0

    ["Linker" Settings: "DSK6482"]
    Options=-m"$(Proj_dir)\..\bin\DSK6482\LteDsp.map" -o"$(Proj_dir)\..\bin\DSK6482\LteDsp.out" -w -x --ram_model

     

  • Bryan,

    Thanks for attaching the project.  I still find it strange that these errors didn't happen when building the above project, since it also links both the 6455 hal library and the 6482 CSL library.

    ----

    I found some more information on this issue ... looks like someone has run into it before.  Do you have a "csl_6455.lib" file?  From the below, it seems that the 6455 version of the CSL did not define these MDIO functions.  Another point to take from the below is that you should stick with the NDK driver versions of the MDIO* functions as these are tried and true with the NDK.

    The issue here is that the linker finds that MDIO routines are defined multiple times – both in <hal_eth_6455.lib> and in the library <csl_6482.lib>.

     

    "This seems to be an issue that comes from the entire CSL functional/register entanglement; the C6455 only had register layer CSL and does not have any pre-defined initialization routines, but C6482 has a functional layer CSL with everything. When the C6482 CSL is included, it carries over all the initialization routines.

     

    In this case you can try two things:

    -          Include all the C6455 HAL device driver source code into your customer project. In this case the source files would override any calls from the C6482 CSL library;

    -          Comment out all the conflicting functions in the file <c6455_mdio.c> and rebuild the HAL libraries using the newer CSL library. The command line batch file would be broken, but you can create a project in CCS to do this for you;

     

    The first method will maintain all the settings and parameters from the original NSP HAL device driver, therefore you would keep the proven functionality. In other words, your customer should try the second method at their own risk.

     

    I haven’t tested step-by-step all the procedures above, but I don’t see a reason why they shouldn’t work. Anyways, please let me know their feedback, ok?
    "

    I would also recommend trying the first method.  The only issue with that is your version of the NDK does not have driver sources.  So, I will recommend that you get the latest version of the 6455 Ethernet driver.  It's found here, within the NDK 2.0.0 product:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ndk/index.html

    Then you can try linking the NDK 2.0.0 version of the Ethernet driver into your app and also copying the sources as recommended above, to override the CSL defined MDIO functions.

    Steve

  • Should I go with the newest NDK or just 2.0.0?

  • I went with ndk_2_0_0.  now I get the error that it can not find stk.lib.  Can I use the old one?

  • Bryan,

    Yes, you should still stick with the old (1.92) NDK stk.lib for now.  I only meant to use the driver from NDK 2.0.0, so that you can use the sources for it in your project.

    Having said that, you may want to consider moving to a later NDK, as there have been many releases since 1.92 containt bug fixes and new features.  But, I would just consider this for now.  First, I think it's better not to change too much at once ... just try the new driver code and keep using the old NDK and verify that everything is working, one step at a time.

    Steve

  • I'm getting closer.

    I now have this error.  Where do I get the ECM?

    <Linking>

    undefined first referenced

    symbol in file

    --------- ---------------

    _ECM_dispatchTab C:/ti/bios_5_41_11_38/packages/ti/bios/lib/bios.a64P<ecm_dispatchPlug.o64P>

    error #10234-D: unresolved symbols remain

    error #10010: errors encountered during linking;

  • Another thread with the same problem noted that the wrong xdc (whatever that is) path was used.

    I am using bios 5.41.11.38 and my system env variable XDC_CG_ROOT is set to /ti/xdctools_3_22_04_46

    Where is my appropriate xdc tools?

  • Bryan Hehn,

    Which thread did you see that in?  Can you please post the link to it here?

    Your XDC tools installation is probably in C:/ti/xdctools_3_22_04_46.

    You can verify the version and location by inspecting the build output of your program.  Actually, can you post the full build output of your program here? It should also display the XDCPATH information.

    Steve

  • Bryan,

    Actually another customer had the same question earlier today.

    Can you make sure that your *.tcf file has the following code?

    bios.ECM.ENABLE = 1;

    Steve

  • I can now compile!!!

    Now my problem is I can not connect to my target because there is no configuration file for the DSK tci6482.  I guess I'll open a new thread under code composer.

  • OK - I take it back.  It did compile once but I connected to the target and it did not run correctly.  I tried to recompile and now I get linker errors:

    <Linking>

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 449: error #10099-D:

    placement fails for object ".trace", size 0x200 (page 0). Available ranges:

    IRAM size: 0x1f75f0 unused: 0x224 max hole: 0x1ec

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 483: error #10099-D:

    run placement fails for object ".pip", size 0xc8 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0xec max hole: 0xb4

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 372: error #10099-D:

    run placement fails for object ".mbx", size 0x6c (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x7c max hole: 0x44

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 398: error #10099-D:

    placement fails for object ".gblinit", size 0x64 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x7c max hole: 0x44

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 316: error #10099-D:

    run placement fails for object ".swi", size 0x58 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x7c max hole: 0x44

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 473: error #10099-D:

    placement fails for object ".log", size 0x30 (page 0). Available ranges:

    IRAM size: 0x1f75f0 unused: 0x40 max hole: 0x1e

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 336: error #10099-D:

    run placement fails for object ".idl", size 0x20 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x40 max hole: 0x1e

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 294: error #10099-D:

    run placement fails for object ".prd", size 0x20 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x40 max hole: 0x1e

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 388: error #10099-D:

    run placement fails for object ".sys", size 0x10 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x18 max hole: 0xc

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 402: error #10099-D:

    placement fails for object ".trcdata", size 0xc (page 0). Available ranges:

    IRAM size: 0x1f75f0 unused: 0xc max hole: 0x8

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 439: error #10099-D:

    placement fails for object ".args", size 0x4 (page 0). Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 376: error #10099-D:

    run placement fails for object ".mem", size 0x4 (page 0). Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 455: error #10099-D:

    run placement fails for object ".stack", size 0x2000 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 416: error #10099-D:

    run placement fails for object ".TSK_commandPort$stk", size 0x1000 (page 0).

    Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 412: error #10099-D:

    run placement fails for object ".TSK_ethernet$stk", size 0x1000 (page 0).

    Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 406: error #10099-D:

    placement fails for object ".rtdx_text", size 0xfc0 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 396: error #10099-D:

    placement fails for object ".switch", size 0xb94 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 400: error #10099-D:

    placement fails for object ".sysinit", size 0x620 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 426: error #10099-D:

    run placement fails for object ".rtdx_data", size 0x4f4 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 408: error #10099-D:

    run placement fails for object ".TSK_idle$stk", size 0x400 (page 0).

    Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 380: error #10099-D:

    run placement fails for object ".cio", size 0x120 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 421: error #10099-D:

    run placement fails for object ".LOG_system$buf", size 0x100 (page 0).

    Available ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 432: error #10099-D:

    run placement fails for object ".hst0", size 0x100 (page 0). Available

    >> Compilation failure

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../Build/./LteDspcfg.cmd", line 424: error #10099-D:

    run placement fails for object ".trace$buf", size 0x100 (page 0). Available

    ranges:

    IRAM size: 0x1f75f0 unused: 0x4 max hole: 0x2

    error #10010: errors encountered during linking;

    "C:/svn/uav_working/software/2011_12_13_faa_drop/Lte/Build/LteDsp/../../bin/

    DSK6482/LteDsp.out" not built

    gmake: ***

  • I see one issue.

    I have an old map file form the ccv3.2

    These are the largest sections from the hal_eth library

    ccv3.2:

    size

    000001dc     hal_eth_c6455.lib : llpacket.o64P (.far)

    ccv5

    00001620     hal_eth_c6455.lib : ethdriver.o64P (.far)

  • Bryan,

    I think you were using a different version of the NDK with your CCS 3.2 setup, vs. in your CCSv5 setup, is that true?

    Bryan Hehn said:
    000001dc     hal_eth_c6455.lib : llpacket.o64P (.far)

    This is the "old" driver design called "LL architecture".  It's been replaced by NIMU architecture in newer NDK and NSPs.

    Bryan Hehn said:
    00001620     hal_eth_c6455.lib : ethdriver.o64P (.far)

    This one is probably using the newer NIMU design.

    So I think that explains this difference you are seeing.

    Steve

  • Bryan,

    These errors are indicating that your IRAM memory segment is all used up.  You should try placing some of these sections shown in the error messages (e.g. .trace) into different memory segments.  You can do this using the BIOS config tool.

    Please check out this post since it's almost exactly the same issue:

    http://e2e.ti.com/support/embedded/bios/f/355/p/184869/667442.aspx#667442

    Steve

  • I don't have SARAM and DARAM defined.

    I am using the TCI6482 Eval Module.  My memory map puts everything into IRAM.  There is external ram (DDR2) .  What are some sections I could map into DDR2? 

     By the way – this is a legacy project that I did not create.  I’m just trying to port it to ccv5.

  • Bryan,

    You can start by placing the sections that you are seeing in the error messages into DDR2, in order to get everything building.

    However, DDR2 is external memory and hence it is slower than IRAM.  So, you may want to consider making some optimizations by placing/swapping sections that need faster access times from external DDR2 into internal IRAM.

    Steve