DSPRelated.com
Forums

Error li1021

Started by fire...@yahoo.es April 28, 2008
Hello

I'm working with VisualDSP++ 5.0 and an DSP TigerSharc TS-101. Just now, I'm working to implement an protocol based in "semaphores". To implement it I use an example code provided with my card. But the problem is that when I compile, I obtain the follow error:

[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'server_terminate [_server_terminate]' referenced from '.\Debug\semaphore.doj'
'ts_barrier [_ts_barrier]' referenced from '.\Debug\semaphore.doj'
'ts_fsema_release [_ts_fsema_release]' referenced from '.\Debug\semaphore.doj'
...

Searching on Internet and in this forum, I've found that the problem is in my LDF file. But I don't know how I can create .ldf file that works in this situation.

Can you help me? Can you indicate me some reference to solve it?
Thanks a lot for your help

Eduardo MÉNDEZ
I am getting the same linker error! I'm using Visual DSP++ 5.0 with an ADSP 21369. The error reads:

[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'wavtable [_wavtable]' referenced from '.\Debug\blockProcess.doj'
'wavtable [_wavtable]' referenced from '.\Debug\sininit.doj'

Someone please help us! I am new to DSP in general and when I searched this error on line, it does seem that many people run into it, but I was unable to find a solution that I understood. Something involving LDF files and overloading. One recommendation was to go into project options and check the box to "Use C++ exceptions libraries" for the Linker, but that didn't stop the error. Is there anyone who can explain what is happenning and/or tell me how to fix it? Thank you so much!!
Hi,

This error message is happening because the linker cannot find a symbol that
is referenced. This could be because you forgot to include a file in the
build, or that you are using section names in your source files that have no
corresponding command in the LDF to map them to memory. From the Expert
Linker, you could identify these unmapped input sections by seeing that they
have a big red X through them. What you do is to expand the input section,
then drag $OBJECTS (from the left pane in the Expert Linker) to the
appropriate output section (in the right pane of the Expert Linker). This
can also be done by opening the LDF in a text editor and including the
sections() command in the appropriate output section.

You should check out the Linker and Utilities manual and read up on the LDF
(Linker Description File).

Incidentally, this topic of understanding the linking process for Analog
Devices processors is one of many we discuss in our 3.5 day workshops on
developing for either Blackfin, Sharc, or TigerSharc processors. Please
visit our website for more info.

Cheers,

George Kadziolka

Kaztek Systems

www.kaztek.com

From: a... [mailto:a...] On Behalf Of
a...@bluetomato.us
Sent: Monday, April 28, 2008 11:39 AM
To: a...
Subject: [adsp] Re: Error li1021

I am getting the same linker error! I'm using Visual DSP++ 5.0 with an ADSP
21369. The error reads:

[Error li1021] The following symbols referenced in processor 'p0' could not
be resolved:
'wavtable [_wavtable]' referenced from '.\Debug\blockProcess.doj'
'wavtable [_wavtable]' referenced from '.\Debug\sininit.doj'

Someone please help us! I am new to DSP in general and when I searched this
error on line, it does seem that many people run into it, but I was unable
to find a solution that I understood. Something involving LDF files and
overloading. One recommendation was to go into project options and check the
box to "Use C++ exceptions libraries" for the Linker, but that didn't stop
the error. Is there anyone who can explain what is happenning and/or tell me
how to fix it? Thank you so much!!
Thanks you for your responses

But, I think it's not the solution for me because I've not any item with a big red X through them in my ExpertLinker. So, I think that my only solution is that my "symbols" are not in included in the .ldf file: not unmapped, simply not included. But I don't find any way to include them in the .ldf file. And I don't find any document with the precis instructions to do this.

Thanks you a lot of for your help.

Eduardo Méndez

Hello
>
>I'm working with VisualDSP++ 5.0 and an DSP TigerSharc TS-101. Just now, I'm working to implement an protocol based in "semaphores". To implement it I use an example code provided with my card. But the problem is that when I compile, I obtain the follow error:
>
>[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
>'server_terminate [_server_terminate]' referenced from '.\Debug\semaphore.doj'
>'ts_barrier [_ts_barrier]' referenced from '.\Debug\semaphore.doj'
>'ts_fsema_release [_ts_fsema_release]' referenced from '.\Debug\semaphore.doj'
>...
>
>Searching on Internet and in this forum, I've found that the problem is in my LDF file. But I don't know how I can create .ldf file that works in this situation.
>
>Can you help me? Can you indicate me some reference to solve it?
>Thanks a lot for your help
>
>Eduardo MÉNDEZ
>
>
The symbols are associated with the sections defined explicitly (eg with section("section_name") ) or implicitly (ie default section names for code and data). In order to see the unmapped sections, you need to have tried to build the application (which you must have done, otherwise you would not have seen the li1021 error). The only reason I can think of why the unmapped sections do not appear is that possibly the files containing the symbols are not included as part of the project list of source files.

You could open up the LDF in a text editor window and add the section names yourself. See the example below.

Example:
Output_section { // output section named here
INPUT_SECTION_ALIGN(4)
INPUT_SECTIONS(myFnc.doj(default_section)) // specific file mapped first using default section name
INPUT_SECTIONS($OBJECTS(default_section)) // then rest of default
INPUT_SECTIONS($OBJECTS(my_section)) // custom section name
INPUT_SECTIONS($OBJECTS(program) $LIBRARIES(program))
} > MEM_SEGMENT // all mapped to the named memory segment

Cheers,

George Kadziolka
Kaztek Systems
www.kaztek.com
-----Original Message-----
From: a... [mailto:a...] On Behalf Of firedo...@yahoo.es
Sent: Tuesday, April 29, 2008 4:33 AM
To: a...
Subject: [adsp] Re: Error li1021

Thanks you for your responses

But, I think it's not the solution for me because I've not any item with a big red X through them in my ExpertLinker. So, I think that my only solution is that my "symbols" are not in included in the .ldf file: not unmapped, simply not included. But I don't find any way to include them in the .ldf file. And I don't find any document with the precis instructions to do this.

Thanks you a lot of for your help.

Eduardo Méndez

Hello
>
>I'm working with VisualDSP++ 5.0 and an DSP TigerSharc TS-101. Just now, I'm working to implement an protocol based in "semaphores". To implement it I use an example code provided with my card. But the problem is that when I compile, I obtain the follow error:
>
>[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
>'server_terminate [_server_terminate]' referenced from '.\Debug\semaphore.doj'
>'ts_barrier [_ts_barrier]' referenced from '.\Debug\semaphore.doj'
>'ts_fsema_release [_ts_fsema_release]' referenced from '.\Debug\semaphore.doj'
>...
>
>Searching on Internet and in this forum, I've found that the problem is in my LDF file. But I don't know how I can create .ldf file that works in this situation.
>
>Can you help me? Can you indicate me some reference to solve it?
>Thanks a lot for your help
>
>Eduardo MÉNDEZ
>
>
Hello

First of all, thanks you for all your responses.

But I've not yet solved the problem. I think that the problem is not a problem about mapped or unmapped sections. With the help of Analog and Vmetro support I've solved certains errors. The problem's solution was this:

In my LDF file, where you can read:
$LIBRARIES = $LIBC, $IOLIB, $LIBDSP, $LIBCPP, $LIBSIM;

You have to add "libbhl.dlb". So:
$LIBRARIES = $LIBC, $IOLIB, $LIBDSP, $LIBCPP, $LIBSIM, libbhl.dlb;

If I do this, I solve almost all errors of indefined symbols, except one. Now, the message error is:

[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'server_terminate [_server_terminate]' referenced from'.\Debug\semaphore.doj'

And I don't know how I can solve this last error. Do you have any suggestion? Or do you know any reference useful to understand the ExpertLinker? Because I don't understand very well what's a .doj, or a .dlb file. Can you help me?

Thanks a lot of for your help