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.

Problems linking UIA Tutorial 3

Other Parts Discussed in Thread: CCSTUDIO, TMS320C6678

Hi,

I'm just trying to get through the System Analyzer tutorial and I hang at step 3.

I use the project from http://processors.wiki.ti.com/index.php/TMS320C6678L_Build_Configuration for C6678 EVM

Building works fine after I set up the correct path, but during linking I get the following ERROR:

'Building target: StairstepEthernet_6678.out'
'Invoking: C6000 Linker'
"C:/ti/ccsv5/tools/compiler/c6000_7.3.8/bin/cl6x" -mv6600 -g --define=_INCLUDE_NIMU_CODE --define=C66_PLATFORMS --define=_NDK_EXTERN_CONFIG --display_error_number --diag_warning=225 --abi=eabi -z -m"StairstepEthernet_6678.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.8/lib" -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.8/include" --reread_libs --rom_model -o "StairstepEthernet_6678.out" -l"./configPkg/linker.cmd"  "./stairstep.obj" "./resourcemgr.obj" "./platform_osal.obj" "./netCtrlCallbackFns.obj" "./evmInit.obj" -l"libc.a"
<Linking>
"./configPkg/linker.cmd", line 301: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 301: error #10265: no valid memory range(NULL)
   available for placement of "systemHeap"
"./configPkg/linker.cmd", line 301: error #10099-D: run placement fails for
   object "systemHeap", size 0xf4240 (page 0)
"./configPkg/linker.cmd", line 272: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 272: error #10265: no valid memory range(NULL)
   available for placement of ".text"
"./configPkg/linker.cmd", line 272: error #10099-D: placement fails for object
   ".text", size 0x5af80 (page 0)
"./configPkg/linker.cmd", line 289: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 289: error #10265: no valid memory range(NULL)
   available for placement of ".far"
"./configPkg/linker.cmd", line 289: error #10099-D: run placement fails for
   object ".far", size 0x1e928 (page 0)
"./configPkg/linker.cmd", line 284: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 284: error #10265: no valid memory range(NULL)
   available for placement of ".const"
"./configPkg/linker.cmd", line 284: error #10099-D: placement fails for object
   ".const", size 0xa95e (page 0)
"./configPkg/linker.cmd", line 303: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 303: error #10265: no valid memory range(NULL)
   available for placement of "platform_lib"
"./configPkg/linker.cmd", line 303: error #10099-D: run placement fails for
   object "platform_lib", size 0x1370 (page 0)
"./configPkg/linker.cmd", line 275: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 275: error #10265: no valid memory range(NULL)
   available for placement of "GROUP_1"
"./configPkg/linker.cmd", line 275: error #10099-D: run placement fails for
   object "GROUP_1", size 0x29f (page 0)
"./configPkg/linker.cmd", line 285: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 285: error #10099-D: run placement fails for
   object ".data", size 0x0 (page 0)
"./configPkg/linker.cmd", line 288: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 288: error #10099-D: run placement fails for
   object ".sysmem", size 0x0 (page 0)
"./configPkg/linker.cmd", line 302: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 302: error #10099-D: run placement fails for
   object ".code", size 0x0 (page 0)
"./configPkg/linker.cmd", line 304: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 304: error #10099-D: run placement fails for
   object ".gBuffer", size 0x0 (page 0)
"./configPkg/linker.cmd", line 305: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 305: error #10099-D: run placement fails for
   object ".far:WEBDATA", size 0x0 (page 0)
"./configPkg/linker.cmd", line 308: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 308: error #10099-D: placement fails for object

   "xdc.meta", size 0x128 (page 0)
>> Compilation failure
"./configPkg/linker.cmd", line 281: warning #10097: memory range not found: DDR
   on page 0
"./configPkg/linker.cmd", line 281: error #10265: no valid memory range(NULL)
   available for placement of ".cinit"
"./configPkg/linker.cmd", line 281: error #10099-D: placement fails for object
   ".cinit", size 0xf19 (page 0)

 undefined        first referenced                                                      
  symbol              in file                                                           
 ---------        ----------------                                                      
 Osal_paMtCsEnter C:\ti\pdk_C6678_1_1_1_4\packages\ti\drv\pa\lib\ti.drv.pa.ae66<pa.oe66>
 Osal_paMtCsExit  C:\ti\pdk_C6678_1_1_1_4\packages\ti\drv\pa\lib\ti.drv.pa.ae66<pa.oe66>

