• 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 » Digital Signal Processors (DSP) » C6000 Single Core DSP » C64x Single Core DSP Forum » Problems Running LLD Async Example
Share
C6000 Single Core DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS

Problems Running LLD Async Example

Problems Running LLD Async Example

This question is answered
Bryan Brudevold
Posted by Bryan Brudevold
on Jul 27 2012 12:14 PM
Prodigy110 points

Hello,

I'm trying to run the LLD Async example for the C6455 listed here: http://processors.wiki.ti.com/index.php/Programming_the_EDMA3_using_the_Low-Level_Driver_%28LLD%29

This is a simple example of an asynchronous memory transfer. I have made no changes to the example code.

I get the following warning when I build the project and have no idea how to resolve it:
#10188-D symbol "CLK_F_gethtime" from file "E:/ti/bios_5_41_13_42/packages/ti/bios/lib/biosTCI6482.a64P<clk_gethtime.o6 4P>" being redefined  

If I ignore the warning and run the project, the memory transfer starts but fails to complete (execution never returns from function edma_wait).

I am running CCS 5.2.0.00069, and am using DSP/BIOS 5.41.13.42, and LLD 01.11.03.01.

Any advice on how to resolve the warning and get this example to work?

Thanks,

Bryan Brudevold

LLD EDMA3 C6455
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • RandyP
    Posted by RandyP
    on Jul 28 2012 11:41 AM
    Guru61625 points

    Bryan,

    There must be two places that define this symbol. That could mean that you are including two different BIOS libraries or that there is a file that incorrectly defines this symbol.

    You may be able to look in the map file to find out where else the symbol is being defined. Find an address, then look for which module that address is linked to.

    Please let me know what you find.

    Regards,
    RandyP

    Search for answers, Ask a question, click  Verify  when complete, Help others, Learn more.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bryan Brudevold
    Posted by Bryan Brudevold
    on Jul 30 2012 12:33 PM
    Prodigy110 points

    Hi Randy,

    I did look at my .map file and found the the symbol CLK_F_gethtime is indeed defined twice, and two other symbols are also defined twice at the same address.

    00829540   CLK_F_gethtime

    00829540   CLK_TIMEFXN

    00829540   _CLK_gethtime

    00829540   CLK_F_gethtime

    00829540   CLK_TIMEFXN

    00829540   _CLK_gethtime

    When I look for that address in the section allocation map, I find this:

    00829540    00000020     biosTCI6482.a64P : clk_gethtime.o64P (.bios)

    I do find it curious the project is loading the library biosTCI6482.a64P, since that is not my target device (my target is the C6455). I can see there are no BIOS libraries included in the linker properties, just a library search path pointing to "E:/ti/bios_5_41_13_42/packages/ti/bios/lib". I am not sure why Code Composer is deciding to load a library for the TCI6482. Perhaps I need to specify the correct BIOS libraries to load?

    Thanks,

    Bryan

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • RandyP
    Posted by RandyP
    on Jul 30 2012 14:59 PM
    Guru61625 points

    Bryan,

    Symbols are listed twice in the .map file: in alphabetical order and in numerical order. Are you just pulling out both listings.

    It is bad and confusing that we (TI) do not include a biosC6455.a64P library, but instead the biosTCI6482.a64P library is used for the C6455. This library is compatible for any calls that you will be making and it will not cause any problems other than being a source of confusion like this. This is the correct BIOS library to use.

    And it is the right place to be getting CLK_F_gethtime from.

    This means there is something else that is assigning a value to CLK_F_gethtime,

    Something I would try to find this is to rename this bios file, such as putting an "x" in front of the filename. Then try running the build again. You will have lots of errors, but this time there should be unresolved references for symbols like CLK_F_gethtime. But if something else is defining it, it might not show up. Look for that symbol in the .map file again and see where it might be coming from.

    Then, I would do a search of all of your source code for this symbol to see if it shows up.

    After these, if you have not been able to track down the cause, we may want to move this to the BIOS forum since it is a BIOS function that is being doubly-defined. But I think we can track it down here.

    Regards,
    RandyP

    Search for answers, Ask a question, click  Verify  when complete, Help others, Learn more.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bryan Brudevold
    Posted by Bryan Brudevold
    on Jul 30 2012 16:20 PM
    Verified Answer
    Verified by RandyP
    Prodigy110 points

    Randy,

    My fault--I had double-counted the symbol since I didn't know it was supposed to be listed twice. It just appears once in each list.

    I tried building after renaming the biosTCI6482.a64P library file. Then the .map file shows this:

     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .vers      0    00000000    00000040     COPY SECTION
                      00000000    00000040     lld_6455cfg.obj (.vers)

    address      name
    --------           ----

    00000000   CLK_F_gethtime

    I searched my source code for the symbol CLK_F_gethtime and found it in the lld_6455cfg.cmd file:

    CLK_F_gethtime = _CLK_gethtime;

    But then I noticed my project actually had two files called lld_6455cfg.cmd. One came with the example project I downloaded and is in the top-level project directory. The other is auto-generated at compile time and shows up in the Debug folder. The auto-generated file did not have the symbol CLK_F_gethtime. So I just removed the other lld_6455cfg.cmd file, and then miraculously the project builds with no warnings and appears to run correctly.

    Any idea why this happened? Could it be a compatibility issue, since this was a legacy project imported to CCS5.2?

    Thanks,

    Bryan



    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • RandyP
    Posted by RandyP
    on Jul 30 2012 16:28 PM
    Verified Answer
    Verified by Bryan Brudevold
    Guru61625 points

    Bryan,

    From my side, remote debug is like playing darts blindfolded. But thanks to your good catch, I am glad you have the problem solved.

    Definitely this is an import issue with moving from a legacy project. The tools do a pretty good job, but sometimes they have a tough time figuring out what belongs and what does not. The file that gets generated listing import issues can be helpful, but it may  not have identified this as a potential problem.

    But you did it.

    Regards,
    RandyP

    Search for answers, Ask a question, click  Verify  when complete, Help others, Learn more.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Bryan Brudevold
    Posted by Bryan Brudevold
    on Jul 30 2012 16:30 PM
    Prodigy110 points

    Randy,

    Thanks for your help! You got me going in the right direction.

    Bryan

    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