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 |
|
Run time library
Started by ●December 17, 2001
Reply by ●December 18, 20012001-12-18
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 |
|
Reply by ●December 18, 20012001-12-18
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 |
Reply by ●December 18, 20012001-12-18
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 > > |