DSPRelated.com
Forums

Run time library

Started by Arius - Rick Collins December 17, 2001
I am working on an old C31 project used with CC version 3.04 about two
years ago. We are now using CC version 4.10 with code gen tools ver 5.11.
When I try to build the sources the linker can't find the run time library
"rts30b.lib". The engineer that set this up is no longer with us so I can't
ask him what is up with this.

Is the "rts30b.lib" a custom library that we built? Or is this an old
library and I need to find CC version 3.04 that was originally used? Or am
I just missing something obvious like looking in the right directory?

Thanks,

Rick Collins Rick Collins
Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX



Hi Rick

The named libraries that TI provides are given below... and there is no
RTS30B.LIB. I am therefor inclined to assume this was your engineers
creation:-)

rts30.lib
rts30g.lib
rts30gr.lib
rts30r.lib

It would be nice to work backwards to figure out the RTS30B.LIB build
attributes but I think this is going to be a NULL program. I can see two
problems...

A) I dont know how, or even if, this info is packed inside a LIB
I am more than fairly certain the build attributes are not
stored in the OBJ or OUT files. (See documentation in
TMS320C3x/C4x Assembly Language Tools, SPRU035)

B) You dont have RTS30B.LIB or you would not be asking the
question in the first place

As far as how the linker does its searching, I believe CC first directs the
linker to the CC root then to the directories defined in the A_DIR/C_DIR
environment variable.

A way to find the minimum content of *.LIB is to at first not link any
library at all. This should produce a list of missing functions which you
can then extract from the RTS sources. Once extracted, these functions can
be rebuilt with your other source files using the build attributes you want.
If you then either link these functions as objects or as a combined library
*before* any other LIB is called, the first instance of the function will
take precedence. This is for example a good way to test or benchmark a new
function against the existing one in the RTS library.

BTW, the compiler, assembler and other tools still work the way they always
did from the command line. IOW, CC is still a shell that surrounds the
command line tools.

Hope this helps
Keith Larson
TMS320C3x/C4x/VC33 Applications
---
At 03:56 PM 12/17/01 -0500, you wrote:
I am working on an old C31 project used with CC version 3.04 about two years
ago. We are now using CC version 4.10 with code gen tools ver 5.11. When I
try to build the sources the linker can't find the run time library
"rts30b.lib". The engineer that set this up is no longer with us so I can't
ask him what is up with this.

Is the "rts30b.lib" a custom library that we built? Or is this an old
library and I need to find CC version 3.04 that was originally used? Or am I
just missing something obvious like looking in the right directory?

Thanks,
Rick Collins Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX



Keith,

Thanks for the response. With a little nosing around in the various
documentation, I found that the 'b' is a typical indicator of a library
built for the "big" memory model. So I have tried rebuilding the library
for this mode. I am not very familiar with the TI DSP libraries so I am not
sure which sources to use, but I tried rts.src and it seems to have done
the job. But this was for a very, very simple test program that uses no IO
or other features that might be in the library (it just blinks an LED on
the board). So I will give it a better test later when I recompile our boot
monitor program.

The other source files include prts30.src and mathasm.src. I assume that
these are compiled separately for separate libraries, correct? Or are they
intended to be included in the same library with rts.src?

Rick Collins
At 06:49 PM 12/17/01, you wrote:
>Hi Rick
>
>The named libraries that TI provides are given below... and there is no
>RTS30B.LIB. I am therefor inclined to assume this was your engineers
>creation:-)
>
>rts30.lib
>rts30g.lib
>rts30gr.lib
>rts30r.lib
>
>It would be nice to work backwards to figure out the RTS30B.LIB build
>attributes but I think this is going to be a NULL program. I can see two
>problems...
>
>A) I dont know how, or even if, this info is packed inside a LIB
> I am more than fairly certain the build attributes are not
> stored in the OBJ or OUT files. (See documentation in
> TMS320C3x/C4x Assembly Language Tools, SPRU035)
>
>B) You dont have RTS30B.LIB or you would not be asking the
> question in the first place
>
>As far as how the linker does its searching, I believe CC first directs the
>linker to the CC root then to the directories defined in the A_DIR/C_DIR
>environment variable.
>
>A way to find the minimum content of *.LIB is to at first not link any
>library at all. This should produce a list of missing functions which you
>can then extract from the RTS sources. Once extracted, these functions can
>be rebuilt with your other source files using the build attributes you want.
>If you then either link these functions as objects or as a combined library
>*before* any other LIB is called, the first instance of the function will
>take precedence. This is for example a good way to test or benchmark a new
>function against the existing one in the RTS library.
>
>BTW, the compiler, assembler and other tools still work the way they always
>did from the command line. IOW, CC is still a shell that surrounds the
>command line tools.
>
>Hope this helps
>Keith Larson
>TMS320C3x/C4x/VC33 Applications
>---
>At 03:56 PM 12/17/01 -0500, you wrote:
>I am working on an old C31 project used with CC version 3.04 about two years
>ago. We are now using CC version 4.10 with code gen tools ver 5.11. When I
>try to build the sources the linker can't find the run time library
>"rts30b.lib". The engineer that set this up is no longer with us so I can't
>ask him what is up with this.
>
>Is the "rts30b.lib" a custom library that we built? Or is this an old
>library and I need to find CC version 3.04 that was originally used? Or am I
>just missing something obvious like looking in the right directory?
>
>Thanks,
>Rick Collins
Arius - A Signal Processing Solutions Company
Specializing in DSP and FPGA design URL http://www.arius.com
4 King Ave 301-682-7772 Voice
Frederick, MD 21701-3110 301-682-7666 FAX


