DSPRelated.com
Forums

Linker

Started by Steve Holle August 13, 2003
I'm having some problems mapping a library to external SDRAM.  I'm using an 21161N EZ-KIT Lite.  I've included a third party library by adding it in the file section of the Project window.  When I try to compile my c++ program I'm running out of room in the seg_pmco segment.  I looked in the map file and some of the third party library components are taking a large amount of room. 

I created a segment in the external SDRAM as follows :

        seg_sdram { TYPE(DM RAM) START(0x200000) END(0x27ffff) WIDTH(48)  }

I then used the Expert Linker to drag the library from the seg_pmco input section to the seg_sdram segment resulting in the following :

                seg_sdram{
                        INPUT_SECTIONS($OBJECTS(seg_sdram)  SigLib.dlb(seg_pmco) ])
                }>seg_sdram

When I try to compile the file I run out of room again. 

Output Section seg_pmco
Input section                  Address      Size        Input file                                       
.
.
.
seg_pmco                       0x40288      0x2b        C:\NumerixDSP\lib\21k\SigLib.dlb(iirfilt.doj)    
seg_pmco                       0x402b3      0x337       C:\NumerixDSP\lib\21k\SigLib.dlb(dtmf.doj)       
seg_pmco                       0x405ea      0x2c        C:\NumerixDSP\lib\21k\SigLib.dlb(minmax.doj)     
seg_pmco                       0x40616      0x8f        C:\NumerixDSP\lib\21k\SigLib.dlb(filter.doj)     
seg_pmco                       0x406a5      0x10        C:\NumerixDSP\lib\21k\SigLib.dlb(complex.doj)    

Which indicates that the library functions (Siglib.dlb) are still being put in the seg_pmco output section.

Also, I've noticed that the library Siglib.dlb shows up in both the Input Sections seg_pmco->$objects->$COMMAND_LINE_OBJECTS->Siglib.dlb and seg_pmco->Siglib.dlb.  Why does it show up in both places?

Can anyone show me how to place and execute Siglib.dlb in external SDRAM?

Thanks for your help.