• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » BIOS » BIOS forum » Statically link and configure SYSLINK in a library
Share
BIOS
  • Forum
  • Announcements
Options
  • Subscribe via RSS

Statically link and configure SYSLINK in a library

Statically link and configure SYSLINK in a library

This question is answered
Dom Banger
Posted by Dom Banger
on Jul 25 2012 04:32 AM
Intellectual280 points

Hello,

i am trying to build a static DSP library for the DSP of an OMAP-L137 with CCS. The library uses SYSLINK for communication to the ARM processor. This library shall be used in a DSP application, which is build on a PC without a SYSLINK installation. Only the basic CCS installation (with e.g. BIOS and IPC) is present on this build PC.

Now my question: Is it possible to build this library in a way, so that SYSLINK is not required on the build platform, which builds the DSP application? And is it required to add the SYSLINK specific configuration to the *.cfg file when building the DSP application, or is it sufficient to have that *.cfg file during build of the library?

Best regards,

Dom

Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • janet
    Posted by janet
    on Jul 25 2012 14:02 PM
    Expert5315 points

    Dom,

    You may be able to do this if you are not using SysLink's RingIO or FrameQ.  Also, in the DSP side's .cfg file, you would normally have the line:

    xdc.useModule('ti.syslink.ipc.rtos.Syslink');

    This causes the causes the SysLink_attach() function to get called (code from ti/syslink/ipc/rtos/Syslink.xs):

    function module$use()
    {
        var Ipc;
        Ipc = xdc.useModule ('ti.sdo.ipc.Ipc');

        var fxn = new Ipc.UserFxn;
        fxn.attach = '&ti_syslink_ipc_rtos_Syslink_attach';
        fxn.detach = null;
        Ipc.addUserFxn(fxn, null);
    }

    In addition, these options are given to the linker (from ti/syslink/ipc/rtos/linkcmd.xdt):

        --dynamic
        --retain=_Ipc_ResetVector

    So you would need to set these yourself.  We haven't tried out this build scenario, as this is not a typical use case.  Is there any particular reason for not installing SysLink on the build platform?

    Best regards,

        Janet

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Dom Banger
    Posted by Dom Banger
    on Jul 26 2012 02:57 AM
    Intellectual280 points

    Janet,

    thanks for your reply. First of all, the scenario is used to buil a kind of communication library and to deliver it to e.g. a customer. So the customer does not have to deal with SYSLINK and can focus on other things on the DSP. So it shall ease the install and build process of the customer.

    I tried to use your suggestions above and i think on the application build it seems to work. But i think i have to ensure that the afforded sysmbols are linked to the library now, because they cannot be linked duting the application link process. I get a linking error when building the application:

    <Linking>

     undefined                          first referenced                                                                                           
      symbol                                in file                                                                                                
     ---------                          ----------------                                                                                           
     ti_syslink_ipc_rtos_Syslink_attach /home/charlie/workspace_v5_2/TestCcmComWithoutSyslink/Release/configPkg/package/cfg/CCM-221_DSP_pe674.oe674

    error #10234-D: unresolved symbols remain

    In my opinion this is a result of missing linking syslink components to the library, am i right? So which component do i need to additionally link to my labrary to have this symbol defined?

    Best regards,

    Dom

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • janet
    Posted by janet
    on Jul 26 2012 12:51 PM
    Expert5315 points

    Dom,

    That symbol is in ti.syslink.ipc.rtos.ae674 (located in ti/syslink/ipc/rtos/lib).

    Best regards,

        Janet

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Dom Banger
    Posted by Dom Banger
    on Jul 27 2012 07:53 AM
    Intellectual280 points

    Thanks Janet.

    I tried the following steps:

    - get the ti.syslink.ipc.rtos.a674 and copy it to my application build project in CCS

    - rename ti.syslink.ipc.rtos.a674 to ti.syslink.ipc.rtos.a

    - build the application, all symbols can be resolved now, so the linking error of my previous post is fixed

    Everything is fine until this step. But when i try to load this application from the ARM, the ARM hangs during Ipc_control(remoteProcId, Ipc_CONTROLCMD_STARTCALLBACK, NULL). When i go some steps backwards and allow the appliaction to link against SYSLINK itself by removing the steps you mentioned above, the appliaction runs fine.

    I do not know if my steps to link the application against ti.syslink.ipc.rtos.a674 are correct or do i have a different problem here?

    Best regards,

    Dom

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • janet
    Posted by janet
    on Jul 27 2012 11:23 AM
    Expert5315 points

    Dom,

    Maybe you can turn on SysLink trace to find the problem.  You can do this by:

        insmod syslink.ko TRACE=1 TRACEFAILURE=1 TRACECLASS=3

    Best regards,

        Janet

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Dom Banger
    Posted by Dom Banger
    on Jul 30 2012 03:20 AM
    Intellectual280 points

    Hello Janet,

    when the ARM hangs during DSP start process of "Ipc_CONTROLCMD_STARTCALLBACK" the trace prints "Ipc_attach: Ipc_procSyncStart failed!". I dont know whether this information is helpful. I reduced my ARM and DSP applications to simply load, start and stop the DSP but i have the same result. When using the standard way by adding SYSLINK to the application build the program works. When i use the way described above, the program hangs. Is there anything that we may have forgotten? I do not really know how to debug this problem at this point.

    Best regards,

    Dom

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • janet
    Posted by janet
    on Jul 30 2012 17:43 PM
    Verified Answer
    Verified by Dom Banger
    Expert5315 points

    Dom,

    Could you try adding:

    -eti_sysbios_family_c64p_Hwi0

    to your LDFLAGS?  I found this one in ti/syslink/ipc/rtos/linkcmd.xdt and I think that may be causing Ipc_attach() to fail.

    Best regards,

        Janet

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Dom Banger
    Posted by Dom Banger
    on Jul 31 2012 07:22 AM
    Intellectual280 points

    Janet,

    yes thats it. With a minor correction, i have used "-e_ti_sysbios_family_c64p_Hwi0" to define the etnry point. then my appliction links with the warning:

    <Linking>
    warning #10063-D: entry-point symbol other than "_c_int00" specified:
       "_ti_sysbios_family_c64p_Hwi0"
    Finished building target: CcmComExample.out

    which is OK (see http://processors.wiki.ti.com/index.php/Troubleshooting_SysLink_Build_Issues). Then the DSP application can successfully be loaded, started and stopped from the ARM processor.

    Thank you very much for your help!

    Best regards,

    Dom

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use