VisualDSP++ 3.5 linking error __strtodDD

I am trying to compile an old project on VisualDSP++ 3.5 for ADSP 219x.

 

During linking, it failed due to

 

[Error li1021]  The following symbols referenced in processor 'P0' could not be resolved:

        '__strtodDD [___strtodDD]' referenced from 'libio.dlb[xscan.doj]'

        '__strtolDD [___strtolDD]' referenced from 'libio.dlb[xscan.doj]'

        '__strtoulDD [___strtoulDD]' referenced from 'libio.dlb[xscan.doj]'

Linker finished with 1 error
cc3089: fatal error: Link failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.

 

I can see that “c:/Program Files (x86)/Analog Devices/VisualDSP 3.5 16-Bit/219x/lib/src/libc_src/strtodDD.c” are removed but with a line says

 

“Removed source file - email processors.tools.support@analog.com for further assistance”

 

The closest thing I can find is “strtokDD”. But I don’t know how to change or fix that.

Please shine some lights on me. Thank you very much.

  • 0
    •  Analog Employees 
    on May 31, 2021 2:12 PM

    Hi,
     
    Please find attached an new implementation of the missing __strtolDD function for ADSP-219x.

    Could you please try by adding this source file(strtolDD.c) to your VisualDSP++ projects where you were getting the undefined __strtolDD  symbol when linking and let us know how you gets on.



    Regards,
    Nishanthi.V

    Source.zip

  • Thank you for the reply indeed. I was not sure if I will get any reply. Slight smile

    After adding (strtolDD.c) into my project. Three linking errors are down to 2.

    [Error li1021] The following symbols referenced in processor 'P0' could not be resolved:
    '__strtodDD [___strtodDD]' referenced from 'libio.dlb[xscan.doj]'
    '__strtoulDD [___strtoulDD]' referenced from 'libio.dlb[xscan.doj]'

    It seems that I need the source files (strtodDD.c and strtoulDD.c) as well. Could you please provide these two files?

    Also if possible, I would like to know why these files are removed?

    To me, the current 3.5 VisualDSP++ software is not in a working state. At least, the project I have used to build fine on an old PC. Unfortunately, the old PC had a hardware failure, that is why I am trying to build it on a new PC. 

  • +1
    •  Analog Employees 
    on Jun 7, 2021 2:27 PM in reply to DKwjn

    Hi,

    Unfortunately, we don't have sources for __strtodDD  or __strtoulDD. We can create these for you, but it will probably take a week to do so.

    As the names and the error message suggest, these functions are used to convert strings to floating point and unsigned long values, and they are called by the scanf functions. If your application does not read floating point or unsigned long values, then a workaround would be to create "stub" functions. For example, you could define __strtodDD as follows (and do the same for __strtoulDD):

    double __strtodDD (const char* str, char** endptr)
    {
    puts("ERROR: __strtodDD not implemented! This function should not be called.\n"); // Or some other way of flagging an error
    exit(1);
    return 0;
    }

    Doing this would allow you to build your project successfully. Obviously, if your application *does* read floating point or unsigned long values, then this workaround will not work and we will need to supply you with new functions.



    Thanks,
    Kenny

  • Hi Kenny,

    We managed to get the very old PC (windows 2000) up and running. Then we have copied the 3 source files. And now everything compiled/built fine.

    Thank you very much for all the kind help.

    Cheers.

    /Wenxi