Hello guys, Working on ADSP-21065L, VisualDSP++ 3.5 Nov'04 update. I my application I'd get good benefit form the sprintf function, which one links to with #include <stdio.h>. However, I don't need the full of the library. But (as expected) the full library plus my code do not fit within the internal memory of the '065L. I tried to change the .ldf in order to make some part of Block1 (0xc000 to 0xc100) available for code. The ldf was not the problem. The problem is that I couldn't make this new segment (which I named seg_pmco2) visible for the linker to use it for placing some part of the code within it. So, my questions are: 1. How can I make another PM segment, defined in Block 1, visible to the linker for (automatically) placing code within it? 2. The source code for the sprintf function is available in a file named sprint.c. How can I build ONLY THIS FUNCTIONwithin my project? It has the following includes: #include "_stdio.h" #include "stdio.h" #include "stdarg.h" #include "adi_threads.h" I suspect that it would call many things more, again, not fitting into the 065's internal memory. All of your comments/suggestions are very welcome. TIA -- ------------------------------ Jaime Andr�s Aranguren Cardona jaac@sanjaac.com SanJaaC Electronics Soluciones en DSP www.sanjaac.com
SHARC: Linker, libraries, etc. Advise needed
Started by ●March 17, 2005
Reply by ●March 18, 20052005-03-18
Hi, After struggling for a while, I could make it fit. I created another section on the LDF, named seg_pmco2, from 0xC000 to 0xC7FF. The original seg_pmco is configured to overflow into seg_pmco2. Now it fits. But very few free space remains available, simply calling sprintf took around 2kWords. Maybe overlays are a solution if the program gets even bigger. I've read it works via DMA. The only external memory I have is SDRAM. Is it possible to mix them to make overlays work? If so, how? Any pointers are very welcome. JaaC Jaime Andr=E9s Aranguren Cardona wrote:> Hello guys, > > Working on ADSP-21065L, VisualDSP++ 3.5 Nov'04 update. > > I my application I'd get good benefit form the sprintf function,which one> links to with #include <stdio.h>. However, I don't need the full ofthe> library. > > But (as expected) the full library plus my code do not fit within the> internal memory of the '065L. > > I tried to change the .ldf in order to make some part of Block1(0xc000 to> 0xc100) available for code. The ldf was not the problem. The problemis that> I couldn't make this new segment (which I named seg_pmco2) visiblefor the> linker to use it for placing some part of the code within it. > > So, my questions are: > > 1. How can I make another PM segment, defined in Block 1, visible tothe> linker for (automatically) placing code within it? > 2. The source code for the sprintf function is available in a filenamed> sprint.c. How can I build ONLY THIS FUNCTIONwithin my project? It hasthe> following includes: > > #include "_stdio.h" > > #include "stdio.h" > #include "stdarg.h" > > #include "adi_threads.h" > > I suspect that it would call many things more, again, not fittinginto the> 065's internal memory. > > All of your comments/suggestions are very welcome. > > TIA > > -- > ------------------------------ > Jaime Andr=E9s Aranguren Cardona > jaac@sanjaac.com > SanJaaC Electronics > Soluciones en DSP > www.sanjaac.com
Reply by ●March 19, 20052005-03-19
we use the '65L for development and found that we very quickly needed to use overlays to make all of the code fit. The overlays work by transferring data from external memory into internal memory when required. Alternatively, you can also run code directly from external memory. We use our own overlay manager, but i'm sure AD have their own version that they can supply you. I would suggest finding the EE note that describes overlays and checkout the example code that AD supply. Also upgrade to v4.0 ;) Brett. "Jaime Andr�s Aranguren Cardona" <jaime.aranguren@gmail.com> wrote in message news:1111135539.058947.304820@z14g2000cwz.googlegroups.com... Hi, After struggling for a while, I could make it fit. I created another section on the LDF, named seg_pmco2, from 0xC000 to 0xC7FF. The original seg_pmco is configured to overflow into seg_pmco2. Now it fits. But very few free space remains available, simply calling sprintf took around 2kWords. Maybe overlays are a solution if the program gets even bigger. I've read it works via DMA. The only external memory I have is SDRAM. Is it possible to mix them to make overlays work? If so, how? Any pointers are very welcome. JaaC Jaime Andr�s Aranguren Cardona wrote:> Hello guys, > > Working on ADSP-21065L, VisualDSP++ 3.5 Nov'04 update. > > I my application I'd get good benefit form the sprintf function,which one> links to with #include <stdio.h>. However, I don't need the full ofthe> library. > > But (as expected) the full library plus my code do not fit within the> internal memory of the '065L. > > I tried to change the .ldf in order to make some part of Block1(0xc000 to> 0xc100) available for code. The ldf was not the problem. The problemis that> I couldn't make this new segment (which I named seg_pmco2) visiblefor the> linker to use it for placing some part of the code within it. > > So, my questions are: > > 1. How can I make another PM segment, defined in Block 1, visible tothe> linker for (automatically) placing code within it? > 2. The source code for the sprintf function is available in a filenamed> sprint.c. How can I build ONLY THIS FUNCTIONwithin my project? It hasthe> following includes: > > #include "_stdio.h" > > #include "stdio.h" > #include "stdarg.h" > > #include "adi_threads.h" > > I suspect that it would call many things more, again, not fittinginto the> 065's internal memory. > > All of your comments/suggestions are very welcome. > > TIA > > -- > ------------------------------ > Jaime Andr�s Aranguren Cardona > jaac@sanjaac.com > SanJaaC Electronics > Soluciones en DSP > www.sanjaac.com
Reply by ●March 20, 20052005-03-20
Thanks, Brett. Do you know if overlays can go in SDRAM, in an external bank different than bank0, say bank3 ans in the EzKit? Regards, -- ------------------------------ Jaime Andr�s Aranguren Cardona jaac@sanjaac.com SanJaaC Electronics Soluciones en DSP www.sanjaac.com "brett" <brett_w2931@hotmail.com> escribi� en el mensaje news:x4idnYXchY2k0qHfRVn-ug@adelphia.com...> we use the '65L for development and found that we very quickly needed to > use > overlays to make all of the code fit. The overlays work by transferring > data > from external memory into internal memory when required. Alternatively, > you > can also run code directly from external memory. > We use our own overlay manager, but i'm sure AD have their own version > that > they can supply you. > I would suggest finding the EE note that describes overlays and checkout > the > example code that AD supply. Also upgrade to v4.0 ;) > > Brett. > > "Jaime Andr�s Aranguren Cardona" <jaime.aranguren@gmail.com> wrote in > message news:1111135539.058947.304820@z14g2000cwz.googlegroups.com... > Hi, > > After struggling for a while, I could make it fit. I created another > section on the LDF, named seg_pmco2, from 0xC000 to 0xC7FF. The > original seg_pmco is configured to overflow into seg_pmco2. > Now it fits. But very few free space remains available, simply calling > sprintf took around 2kWords. > > Maybe overlays are a solution if the program gets even bigger. I've > read it works via DMA. The only external memory I have is SDRAM. Is it > possible to mix them to make overlays work? If so, how? > > Any pointers are very welcome. > > JaaC > > Jaime Andr�s Aranguren Cardona wrote: >> Hello guys, >> >> Working on ADSP-21065L, VisualDSP++ 3.5 Nov'04 update. >> >> I my application I'd get good benefit form the sprintf function, > which one >> links to with #include <stdio.h>. However, I don't need the full of > the >> library. >> >> But (as expected) the full library plus my code do not fit within the > >> internal memory of the '065L. >> >> I tried to change the .ldf in order to make some part of Block1 > (0xc000 to >> 0xc100) available for code. The ldf was not the problem. The problem > is that >> I couldn't make this new segment (which I named seg_pmco2) visible > for the >> linker to use it for placing some part of the code within it. >> >> So, my questions are: >> >> 1. How can I make another PM segment, defined in Block 1, visible to > the >> linker for (automatically) placing code within it? >> 2. The source code for the sprintf function is available in a file > named >> sprint.c. How can I build ONLY THIS FUNCTIONwithin my project? It has > the >> following includes: >> >> #include "_stdio.h" >> >> #include "stdio.h" >> #include "stdarg.h" >> >> #include "adi_threads.h" >> >> I suspect that it would call many things more, again, not fitting > into the >> 065's internal memory. >> >> All of your comments/suggestions are very welcome. >> >> TIA >> >> -- >> ------------------------------ >> Jaime Andr�s Aranguren Cardona >> jaac@sanjaac.com >> SanJaaC Electronics >> Soluciones en DSP >> www.sanjaac.com > >
Reply by ●March 22, 20052005-03-22
Hello, brett wrote:> we use the '65L for development and found that we very quickly neededto use> overlays to make all of the code fit. The overlays work bytransferring data> from external memory into internal memory when required.Alternatively, you> can also run code directly from external memory.I think I'll go for overlays, storing part of my code in external SDRAM. I've read EE-66, which indeed has example code. But all of this is very specific to assembly coding. MOST of my aplication is C code, and I don't know beforehand the size of the functions that would go into overlays, and I would like it to be versatile enough to let me put/remove code from them, rather the same way the LDF does it for placing instructions/data into the internal SRAM, without the programmer having to take much care of some mechanics of the process., the linker does the job. Do you have any example C project which uses overlays, and that you could share as a starting point for me? Or where else could I find it?> We use our own overlay manager, but i'm sure AD have their ownversion that> they can supply you. > I would suggest finding the EE note that describes overlays andcheckout the> example code that AD supply. Also upgrade to v4.0 ;)I have VDSP++ 4.0 in one machine, but honestly I have't found the real need to switch to it. I still use VDSP++ 3.5 in two machines, basically because in one of them I have a SummitICE installed, which is not supportted in VDSP++ 4.0, and which I don't want to throw away.> Brett.Regards, JaaC