error #10234-D: unresolved symbols remain
ELFLNK/build.c:2545:internal fatal error #10251:
   ("xdc.meta:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
stairstep_Ethernet_pe66.oe66")

INTERNAL ERROR: C:\ti\ccsv5\tools\compiler\c6000_7.3.8\bin\lnk6x.exe aborted


This is a serious problem.  Please contact Customer
Support with this message and a copy of the input file
and help us to continue to make the tools more robust.:

  • Hi Fabian,

       What versions are you using of the following?

    • CCStudio
    • UIA
    • MCSDK
    • PDK
    • Sys/Bios
    • XDCtools
    • NDK

    Also, what are the target and platform settings in your RTSC Build Settings (e.g. see http://processors.wiki.ti.com/images/6/66/StairstepEthernet_RTSC.gif )

    I'd like to configure my development environment in the same way that you have yours set up so that I can try to reproduce this error.

    Thanks

       Brian

  • I've just made a full update of CCS an all its components so it gets a little bit better. But I still get linking errors.

    Now  I'm using:

    • CCS: 5.2.0.00069
    • UIA: 1.1.0.04
    • MCSDK 2.1.1.4
    • PDK: MCSDK PDK TMS320C6678  1.1.1.4
    • Sys/Bios: 6.33.6.50
    • XDCtools 3.23.4.60
    • NDK: 2.21.1.38
    • Inter-processor Communication: 1.24.3.32
    • Target: ti.targets.elf.C66
    • Platform: ti.platforms.evm6678

    I changed the Section memory mapping in the .cfg file, so the "DDR" memory is now called "DDR3" as in the platform. So I got rid of the placement errors.

    But I still got 2 undifended references:


    'Building target: StairstepEthernet_6678.out'
    'Invoking: C6000 Linker'
    "C:/ti/ccsv5/tools/compiler/c6000_7.3.8/bin/cl6x" -mv6600 -g --define=_INCLUDE_NIMU_CODE --define=C66_PLATFORMS --define=_NDK_EXTERN_CONFIG --display_error_number --diag_warning=225 --abi=eabi -z -m"StairstepEthernet_6678.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.8/lib" -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.8/include" --reread_libs --rom_model -o "StairstepEthernet_6678.out" -l"./configPkg/linker.cmd"  "./stairstep.obj" "./resourcemgr.obj" "./platform_osal.obj" "./netCtrlCallbackFns.obj" "./evmInit.obj" -l"libc.a"
    <Linking>

     undefined        first referenced                                                      
      symbol              in file                                                           
     ---------        ----------------                                                      
     Osal_paMtCsEnter C:\ti\pdk_C6678_1_1_1_4\packages\ti\drv\pa\lib\ti.drv.pa.ae66<pa.oe66>
     Osal_paMtCsExit  C:\ti\pdk_C6678_1_1_1_4\packages\ti\drv\pa\lib\ti.drv.pa.ae66<pa.oe66>

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "StairstepEthernet_6678.out"
       not built

    >> Compilation failure
    gmake: *** [StairstepEthernet_6678.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • Hi Fabian,

        There's another E2E post which deals with those same unresolved symbols: http://e2e.ti.com/support/embedded/bios/f/355/p/195017/697120.aspx .  The part that might be relevant is discussed in http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/192480/690020.aspx#690020 .  This basically covers some of the problems when using different platform files. 

    It looks like you are using ti.platforms.evm6678 as your platform file instead of the platform file specified in the tutorial - custom.hpdspua.evmc6678l.  Could you try exactly following each of the steps specified in http://processors.wiki.ti.com/index.php/TMS320C6678L_Build_Configuration and let me know if it clears up the linking problem?

    Thanks

      Brian

     

  • Thanks for the reply,

    but I cannot follow the steps exactly, because I don't have PDK version 1.0.0.15 only 1.0.0.17 and also I don't have System Analyzer version 1.0.3.25 only 1.1.0.04.

    The  platform custom.hpdspua.evmc6678l is not available in PDK version 1.0.0.17.

    And when I update all used repositories to newest version and I set the platform to custom.hpdspua.evmc6678l I get the Errors I've posted above.

    I expected the tool versions to be compatible with earlier versions. Do you have any workarounds for me to get it working with the newest versions I posted?

    Regards,

    Fabian

  • OK I fixed the problem myself.

    The error is in the file platform_osal.c that comes with the demo zip-package, not in any compiler or tool-chain version.

    You have to add the following lines toe platform_osal.c:

    ========================================================================

    Ptr Osal_paMtCsEnter (void)
    {
        /*
         * Current demos are not multi-threaded.
         */
        return NULL;
    }
    void Osal_paMtCsExit (Ptr CsHandle)
    {
        /*
         * Release multi-threaded / multi-process lock on this core.
         */
        return;
    }

    ========================================================================

    these two functions are completely missing and it seems to be that most of the functions in platform_osal.c are not implemented yet by TI but only exist as raw wrapper.

    @ TI: please fix the problem in the zip file provided by: http://processors.wiki.ti.com/index.php/TMS320C6678L_Build_Configuration

  • Ok I managed to build the project,  but when I try to run it I get a new error:

    Pa_create returned with error code -10
    Failed to initialize the Packet Accelerator

    Any idea what this means and how to solve it?

    I didn't change the source code except from the changes of my previous post

  • Solved!

    not only the platform_osal.c but also the resourcemgr.c in the zip-file from http://processors.wiki.ti.com/index.php/TMS320C6678L_Build_Configuration is wrong.

    I replaced both with the files from the hua demo from MCSDK now it works.

    @ TI Support: Please bring your messed up files up to date

    Thanks

  • Fabian,

        Thank you!  You're right on.

    The platform_osal.c and resourcemgr.c files in http://processors.wiki.ti.com/images/a/a0/StairstepEthernet_6678.zip have been updated so that the tutorial project works with the latest MCSDK 2.1.1.4 release.  The following has also been added to the [http://processors.wiki.ti.com/index.php/TMS320C6678L_Build_Configuration Wiki instructions]  :

    NOTE: For MCSDK releases later than MCSDK 2.1.1.4, please use the platform_osal.c and resourcemgr.c files located in <MCSDK INSTALL DIR>\examples\ndk\helloWorld in your project instead of the ones that are in the StairstepEthernet_6678.zip file. (Special thanks to Fabian for his help).

    My apologies for the inconvenience this has caused.

    Regards,

       Brian