Hi again Rick

Now that you mention it, the 'b' for big would make sense as I dont recall
TI ever shipping pre-built 'big' library versions. In fact I now recall
being on the hotline a number of years ago explaining how to extract and
build a 'big' library.

The files in PRTS30.SRC and RTS.SRC are typicaly compiled and or assembled
into the RTS30*.LIB files. If you have a look at these files with a text
editor you will see that they are ASCII files containing some line
information deliniating each section. You could for example forgo the use
of the archiver utility and hack out the parts you want.

RTS.SRC will contain sources that are common to the C3x/C4x such as math and
standard C functions. The PRTS sources will contain things that are
specific to a device such as serial ports on a C3x and comports on the C4x.

Many math routines can be found in both RTS as functions written in C and
MATHASM as functions in assembler. Basicaly MATHASM.SRC is a second more
optomized, but less tested, ASM source for the transcendental math
functions. More extensively used functions like divide and square root were
originaly written in ASM and appear in RTS.

As for what the G, GR and R suffixes stand for, I suspect from the sizes
(anything with a G is 2x the size) that G stands for debug mode with
optomization off, and R is for register passing.

BTW, if you are moving from a C31 to the VC33, you may be able to avoid the
big memory model as the on chip SRAM is quite a bit bigger. It also happens
to be on the same data page as the memory mapped peripherals and even a
chunk of external space. This can provide a substantial performance boost
over a C31 design.

Best regards,
Keith Larson
TMS320C3x/C4x/VC33 Applications

TMS320VC33
The lowest cost and lowest power 500 uw/mflop
floating point DSP on the planet!
--------------
At 07:24 PM 12/17/01 -0500, you wrote:
>Keith,
>
>Thanks for the response. With a little nosing around in the various
>documentation, I found that the 'b' is a typical indicator of a library
>built for the "big" memory model. So I have tried rebuilding the library
>for this mode. I am not very familiar with the TI DSP libraries so I am not
>sure which sources to use, but I tried rts.src and it seems to have done
>the job. But this was for a very, very simple test program that uses no IO
>or other features that might be in the library (it just blinks an LED on
>the board). So I will give it a better test later when I recompile our boot
>monitor program.
>
>The other source files include prts30.src and mathasm.src. I assume that
>these are compiled separately for separate libraries, correct? Or are they
>intended to be included in the same library with rts.src?
>
>Rick Collins >
>At 06:49 PM 12/17/01, you wrote:
>>Hi Rick
>>
>>The named libraries that TI provides are given below... and there is no
>>RTS30B.LIB. I am therefor inclined to assume this was your engineers
>>creation:-)
>>
>>rts30.lib
>>rts30g.lib
>>rts30gr.lib
>>rts30r.lib
>>
>>It would be nice to work backwards to figure out the RTS30B.LIB build
>>attributes but I think this is going to be a NULL program. I can see two
>>problems...
>>
>>A) I dont know how, or even if, this info is packed inside a LIB
>> I am more than fairly certain the build attributes are not
>> stored in the OBJ or OUT files. (See documentation in
>> TMS320C3x/C4x Assembly Language Tools, SPRU035)
>>
>>B) You dont have RTS30B.LIB or you would not be asking the
>> question in the first place
>>
>>As far as how the linker does its searching, I believe CC first directs the
>>linker to the CC root then to the directories defined in the A_DIR/C_DIR
>>environment variable.
>>
>>A way to find the minimum content of *.LIB is to at first not link any
>>library at all. This should produce a list of missing functions which you
>>can then extract from the RTS sources. Once extracted, these functions can
>>be rebuilt with your other source files using the build attributes you want.
>>If you then either link these functions as objects or as a combined library
>>*before* any other LIB is called, the first instance of the function will
>>take precedence. This is for example a good way to test or benchmark a new
>>function against the existing one in the RTS library.
>>
>>BTW, the compiler, assembler and other tools still work the way they always
>>did from the command line. IOW, CC is still a shell that surrounds the
>>command line tools.
>>
>>Hope this helps
>>Keith Larson
>>TMS320C3x/C4x/VC33 Applications
>>---
>>At 03:56 PM 12/17/01 -0500, you wrote:
>>I am working on an old C31 project used with CC version 3.04 about two years
>>ago. We are now using CC version 4.10 with code gen tools ver 5.11. When I
>>try to build the sources the linker can't find the run time library
>>"rts30b.lib". The engineer that set this up is no longer with us so I can't
>>ask him what is up with this.
>>
>>Is the "rts30b.lib" a custom library that we built? Or is this an old
>>library and I need to find CC version 3.04 that was originally used? Or am I
>>just missing something obvious like looking in the right directory?
>>
>>Thanks,
>>Rick Collins >
>Arius - A Signal Processing Solutions Company
>Specializing in DSP and FPGA design URL http://www.arius.com
>4 King Ave 301-682-7772 Voice
>Frederick, MD 21701-3110 301-682-7666 FAX >
>