
Technical discussions about the TI C6000 DSPs (including the c62x, c64x and c67x DSPs).
Hi all, Platform : DSK6416. I have some problems regarding usage of BIOS with the header files ,all my source code are compiled with Cygwin and TI C64x, this gives me the obj's which in turn i am linking using the code composer, the problem is that i need to have this working with the BIOS Clk_gethtime, if i use the function clk_gethtime with references of the libraries it says that other references are missing, could anyone suggest me what are the header files that need to be included to get the clk_gethtime working with proper references. How can i start the bios if i cant use the GUI. Which are the header files that need to be associated with it. The documentation regarding the Bios is very poor, it is not quite clear about many aspects, if some one who had worked on BIOS could throw a limelight it will be very helpfull for me . -BR -Goku______________________________
ittiam, from your description, it is rather obvious that some libraries are missing (assuming that the compile operations worked with no errors.) If you would post the names of the functions that are not found by the linker, we could possibly assist you in determing which libraries are missing. BTW: why are you using cgywin, etc rather than the CCS IDE for the compile/link operations? R. Williams ---------- Original Message ----------- From: i...@gmail.com To: c...@yahoogroups.com Sent: Mon, 23 Jun 2008 14:09:57 -0400 Subject: [c6x] Urgent Help Required: CLK_gethtime > Hi all, > > Platform : DSK6416. > I have some problems regarding usage of BIOS with the header files ,all my source code are > compiled with Cygwin and TI C64x, this gives me the obj's which in turn i am linking using > the code composer, the problem is that i need to have this working with the BIOS > Clk_gethtime, if i use the function clk_gethtime with references of the libraries it says > that other references are missing, could anyone suggest me what are the header files that > need to be included to get the clk_gethtime working with proper references. How can i > start the bios if i cant use the GUI. Which are the header files that need to be > associated with it. The documentation regarding the Bios is very poor, it is not quite > clear about many aspects, if some one who had worked on BIOS could throw a limelight it > will be very helpfull for me . > > -BR > -Goku ------- End of Original Message -------______________________________
Hello Richard, Since i am benchmarking different applications which are ported from linux, the linking is done with a makefile which has a huge code base, am using cygwin and CCS compiler, but not the IDE, target is connected to a different machine which has the CCS IDE, hence here i cant use the GUI interface, i dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, could you pls let me know. Error: _CLK_gethtime undefined symbol. I could see that Clk_gethtime library is missing , if i add the libraries like bios.a64 and others , they tend to say that there are many other symbols which are not defined. Regards, Goku On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> wrote: > ittiam, > > from your description, it is rather obvious that some libraries are missing > (assuming that the > compile operations worked with no errors.) > > If you would post the names of the functions that are not found by the > linker, we could possibly > assist you in determing which libraries are missing. > > BTW: > why are you using cgywin, etc rather than the CCS IDE for the compile/link > operations? > > R. Williams > ---------- Original Message ----------- > From: i...@gmail.com > To: c...@yahoogroups.com > Sent: Mon, 23 Jun 2008 14:09:57 -0400 > Subject: [c6x] Urgent Help Required: CLK_gethtime > > > Hi all, > > > > Platform : DSK6416. > > I have some problems regarding usage of BIOS with the header files ,all > my source code are > > compiled with Cygwin and TI C64x, this gives me the obj's which in turn i > am linking using > > the code composer, the problem is that i need to have this working with > the BIOS > > Clk_gethtime, if i use the function clk_gethtime with references of the > libraries it says > > that other references are missing, could anyone suggest me what are the > header files that > > need to be included to get the clk_gethtime working with proper > references. How can i > > start the bios if i cant use the GUI. Which are the header files that > need to be > > associated with it. The documentation regarding the Bios is very poor, it > is not quite > > clear about many aspects, if some one who had worked on BIOS could throw > a limelight it > > will be very helpfull for me . > > > > -BR > > -Goku > ------- End of Original Message -------______________________________
Goku, On 6/24/08, Goku <i...@gmail.com> wrote: > > Hello Richard, > > Since i am benchmarking different applications which are ported from linux, > the linking is done with a makefile which has a huge code base, am using > cygwin and CCS compiler, but not the IDE, target is connected to a different > machine which has the CCS IDE, hence here i cant use the GUI interface, i > dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, > could you pls let me know. > I don't know enough about DSP/BIOS to answer your question, but if i had the problem, I would probably take a very simple BIOS project [on the CCS machine] and add Clk_gethtime to it to identify the dependencies. mikedunn Error: _CLK_gethtime undefined symbol. > > I could see that Clk_gethtime library is missing , if i add the libraries > like bios.a64 and others , they tend to say that there are many other > symbols which are not defined. > > Regards, > Goku > > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> > wrote: > >> ittiam, >> >> from your description, it is rather obvious that some libraries are >> missing (assuming that the >> compile operations worked with no errors.) >> >> If you would post the names of the functions that are not found by the >> linker, we could possibly >> assist you in determing which libraries are missing. >> >> BTW: >> why are you using cgywin, etc rather than the CCS IDE for the compile/link >> operations? >> >> R. Williams >> ---------- Original Message ----------- >> From: i...@gmail.com >> To: c...@yahoogroups.com >> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >> Subject: [c6x] Urgent Help Required: CLK_gethtime >> >> > Hi all, >> > >> > Platform : DSK6416. >> > I have some problems regarding usage of BIOS with the header files ,all >> my source code are >> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn >> i am linking using >> > the code composer, the problem is that i need to have this working with >> the BIOS >> > Clk_gethtime, if i use the function clk_gethtime with references of the >> libraries it says >> > that other references are missing, could anyone suggest me what are the >> header files that >> > need to be included to get the clk_gethtime working with proper >> references. How can i >> > start the bios if i cant use the GUI. Which are the header files that >> need to be >> > associated with it. The documentation regarding the Bios is very poor, >> it is not quite >> > clear about many aspects, if some one who had worked on BIOS could throw >> a limelight it >> > will be very helpfull for me . >> > >> > -BR >> > -Goku >> >> ------- End of Original Message ------- -- www.dsprelated.com/blogs-1/nf/Mike_Dunn.php______________________________
ittiam, I think the CLK_gethtime requires the Bios for keeping the time element updated. Therefore, I think that you will need ALL the required libraries. Just remember that no many how many libraries are available to the linker only those functions, within the libraries, that are actually called are loaded into the code. R. Williams P.S. Were it me, I would not add all the BIOS overhead to your application. So rather than using the CLK_gethtime function, a much simpler (and more accurate) method is to have the source code (initially) clear some output bit, set the bit at the beginning of the code to bench mark, clear the bit at the end of the code to bench mark. Then use a logic analyzer, scope or similar tool to monitor that bit. R.W. ---------- Original Message ----------- From: Goku <i...@gmail.com> To: "Richard Williams" <r...@lewiscounty.com> Cc: c...@yahoogroups.com Sent: Tue, 24 Jun 2008 10:16:32 +0300 Subject: Re: [c6x] Urgent Help Required: CLK_gethtime > Hello Richard, > > Since i am benchmarking different applications which are ported from linux, > the linking is done with a makefile which has a huge code base, am using > cygwin and CCS compiler, but not the IDE, target is connected to a different > machine which has the CCS IDE, hence here i cant use the GUI interface, i > dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, > could you pls let me know. > > Error: _CLK_gethtime undefined symbol. > > I could see that Clk_gethtime library is missing , if i add the libraries > like bios.a64 and others , they tend to say that there are many other > symbols which are not defined. > > Regards, > Goku > > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> > wrote: > > > ittiam, > > > > from your description, it is rather obvious that some libraries are missing > > (assuming that the > > compile operations worked with no errors.) > > > > If you would post the names of the functions that are not found by the > > linker, we could possibly > > assist you in determing which libraries are missing. > > > > BTW: > > why are you using cgywin, etc rather than the CCS IDE for the compile/link > > operations? > > > > R. Williams > > > > > > ---------- Original Message ----------- > > From: i...@gmail.com > > To: c...@yahoogroups.com > > Sent: Mon, 23 Jun 2008 14:09:57 -0400 > > Subject: [c6x] Urgent Help Required: CLK_gethtime > > > > > Hi all, > > > > > > Platform : DSK6416. > > > I have some problems regarding usage of BIOS with the header files ,all > > my source code are > > > compiled with Cygwin and TI C64x, this gives me the obj's which in turn i > > am linking using > > > the code composer, the problem is that i need to have this working with > > the BIOS > > > Clk_gethtime, if i use the function clk_gethtime with references of the > > libraries it says > > > that other references are missing, could anyone suggest me what are the > > header files that > > > need to be included to get the clk_gethtime working with proper > > references. How can i > > > start the bios if i cant use the GUI. Which are the header files that > > need to be > > > associated with it. The documentation regarding the Bios is very poor, it > > is not quite > > > clear about many aspects, if some one who had worked on BIOS could throw > > a limelight it > > > will be very helpfull for me . > > > > > > -BR > > > -Goku > > ------- End of Original Message ------- > > > > ------- End of Original Message -------
Goku- > Since i am benchmarking different applications which are ported from linux, the > linking is done with a makefile which has a huge code base, am using cygwin and CCS > compiler, but not the IDE, target is connected to a different machine which has the > CCS IDE, hence here i cant use the GUI interface, i dont know how could i use > Clk_gethtime without the CCS IDE GUI Bios Start, could you pls let me know. CLK_gethtime should be in the basic run-time library, rts64xx.lib (not sure of that correct name, but look for rts64-something). > Error: _CLK_gethtime undefined symbol. > > I could see that Clk_gethtime library is missing , if i add the libraries like > bios.a64 and others , they tend to say that there are many other symbols which are > not defined. bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx functions. TI's code-gen tools for Linux are new and not widely used. I would suggest that you build using standard CCS v3.3 on a Win machine, and test that output code first. Since you have a "huge" code base, it's a good idea to eliminate any possible build error, library version, link error, etc. Think about it this way -- TI didn't have Linux based code-gen tools until recently (last couple of years). So that means since 1996, when they acquired GoDSP (Code Composer), they've been pouring manpower and millions into Win code-gen tools, not Linux. Which one do you think is more reliable and widely used? -Jeff > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> wrote: > > ittiam, > > from your description, it is rather obvious that some libraries are > missing (assuming that the > compile operations worked with no errors.) > > If you would post the names of the functions that are not found by the > linker, we could possibly > assist you in determing which libraries are missing. > > BTW: > why are you using cgywin, etc rather than the CCS IDE for the > compile/link operations? > > R. Williams > ---------- Original Message ----------- > From: i...@gmail.com > To: c...@yahoogroups.com > Sent: Mon, 23 Jun 2008 14:09:57 -0400 > Subject: [c6x] Urgent Help Required: CLK_gethtime > > > Hi all, > > > > Platform : DSK6416. > > I have some problems regarding usage of BIOS with the header files ,all > my source code are > > compiled with Cygwin and TI C64x, this gives me the obj's which in turn > i am linking using > > the code composer, the problem is that i need to have this working with > the BIOS > > Clk_gethtime, if i use the function clk_gethtime with references of the > libraries it says > > that other references are missing, could anyone suggest me what are the > header files that > > need to be included to get the clk_gethtime working with proper > references. How can i > > start the bios if i cant use the GUI. Which are the header files that > need to be > > associated with it. The documentation regarding the Bios is very poor, > it is not quite > > clear about many aspects, if some one who had worked on BIOS could > throw a limelight it > > will be very helpfull for me . > > > > -BR > > -Goku > ------- End of Original Message ------- >______________________________
Hello , I have included rts6400.lib, but it is not defined in it, am using CCS 3.3 Version, still getting the same error ," not able to resolve the symbol definition" .Could you let me know the details pls. Regards, Goku On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower <j...@signalogic.com> wrote: > Goku- > Since i am benchmarking different applications which are ported from linux, > the linking is done with a makefile which has a huge code base, am using > cygwin and CCS compiler, but not the IDE, target is connected to a different > machine which has the CCS IDE, hence here i cant use the GUI interface, i > dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, > could you pls let me know. > CLK_gethtime should be in the basic run-time library, rts64xx.lib (not sure > of that correct name, but look for rts64-something). > Error: _CLK_gethtime undefined symbol. > > I could see that Clk_gethtime library is missing , if i add the libraries > like bios.a64 and others , they tend to say that there are many other > symbols which are not defined. > bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx > functions. > > TI's code-gen tools for Linux are new and not widely used. I would suggest > that you build using standard CCS v3.3 on a Win machine, and test that > output code first. Since you have a "huge" code base, it's a good idea to > eliminate any possible build error, library version, link error, etc. > > Think about it this way -- TI didn't have Linux based code-gen tools until > recently (last couple of years). So that means since 1996, when they > acquired GoDSP (Code Composer), they've been pouring manpower and millions > into Win code-gen tools, not Linux. Which one do you think is more reliable > and widely used? > > -Jeff > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> > wrote: >> >> ittiam, >> >> from your description, it is rather obvious that some libraries are >> missing (assuming that the >> compile operations worked with no errors.) >> >> If you would post the names of the functions that are not found by the >> linker, we could possibly >> assist you in determing which libraries are missing. >> >> BTW: >> why are you using cgywin, etc rather than the CCS IDE for the compile/link >> operations? >> >> R. Williams >> ---------- Original Message ----------- >> From: i...@gmail.com >> To: c...@yahoogroups.com >> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >> Subject: [c6x] Urgent Help Required: CLK_gethtime >> >> > Hi all, >> > >> > Platform : DSK6416. >> > I have some problems regarding usage of BIOS with the header files ,all >> my source code are >> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn >> i am linking using >> > the code composer, the problem is that i need to have this working with >> the BIOS >> > Clk_gethtime, if i use the function clk_gethtime with references of the >> libraries it says >> > that other references are missing, could anyone suggest me what are the >> header files that >> > need to be included to get the clk_gethtime working with proper >> references. How can i >> > start the bios if i cant use the GUI. Which are the header files that >> need to be >> > associated with it. The documentation regarding the Bios is very poor, >> it is not quite >> > clear about many aspects, if some one who had worked on BIOS could throw >> a limelight it >> > will be very helpfull for me . >> > >> > -BR >> > -Goku >> ------- End of Original Message -------______________________________
Goku, On 6/24/08, Jeff Brower <j...@signalogic.com> wrote: > > Goku- > Since i am benchmarking different applications which are ported from linux, > the linking is done with a makefile which has a huge code base, am using > cygwin and CCS compiler, but not the IDE, target is connected to a different > machine which has the CCS IDE, hence here i cant use the GUI interface, i > dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, > could you pls let me know. Now that I am paying attention to what you are saying :-) Do not use the Clk_gethtime BIOS function. All that you really need to do is: 1. Configure the timer 2. read the timer This will add minimum impact to your actual code performance. CLK_gethtime should be in the basic run-time library, rts64xx.lib (not > sure of that correct name, but look for rts64-something). This is actually a DSP/BIOS function which means that you have to add BIOS to use it - a bad idea for this purpose. > > Error: _CLK_gethtime undefined symbol. > > I could see that Clk_gethtime library is missing , if i add the libraries > like bios.a64 and others , they tend to say that there are many other > symbols which are not defined. > bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx > functions. > > TI's code-gen tools for Linux are new and not widely used. I would suggest > that you build using standard CCS v3.3 on a Win machine, and test that > output code first. Since you have a "huge" code base, it's a good idea to > eliminate any possible build error, library version, link error, etc. > > Think about it this way -- TI didn't have Linux based code-gen tools until > recently (last couple of years). So that means since 1996, when they > acquired GoDSP (Code Composer), they've been pouring manpower and millions > into Win code-gen tools, not Linux. Which one do you think is more reliable > and widely used? > FYI - TI has been shipping Solaris compilers since the beginning of 'DSP time' and Linux compilers [at least for the c6000] for about 5-6 years although it hasn't been publicized. I am aware of a couple of very large companies that use these to build their production products. mikedunn -Jeff > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> > wrote: >> >> ittiam, >> >> from your description, it is rather obvious that some libraries are >> missing (assuming that the >> compile operations worked with no errors.) >> >> If you would post the names of the functions that are not found by the >> linker, we could possibly >> assist you in determing which libraries are missing. >> >> BTW: >> why are you using cgywin, etc rather than the CCS IDE for the compile/link >> operations? >> >> R. Williams >> >> ---------- Original Message ----------- >> From: i...@gmail.com >> To: c...@yahoogroups.com >> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >> Subject: [c6x] Urgent Help Required: CLK_gethtime >> >> > Hi all, >> > >> > Platform : DSK6416. >> > I have some problems regarding usage of BIOS with the header files ,all >> my source code are >> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn >> i am linking using >> > the code composer, the problem is that i need to have this working with >> the BIOS >> > Clk_gethtime, if i use the function clk_gethtime with references of the >> libraries it says >> > that other references are missing, could anyone suggest me what are the >> header files that >> > need to be included to get the clk_gethtime working with proper >> references. How can i >> > start the bios if i cant use the GUI. Which are the header files that >> need to be >> > associated with it. The documentation regarding the Bios is very poor, >> it is not quite >> > clear about many aspects, if some one who had worked on BIOS could throw >> a limelight it >> > will be very helpfull for me . >> > >> > -BR >> > -Goku >> >> ------- End of Original Message ------- >> >> > -- www.dsprelated.com/blogs-1/nf/Mike_Dunn.php______________________________
Hi All, Can i configure the timer without the BIOS Support, earlier many people have told that without the BIOS configured correctly timer cant be started , the sequence need to be completed before it could be used. Can you confirm pls. Regards, Goku On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn <m...@gmail.com> wrote: > Goku, > > On 6/24/08, Jeff Brower <j...@signalogic.com> wrote: >> >> Goku- >> Since i am benchmarking different applications which are ported from >> linux, the linking is done with a makefile which has a huge code base, am >> using cygwin and CCS compiler, but not the IDE, target is connected to a >> different machine which has the CCS IDE, hence here i cant use the GUI >> interface, i dont know how could i use Clk_gethtime without the CCS IDE GUI >> Bios Start, could you pls let me know. > Now that I am paying attention to what you are saying :-) > Do not use the Clk_gethtime BIOS function. All that you really need to do > is: > 1. Configure the timer > 2. read the timer > This will add minimum impact to your actual code performance. > > CLK_gethtime should be in the basic run-time library, rts64xx.lib (not >> sure of that correct name, but look for rts64-something). > This is actually a DSP/BIOS function which means that you have to add BIOS > to use it - a bad idea for this purpose. >> >> Error: _CLK_gethtime undefined symbol. >> >> I could see that Clk_gethtime library is missing , if i add the libraries >> like bios.a64 and others , they tend to say that there are many other >> symbols which are not defined. >> bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx >> functions. >> >> TI's code-gen tools for Linux are new and not widely used. I would >> suggest that you build using standard CCS v3.3 on a Win machine, and test >> that output code first. Since you have a "huge" code base, it's a good idea >> to eliminate any possible build error, library version, link error, etc. >> >> Think about it this way -- TI didn't have Linux based code-gen tools until >> recently (last couple of years). So that means since 1996, when they >> acquired GoDSP (Code Composer), they've been pouring manpower and millions >> into Win code-gen tools, not Linux. Which one do you think is more reliable >> and widely used? >> FYI - TI has been shipping Solaris compilers since the beginning of 'DSP > time' and Linux compilers [at least for the c6000] for about 5-6 years > although it hasn't been publicized. I am aware of a couple of very large > companies that use these to build their production products. > > mikedunn > > -Jeff >> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> >> wrote: >>> >>> ittiam, >>> >>> from your description, it is rather obvious that some libraries are >>> missing (assuming that the >>> compile operations worked with no errors.) >>> >>> If you would post the names of the functions that are not found by the >>> linker, we could possibly >>> assist you in determing which libraries are missing. >>> >>> BTW: >>> why are you using cgywin, etc rather than the CCS IDE for the >>> compile/link operations? >>> >>> R. Williams >>> >>> >>> ---------- Original Message ----------- >>> From: i...@gmail.com >>> To: c...@yahoogroups.com >>> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >>> Subject: [c6x] Urgent Help Required: CLK_gethtime >>> >>> > Hi all, >>> > >>> > Platform : DSK6416. >>> > I have some problems regarding usage of BIOS with the header files ,all >>> my source code are >>> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn >>> i am linking using >>> > the code composer, the problem is that i need to have this working with >>> the BIOS >>> > Clk_gethtime, if i use the function clk_gethtime with references of the >>> libraries it says >>> > that other references are missing, could anyone suggest me what are the >>> header files that >>> > need to be included to get the clk_gethtime working with proper >>> references. How can i >>> > start the bios if i cant use the GUI. Which are the header files that >>> need to be >>> > associated with it. The documentation regarding the Bios is very poor, >>> it is not quite >>> > clear about many aspects, if some one who had worked on BIOS could >>> throw a limelight it >>> > will be very helpfull for me . >>> > >>> > -BR >>> > -Goku >>> >>> ------- End of Original Message ------- >>> >>> >> -- > www.dsprelated.com/blogs-1/nf/Mike_Dunn.php >______________________________
Goku, On 6/24/08, Goku <i...@gmail.com> wrote: > > Hi All, > > Can i configure the timer without the BIOS Support, earlier many people > have told that without the BIOS configured correctly timer cant be started , > the sequence need to be completed before it could be used. Can you confirm > pls. Absolutely incorrect. If you are benchmarking 'non-BIOS code' you can access the timer directly - if you build with BIOS, you are actually adding an RTOS. I believe that you can find timer init code in the archives - I don't remember if there are any examples in CCS. Once you get it running, all that you need to do is a mem read to get the count. mikedunn Regards, > Goku > > On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn <m...@gmail.com> > wrote: > >> Goku, >> >> On 6/24/08, Jeff Brower <j...@signalogic.com> wrote: >>> >>> Goku- >>> >>> >>> Since i am benchmarking different applications which are ported from >>> linux, the linking is done with a makefile which has a huge code base, am >>> using cygwin and CCS compiler, but not the IDE, target is connected to a >>> different machine which has the CCS IDE, hence here i cant use the GUI >>> interface, i dont know how could i use Clk_gethtime without the CCS IDE GUI >>> Bios Start, could you pls let me know. >>> >>> >> Now that I am paying attention to what you are saying :-) >> Do not use the Clk_gethtime BIOS function. All that you really need to do >> is: >> 1. Configure the timer >> 2. read the timer >> This will add minimum impact to your actual code performance. >> >> CLK_gethtime should be in the basic run-time library, rts64xx.lib (not >>> sure of that correct name, but look for rts64-something). >>> >>> >> This is actually a DSP/BIOS function which means that you have to add BIOS >> to use it - a bad idea for this purpose. >>> >>> Error: _CLK_gethtime undefined symbol. >>> >>> I could see that Clk_gethtime library is missing , if i add the libraries >>> like bios.a64 and others , they tend to say that there are many other >>> symbols which are not defined. >>> >>> >>> bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx >>> functions. >>> >>> TI's code-gen tools for Linux are new and not widely used. I would >>> suggest that you build using standard CCS v3.3 on a Win machine, and test >>> that output code first. Since you have a "huge" code base, it's a good idea >>> to eliminate any possible build error, library version, link error, etc. >>> >>> Think about it this way -- TI didn't have Linux based code-gen tools >>> until recently (last couple of years). So that means since 1996, when they >>> acquired GoDSP (Code Composer), they've been pouring manpower and millions >>> into Win code-gen tools, not Linux. Which one do you think is more reliable >>> and widely used? >>> FYI - TI has been shipping Solaris compilers since the beginning of 'DSP >> time' and Linux compilers [at least for the c6000] for about 5-6 years >> although it hasn't been publicized. I am aware of a couple of very large >> companies that use these to build their production products. >> >> mikedunn >> >> -Jeff >>> >>> >>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams < >>> r...@lewiscounty.com> wrote: >>>> >>>> ittiam, >>>> >>>> from your description, it is rather obvious that some libraries are >>>> missing (assuming that the >>>> compile operations worked with no errors.) >>>> >>>> If you would post the names of the functions that are not found by the >>>> linker, we could possibly >>>> assist you in determing which libraries are missing. >>>> >>>> BTW: >>>> why are you using cgywin, etc rather than the CCS IDE for the >>>> compile/link operations? >>>> >>>> R. Williams >>>> >>>> >>>> ---------- Original Message ----------- >>>> From: i...@gmail.com >>>> To: c...@yahoogroups.com >>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >>>> Subject: [c6x] Urgent Help Required: CLK_gethtime >>>> >>>> > Hi all, >>>> > >>>> > Platform : DSK6416. >>>> > I have some problems regarding usage of BIOS with the header files >>>> ,all my source code are >>>> > compiled with Cygwin and TI C64x, this gives me the obj's which in >>>> turn i am linking using >>>> > the code composer, the problem is that i need to have this working >>>> with the BIOS >>>> > Clk_gethtime, if i use the function clk_gethtime with references of >>>> the libraries it says >>>> > that other references are missing, could anyone suggest me what are >>>> the header files that >>>> > need to be included to get the clk_gethtime working with proper >>>> references. How can i >>>> > start the bios if i cant use the GUI. Which are the header files that >>>> need to be >>>> > associated with it. The documentation regarding the Bios is very poor, >>>> it is not quite >>>> > clear about many aspects, if some one who had worked on BIOS could >>>> throw a limelight it >>>> > will be very helpfull for me . >>>> > >>>> > -BR >>>> > -Goku >>>> >>>> ------- End of Original Message ------- >>>> >>>> >>> -- >> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php >> -- www.dsprelated.com/blogs-1/nf/Mike_Dunn.php______________________________
ittiam, You might want to read the TI document: spru301c.pdf It contains all the basic and detailed information needed to setup/use the statistics gathering tools, like the CLK_gethtime function. R. Williams ---------- Original Message ----------- From: Goku <i...@gmail.com> To: "Jeff Brower" <j...@signalogic.com> Cc: c...@yahoogroups.com Sent: Tue, 24 Jun 2008 17:48:48 +0300 Subject: Re: [c6x] Urgent Help Required: CLK_gethtime > Hello , > > I have included rts6400.lib, but it is not defined in it, am using CCS 3.3 > Version, still getting the same error ," not able to resolve the symbol > definition" .Could you let me know the details pls. > > Regards, > Goku > > On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower <j...@signalogic.com> wrote: > > > Goku- > > > > > > Since i am benchmarking different applications which are ported from linux, > > the linking is done with a makefile which has a huge code base, am using > > cygwin and CCS compiler, but not the IDE, target is connected to a different > > machine which has the CCS IDE, hence here i cant use the GUI interface, i > > dont know how could i use Clk_gethtime without the CCS IDE GUI Bios Start, > > could you pls let me know. > > > > > > CLK_gethtime should be in the basic run-time library, rts64xx.lib (not sure > > of that correct name, but look for rts64-something). > > > > > > Error: _CLK_gethtime undefined symbol. > > > > I could see that Clk_gethtime library is missing , if i add the libraries > > like bios.a64 and others , they tend to say that there are many other > > symbols which are not defined. > > > > > > bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx > > functions. > > > > TI's code-gen tools for Linux are new and not widely used. I would suggest > > that you build using standard CCS v3.3 on a Win machine, and test that > > output code first. Since you have a "huge" code base, it's a good idea to > > eliminate any possible build error, library version, link error, etc. > > > > Think about it this way -- TI didn't have Linux based code-gen tools until > > recently (last couple of years). So that means since 1996, when they > > acquired GoDSP (Code Composer), they've been pouring manpower and millions > > into Win code-gen tools, not Linux. Which one do you think is more reliable > > and widely used? > > > > -Jeff > > > > > > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> > > wrote: > >> > >> ittiam, > >> > >> from your description, it is rather obvious that some libraries are > >> missing (assuming that the > >> compile operations worked with no errors.) > >> > >> If you would post the names of the functions that are not found by the > >> linker, we could possibly > >> assist you in determing which libraries are missing. > >> > >> BTW: > >> why are you using cgywin, etc rather than the CCS IDE for the compile/link > >> operations? > >> > >> R. Williams > >> > >> > >> ---------- Original Message ----------- > >> From: i...@gmail.com > >> To: c...@yahoogroups.com > >> Sent: Mon, 23 Jun 2008 14:09:57 -0400 > >> Subject: [c6x] Urgent Help Required: CLK_gethtime > >> > >> > Hi all, > >> > > >> > Platform : DSK6416. > >> > I have some problems regarding usage of BIOS with the header files ,all > >> my source code are > >> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn > >> i am linking using > >> > the code composer, the problem is that i need to have this working with > >> the BIOS > >> > Clk_gethtime, if i use the function clk_gethtime with references of the > >> libraries it says > >> > that other references are missing, could anyone suggest me what are the > >> header files that > >> > need to be included to get the clk_gethtime working with proper > >> references. How can i > >> > start the bios if i cant use the GUI. Which are the header files that > >> need to be > >> > associated with it. The documentation regarding the Bios is very poor, > >> it is not quite > >> > clear about many aspects, if some one who had worked on BIOS could throw > >> a limelight it > >> > will be very helpfull for me . > >> > > >> > -BR > >> > -Goku > >> ------- End of Original Message ------- > > > > ------- End of Original Message -------
Hello Dunn,
As you mentioned , i had configured the timer and running this piece of
code.
#include<std.h>
#include<stdio.h>
#include<csl.h>
#include<csl_timer.h>
//#include<irq.h>
#include "basecfg.h"
extern far TIMER_Handle hTimer1;
#define TIMER_CNT_REG 0x01980008
void main(void)
{
unsigned int start,over_head,i;
unsigned int stop,stop_profile,start_profile;
TIMER_start(hTimer1);
start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
start = TIMER_getCount(hTimer1);
for(i=0;i<100000000;i++)
{
i=i+2;
}
stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
stop = TIMER_getCount(hTimer1);
over_head = (stop_profile - start_profile);
printf("start: %d\n", start);
printf("stop: %d\n", stop);
printf("cycles: %d\n", stop - start);
printf("start: %d\n", start_profile);
printf("stop: %d\n", stop_profile);
printf("cycles: %d\n", over_head);
}
Results:
1. without the loop
start: 110
stop: 135
cycles: 25
start: 62
stop: 130
cycles: 68
2. With the loop.
start: 110
stop: 135
cycles: 25
start: 62
stop: 130
cycles: 68
The Configuration is done with the help of the GUI .cdb, where in Source for
the Clock = CPU/8 with initial value set Control Register 0x000003C1,
Period Register: 0x00002000.
If i insert a function call in the main the timer value rapidly increases
or decreases whenever the same program is run many time with huge variation.
Can you explain why the variation of the clock cycles happen?
Now that i am not using Bios , wanted to know whether this is the ideal
method to Benchmark DSK 6416. Kindly help.
Regards,
Goku
On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn <m...@gmail.com>
wrote:
> Goku,
>
> On 6/24/08, Goku <i...@gmail.com> wrote:
>
>> Hi All,
>>
>> Can i configure the timer without the BIOS Support, earlier many
people
>> have told that without the BIOS configured correctly timer cant be
started ,
>> the sequence need to be completed before it could be used. Can you
confirm
>> pls.
> Absolutely incorrect. If you are benchmarking 'non-BIOS code' you can
> access the timer directly - if you build with BIOS, you are actually
adding
> an RTOS.
>
> I believe that you can find timer init code in the archives - I don't
> remember if there are any examples in CCS. Once you get it running, all
that
> you need to do is a mem read to get the count.
>
> mikedunn
>
> Regards,
>> Goku
>>
>> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn <m...@gmail.com>
>> wrote:
>>
>>> Goku,
>>>
>>> On 6/24/08, Jeff Brower <j...@signalogic.com> wrote:
>>>>
>>>> Goku-
>>>>
>>>>
>>>> Since i am benchmarking different applications which are ported
from
>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>> different machine which has the CCS IDE, hence here i cant use
the GUI
>>>> interface, i dont know how could i use Clk_gethtime without the
CCS IDE GUI
>>>> Bios Start, could you pls let me know.
>>>>
>>>>
>>> Now that I am paying attention to what you are saying :-)
>>> Do not use the Clk_gethtime BIOS function. All that you really need
to do
>>> is:
>>> 1. Configure the timer
>>> 2. read the timer
>>> This will add minimum impact to your actual code performance.
>>>
>>>
>>>
>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib
>>>> (not sure of that correct name, but look for rts64-something).
>>>>
>>>>
>>> This is actually a DSP/BIOS function which means that you have to
add
>>> BIOS to use it - a bad idea for this purpose.
>>>
>>>
>>>>
>>>> Error: _CLK_gethtime undefined symbol.
>>>>
>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>> other symbols which are not defined.
>>>>
>>>>
>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>> functions.
>>>>
>>>> TI's code-gen tools for Linux are new and not widely used. I
would
>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>> that output code first. Since you have a "huge" code
base, it's a good idea
>>>> to eliminate any possible build error, library version, link
error, etc.
>>>>
>>>> Think about it this way -- TI didn't have Linux based code-gen
tools
>>>> until recently (last couple of years). So that means since
1996, when they
>>>> acquired GoDSP (Code Composer), they've been pouring manpower
and millions
>>>> into Win code-gen tools, not Linux. Which one do you think is
more reliable
>>>> and widely used?
>>>>
>>>
>>> FYI - TI has been shipping Solaris compilers since the beginning of
'DSP
>>> time' and Linux compilers [at least for the c6000] for about 5-6
years
>>> although it hasn't been publicized. I am aware of a couple of very
large
>>> companies that use these to build their production products.
>>>
>>> mikedunn
>>>
>>>
>>>
>>> -Jeff
>>>>
>>>>
>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>> r...@lewiscounty.com> wrote:
>>>>>
>>>>> ittiam,
>>>>>
>>>>> from your description, it is rather obvious that some
libraries are
>>>>> missing (assuming that the
>>>>> compile operations worked with no errors.)
>>>>>
>>>>> If you would post the names of the functions that are not
found by the
>>>>> linker, we could possibly
>>>>> assist you in determing which libraries are missing.
>>>>>
>>>>> BTW:
>>>>> why are you using cgywin, etc rather than the CCS IDE for
the
>>>>> compile/link operations?
>>>>>
>>>>> R. Williams
>>>>>
>>>>>
>>>>> ---------- Original Message -----------
>>>>> From: i...@gmail.com
>>>>> To: c...@yahoogroups.com
>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>
>>>>> > Hi all,
>>>>> >
>>>>> > Platform : DSK6416.
>>>>> > I have some problems regarding usage of BIOS with the
header files
>>>>> ,all my source code are
>>>>> > compiled with Cygwin and TI C64x, this gives me the
obj's which in
>>>>> turn i am linking using
>>>>> > the code composer, the problem is that i need to have
this working
>>>>> with the BIOS
>>>>> > Clk_gethtime, if i use the function clk_gethtime with
references of
>>>>> the libraries it says
>>>>> > that other references are missing, could anyone
suggest me what are
>>>>> the header files that
>>>>> > need to be included to get the clk_gethtime working
with proper
>>>>> references. How can i
>>>>> > start the bios if i cant use the GUI. Which are the
header files that
>>>>> need to be
>>>>> > associated with it. The documentation regarding the
Bios is very
>>>>> poor, it is not quite
>>>>> > clear about many aspects, if some one who had worked
on BIOS could
>>>>> throw a limelight it
>>>>> > will be very helpfull for me .
>>>>> >
>>>>> > -BR
>>>>> > -Goku
>>>>>
>>>>> ------- End of Original Message -------
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>
> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
______________________________Hi ,
In continuation with previous message, the results which are presented are
with and without the for loop in the main, as per my understanding more CPU
cycles are required to execute the loop even then the are remaining
constant, and i dont know the reason why the timer value difference is still
the same.
On Tue, Jun 24, 2008 at 10:13 PM, Goku <i...@gmail.com> wrote:
> Hello Dunn,
>
> As you mentioned , i had configured the timer and running this piece of
> code.
>
> #include<std.h>
> #include<stdio.h>
> #include<csl.h>
> #include<csl_timer.h>
> //#include<irq.h>
> #include "basecfg.h"
> extern far TIMER_Handle hTimer1;
> #define TIMER_CNT_REG 0x01980008
> void main(void)
> {
> unsigned int start,over_head,i;
> unsigned int stop,stop_profile,start_profile;
> TIMER_start(hTimer1);
> start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> start = TIMER_getCount(hTimer1);
> for(i=0;i<100000000;i++)
> {
> i=i+2;
> }
>
> stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> stop = TIMER_getCount(hTimer1);
> over_head = (stop_profile - start_profile);
> printf("start: %d\n", start);
> printf("stop: %d\n", stop);
> printf("cycles: %d\n", stop - start);
>
> printf("start: %d\n", start_profile);
> printf("stop: %d\n", stop_profile);
> printf("cycles: %d\n", over_head);
>
> }
> Results:
> 1. without the loop
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
>
> 2. With the loop.
>
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
>
> The Configuration is done with the help of the GUI .cdb, where in Source
> for the Clock = CPU/8 with initial value set Control Register 0x000003C1,
> Period Register: 0x00002000.
>
> If i insert a function call in the main the timer value rapidly increases
> or decreases whenever the same program is run many time with huge
variation.
>
> Can you explain why the variation of the clock cycles happen?
>
> Now that i am not using Bios , wanted to know whether this is the ideal
> method to Benchmark DSK 6416. Kindly help.
>
> Regards,
> Goku
>
> On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
>> Goku,
>>
>> On 6/24/08, Goku <i...@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Can i configure the timer without the BIOS Support, earlier many
people
>>> have told that without the BIOS configured correctly timer cant be
started ,
>>> the sequence need to be completed before it could be used. Can you
confirm
>>> pls.
>> Absolutely incorrect. If you are benchmarking 'non-BIOS code' you can
>> access the timer directly - if you build with BIOS, you are actually
adding
>> an RTOS.
>>
>> I believe that you can find timer init code in the archives - I don't
>> remember if there are any examples in CCS. Once you get it running, all
that
>> you need to do is a mem read to get the count.
>>
>> mikedunn
>>
>> Regards,
>>> Goku
>>>
>>> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn
<m...@gmail.com>
>>> wrote:
>>>
>>>> Goku,
>>>>
>>>> On 6/24/08, Jeff Brower <j...@signalogic.com> wrote:
>>>>>
>>>>> Goku-
>>>>>
>>>>>
>>>>> Since i am benchmarking different applications which are
ported from
>>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>>> different machine which has the CCS IDE, hence here i cant
use the GUI
>>>>> interface, i dont know how could i use Clk_gethtime without
the CCS IDE GUI
>>>>> Bios Start, could you pls let me know.
>>>>>
>>>>>
>>>> Now that I am paying attention to what you are saying :-)
>>>> Do not use the Clk_gethtime BIOS function. All that you really
need to
>>>> do is:
>>>> 1. Configure the timer
>>>> 2. read the timer
>>>> This will add minimum impact to your actual code performance.
>>>>
>>>>
>>>>
>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib
>>>>> (not sure of that correct name, but look for
rts64-something).
>>>>>
>>>>>
>>>> This is actually a DSP/BIOS function which means that you have
to add
>>>> BIOS to use it - a bad idea for this purpose.
>>>>
>>>>
>>>>>
>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>
>>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>>> other symbols which are not defined.
>>>>>
>>>>>
>>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>>> functions.
>>>>>
>>>>> TI's code-gen tools for Linux are new and not widely used.
I would
>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>> that output code first. Since you have a "huge"
code base, it's a good idea
>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>
>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>> until recently (last couple of years). So that means since
1996, when they
>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>> into Win code-gen tools, not Linux. Which one do you think
is more reliable
>>>>> and widely used?
>>>>>
>>>>
>>>> FYI - TI has been shipping Solaris compilers since the
beginning of 'DSP
>>>> time' and Linux compilers [at least for the c6000] for about
5-6 years
>>>> although it hasn't been publicized. I am aware of a couple of
very large
>>>> companies that use these to build their production products.
>>>>
>>>> mikedunn
>>>>
>>>>
>>>>
>>>> -Jeff
>>>>>
>>>>>
>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>> r...@lewiscounty.com> wrote:
>>>>>>
>>>>>> ittiam,
>>>>>>
>>>>>> from your description, it is rather obvious that some
libraries are
>>>>>> missing (assuming that the
>>>>>> compile operations worked with no errors.)
>>>>>>
>>>>>> If you would post the names of the functions that are
not found by the
>>>>>> linker, we could possibly
>>>>>> assist you in determing which libraries are missing.
>>>>>>
>>>>>> BTW:
>>>>>> why are you using cgywin, etc rather than the CCS IDE
for the
>>>>>> compile/link operations?
>>>>>>
>>>>>> R. Williams
>>>>>>
>>>>>>
>>>>>> ---------- Original Message -----------
>>>>>> From: i...@gmail.com
>>>>>> To: c...@yahoogroups.com
>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>
>>>>>> > Hi all,
>>>>>> >
>>>>>> > Platform : DSK6416.
>>>>>> > I have some problems regarding usage of BIOS with
the header files
>>>>>> ,all my source code are
>>>>>> > compiled with Cygwin and TI C64x, this gives me
the obj's which in
>>>>>> turn i am linking using
>>>>>> > the code composer, the problem is that i need to
have this working
>>>>>> with the BIOS
>>>>>> > Clk_gethtime, if i use the function clk_gethtime
with references of
>>>>>> the libraries it says
>>>>>> > that other references are missing, could anyone
suggest me what are
>>>>>> the header files that
>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>> references. How can i
>>>>>> > start the bios if i cant use the GUI. Which are
the header files
>>>>>> that need to be
>>>>>> > associated with it. The documentation regarding
the Bios is very
>>>>>> poor, it is not quite
>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>> throw a limelight it
>>>>>> > will be very helpfull for me .
>>>>>> >
>>>>>> > -BR
>>>>>> > -Goku
>>>>>>
>>>>>> ------- End of Original Message -------
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>>
>>>
>>>
>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
______________________________Goku,
On 6/24/08, Goku <i...@gmail.com> wrote:
>
> Hello Dunn,
>
> As you mentioned , i had configured the timer and running this piece of
> code.
>
> #include<std.h>
> #include<stdio.h>
> #include<csl.h>
> #include<csl_timer.h>
> //#include<irq.h>
> #include "basecfg.h"
> extern far TIMER_Handle hTimer1;
> #define TIMER_CNT_REG 0x01980008
> void main(void)
> {
> unsigned int start,over_head,i;
> unsigned int stop,stop_profile,start_profile;
> TIMER_start(hTimer1);
> start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> start = TIMER_getCount(hTimer1);
> for(i=0;i<100000000;i++)
> {
> i=i+2;
> }
>
> stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> stop = TIMER_getCount(hTimer1);
> over_head = (stop_profile - start_profile);
> printf("start: %d\n", start);
> printf("stop: %d\n", stop);
> printf("cycles: %d\n", stop - start);
>
> printf("start: %d\n", start_profile);
> printf("stop: %d\n", stop_profile);
> printf("cycles: %d\n", over_head);
>
> }
> Results:
> 1. without the loop
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
>
> 2. With the loop.
>
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
Did you compile with optimization?? If yes, the code generator could have
thrown out your loop. If you reference i after the loop [like a printf], it
will not throw it out if that is the problem.
The Configuration is done with the help of the GUI .cdb, where in Source for
> the Clock = CPU/8 with initial value set Control Register 0x000003C1,
> Period Register: 0x00002000.
>
> If i insert a function call in the main the timer value rapidly increases
> or decreases whenever the same program is run many time with huge
variation.
>
> Can you explain why the variation of the clock cycles happen?
Are you talking about your simple example or some 'real code'. Fort 'real
code', program flow, cache hits/misses, conflict stalls, and a few more
things I am sure.
Now that i am not using Bios , wanted to know whether this is the ideal
> method to Benchmark DSK 6416. Kindly help.
It depends on what you are trying to profile. For this method [or actually
any profiling], make sure that there is never a 'printf' [or any stdio]
between profile points. To keep overhead simple, you can do the following.
1. initialize and start the counter to run continuously
2. create a global array of structures one entry per profile point -
myTime.start,myTime.stop
3. at the profile points use
'gTimeCounts[n].myTime.start=TIMER_getCount(hTimer1)', etc.
4. You can tweak it to only get the first, second, etc or use a different
format to get 10 samples, etc.
You can also profile through CCS to get a good overview and then profile
individual functions as needed.
mikedunn
Regards,
> Goku
> On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
>> Goku,
>>
>> On 6/24/08, Goku <i...@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Can i configure the timer without the BIOS Support, earlier many
people
>>> have told that without the BIOS configured correctly timer cant be
started ,
>>> the sequence need to be completed before it could be used. Can you
confirm
>>> pls.
>> Absolutely incorrect. If you are benchmarking 'non-BIOS code' you can
>> access the timer directly - if you build with BIOS, you are actually
adding
>> an RTOS.
>>
>> I believe that you can find timer init code in the archives - I don't
>> remember if there are any examples in CCS. Once you get it running, all
that
>> you need to do is a mem read to get the count.
>>
>> mikedunn
>>
>> Regards,
>>> Goku
>>>
>>> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn
<m...@gmail.com>
>>> wrote:
>>>
>>>> Goku,
>>>>
>>>> On 6/24/08, Jeff Brower <j...@signalogic.com> wrote:
>>>>>
>>>>> Goku-
>>>>>
>>>>>
>>>>> Since i am benchmarking different applications which are
ported from
>>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>>> different machine which has the CCS IDE, hence here i cant
use the GUI
>>>>> interface, i dont know how could i use Clk_gethtime without
the CCS IDE GUI
>>>>> Bios Start, could you pls let me know.
>>>>>
>>>>>
>>>> Now that I am paying attention to what you are saying :-)
>>>> Do not use the Clk_gethtime BIOS function. All that you really
need to
>>>> do is:
>>>> 1. Configure the timer
>>>> 2. read the timer
>>>> This will add minimum impact to your actual code performance.
>>>>
>>>>
>>>>
>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib
>>>>> (not sure of that correct name, but look for
rts64-something).
>>>>>
>>>>>
>>>> This is actually a DSP/BIOS function which means that you have
to add
>>>> BIOS to use it - a bad idea for this purpose.
>>>>
>>>>
>>>>>
>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>
>>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>>> other symbols which are not defined.
>>>>>
>>>>>
>>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>>> functions.
>>>>>
>>>>> TI's code-gen tools for Linux are new and not widely used.
I would
>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>> that output code first. Since you have a "huge"
code base, it's a good idea
>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>
>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>> until recently (last couple of years). So that means since
1996, when they
>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>> into Win code-gen tools, not Linux. Which one do you think
is more reliable
>>>>> and widely used?
>>>>>
>>>>
>>>> FYI - TI has been shipping Solaris compilers since the
beginning of 'DSP
>>>> time' and Linux compilers [at least for the c6000] for about
5-6 years
>>>> although it hasn't been publicized. I am aware of a couple of
very large
>>>> companies that use these to build their production products.
>>>>
>>>> mikedunn
>>>>
>>>>
>>>>
>>>> -Jeff
>>>>>
>>>>>
>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>> r...@lewiscounty.com> wrote:
>>>>>>
>>>>>> ittiam,
>>>>>>
>>>>>> from your description, it is rather obvious that some
libraries are
>>>>>> missing (assuming that the
>>>>>> compile operations worked with no errors.)
>>>>>>
>>>>>> If you would post the names of the functions that are
not found by the
>>>>>> linker, we could possibly
>>>>>> assist you in determing which libraries are missing.
>>>>>>
>>>>>> BTW:
>>>>>> why are you using cgywin, etc rather than the CCS IDE
for the
>>>>>> compile/link operations?
>>>>>>
>>>>>> R. Williams
>>>>>>
>>>>>>
>>>>>> ---------- Original Message -----------
>>>>>> From: i...@gmail.com
>>>>>> To: c...@yahoogroups.com
>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>
>>>>>> > Hi all,
>>>>>> >
>>>>>> > Platform : DSK6416.
>>>>>> > I have some problems regarding usage of BIOS with
the header files
>>>>>> ,all my source code are
>>>>>> > compiled with Cygwin and TI C64x, this gives me
the obj's which in
>>>>>> turn i am linking using
>>>>>> > the code composer, the problem is that i need to
have this working
>>>>>> with the BIOS
>>>>>> > Clk_gethtime, if i use the function clk_gethtime
with references of
>>>>>> the libraries it says
>>>>>> > that other references are missing, could anyone
suggest me what are
>>>>>> the header files that
>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>> references. How can i
>>>>>> > start the bios if i cant use the GUI. Which are
the header files
>>>>>> that need to be
>>>>>> > associated with it. The documentation regarding
the Bios is very
>>>>>> poor, it is not quite
>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>> throw a limelight it
>>>>>> > will be very helpfull for me .
>>>>>> >
>>>>>> > -BR
>>>>>> > -Goku
>>>>>>
>>>>>> ------- End of Original Message -------
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>>
>>>
>>>
>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
______________________________
ittiam,
the variable 'i' is not being used, nor is the calculation within the loop.
There fore, especially with any optimization by the compiler, the loop and the
variable 'i' will be
optimized out.
That is why the clock counts are the same irregardless of the presence of the
loop in the source code.
One possibility is to reference the 'i' variable after the loop, for instance in
a 'print' statement.
Another possibility is to put the 'must itterate' pragma before the loop.
R. Williams
---------- Original Message -----------
From: Goku <i...@gmail.com>
To: "Michael Dunn" <m...@gmail.com>
Cc: "Jeff Brower" <j...@signalogic.com>, c...@yahoogroups.com
Sent: Tue, 24 Jun 2008 22:13:45 +0300
Subject: Re: [c6x] Urgent Help Required: CLK_gethtime
> Hello Dunn,
>
> As you mentioned , i had configured the timer and running this piece of
> code.
>
> #include<std.h>
> #include<stdio.h>
> #include<csl.h>
> #include<csl_timer.h>
> //#include<irq.h>
> #include "basecfg.h"
> extern far TIMER_Handle hTimer1;
> #define TIMER_CNT_REG 0x01980008
> void main(void)
> {
> unsigned int start,over_head,i;
> unsigned int stop,stop_profile,start_profile;
> TIMER_start(hTimer1);
> start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> start = TIMER_getCount(hTimer1);
> for(i=0;i<100000000;i++)
> {
> i=i+2;
> }
>
> stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
> stop = TIMER_getCount(hTimer1);
> over_head = (stop_profile - start_profile);
> printf("start: %d\n", start);
> printf("stop: %d\n", stop);
> printf("cycles: %d\n", stop - start);
>
> printf("start: %d\n", start_profile);
> printf("stop: %d\n", stop_profile);
> printf("cycles: %d\n", over_head);
>
> }
> Results:
> 1. without the loop
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
>
> 2. With the loop.
>
> start: 110
> stop: 135
> cycles: 25
>
> start: 62
> stop: 130
> cycles: 68
>
> The Configuration is done with the help of the GUI .cdb, where in Source
for
> the Clock = CPU/8 with initial value set Control Register 0x000003C1,
> Period Register: 0x00002000.
>
> If i insert a function call in the main the timer value rapidly increases
> or decreases whenever the same program is run many time with huge
variation.
>
> Can you explain why the variation of the clock cycles happen?
>
> Now that i am not using Bios , wanted to know whether this is the ideal
> method to Benchmark DSK 6416. Kindly help.
>
> Regards,
> Goku
>
> On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
> > Goku,
> >
> > On 6/24/08, Goku <i...@gmail.com> wrote:
> >
> >> Hi All,
> >>
> >> Can i configure the timer without the BIOS Support, earlier many
people
> >> have told that without the BIOS configured correctly timer cant be
started ,
> >> the sequence need to be completed before it could be used. Can
you confirm
> >> pls.
> >
> >
> > Absolutely incorrect. If you are benchmarking 'non-BIOS code' you can
> > access the timer directly - if you build with BIOS, you are actually
adding
> > an RTOS.
> >
> > I believe that you can find timer init code in the archives - I don't
> > remember if there are any examples in CCS. Once you get it running,
all that
> > you need to do is a mem read to get the count.
> >
> > mikedunn
> >
> > Regards,
> >> Goku
> >>
> >> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn
<m...@gmail.com>
> >> wrote:
> >>
> >>> Goku,
> >>>
> >>> On 6/24/08, Jeff Brower <j...@signalogic.com> wrote:
> >>>>
> >>>> Goku-
> >>>>
> >>>>
> >>>> Since i am benchmarking different applications which are
ported from
> >>>> linux, the linking is done with a makefile which has a
huge code base, am
> >>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
> >>>> different machine which has the CCS IDE, hence here i cant
use the GUI
> >>>> interface, i dont know how could i use Clk_gethtime
without the CCS IDE GUI
> >>>> Bios Start, could you pls let me know.
> >>>>
> >>>>
> >>> Now that I am paying attention to what you are saying :-)
> >>> Do not use the Clk_gethtime BIOS function. All that you really
need to do
> >>> is:
> >>> 1. Configure the timer
> >>> 2. read the timer
> >>> This will add minimum impact to your actual code performance.
> >>>
> >>>
> >>>
> >>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib
> >>>> (not sure of that correct name, but look for
rts64-something).
> >>>>
> >>>>
> >>> This is actually a DSP/BIOS function which means that you have
to add
> >>> BIOS to use it - a bad idea for this purpose.
> >>>
> >>>
> >>>>
> >>>> Error: _CLK_gethtime undefined symbol.
> >>>>
> >>>> I could see that Clk_gethtime library is missing , if i
add the
> >>>> libraries like bios.a64 and others , they tend to say that
there are many
> >>>> other symbols which are not defined.
> >>>>
> >>>>
> >>>> bios.a64 sounds to me like an RTDX library... nothing to
do with CLK_xx
> >>>> functions.
> >>>>
> >>>> TI's code-gen tools for Linux are new and not widely used.
I would
> >>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
> >>>> that output code first. Since you have a "huge"
code base, it's a good idea
> >>>> to eliminate any possible build error, library version,
link error, etc.
> >>>>
> >>>> Think about it this way -- TI didn't have Linux based
code-gen tools
> >>>> until recently (last couple of years). So that means
since 1996, when they
> >>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
> >>>> into Win code-gen tools, not Linux. Which one do you
think is more reliable
> >>>> and widely used?
> >>>>
> >>>
> >>> FYI - TI has been shipping Solaris compilers since the
beginning of 'DSP
> >>> time' and Linux compilers [at least for the c6000] for about
5-6 years
> >>> although it hasn't been publicized. I am aware of a couple of
very large
> >>> companies that use these to build their production products.
> >>>
> >>> mikedunn
> >>>
> >>>
> >>>
> >>> -Jeff
> >>>>
> >>>>
> >>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
> >>>> r...@lewiscounty.com> wrote:
> >>>>>
> >>>>> ittiam,
> >>>>>
> >>>>> from your description, it is rather obvious that some
libraries are
> >>>>> missing (assuming that the
> >>>>> compile operations worked with no errors.)
> >>>>>
> >>>>> If you would post the names of the functions that are
not found by the
> >>>>> linker, we could possibly
> >>>>> assist you in determing which libraries are missing.
> >>>>>
> >>>>> BTW:
> >>>>> why are you using cgywin, etc rather than the CCS IDE
for the
> >>>>> compile/link operations?
> >>>>>
> >>>>> R. Williams
> >>>>>
> >>>>>
> >>>>> ---------- Original Message -----------
> >>>>> From: i...@gmail.com
> >>>>> To: c...@yahoogroups.com
> >>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
> >>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
> >>>>>
> >>>>> > Hi all,
> >>>>> >
> >>>>> > Platform : DSK6416.
> >>>>> > I have some problems regarding usage of BIOS with
the header files
> >>>>> ,all my source code are
> >>>>> > compiled with Cygwin and TI C64x, this gives me
the obj's which in
> >>>>> turn i am linking using
> >>>>> > the code composer, the problem is that i need to
have this working
> >>>>> with the BIOS
> >>>>> > Clk_gethtime, if i use the function clk_gethtime
with references of
> >>>>> the libraries it says
> >>>>> > that other references are missing, could anyone
suggest me what are
> >>>>> the header files that
> >>>>> > need to be included to get the clk_gethtime
working with proper
> >>>>> references. How can i
> >>>>> > start the bios if i cant use the GUI. Which are
the header files that
> >>>>> need to be
> >>>>> > associated with it. The documentation regarding
the Bios is very
> >>>>> poor, it is not quite
> >>>>> > clear about many aspects, if some one who had
worked on BIOS could
> >>>>> throw a limelight it
> >>>>> > will be very helpfull for me .
> >>>>> >
> >>>>> > -BR
> >>>>> > -Goku
> >>>>>
> >>>>> ------- End of Original Message -------
> >>>>>
> >>>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
> >>>
> >>
> >>
> >
> >
> > --
> > www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
> >
------- End of Original Message -------
______________________________Hello Dunn,
I have optimization on i.e o2, which tells that the loop wont be considered
? other question is that when i am using API's of CSL am getting
different cycle count, and if i am referring to directly to a Mem Loc of the
timer, am getting different result, which one is correct ?
Regards,
Goku
On Tue, Jun 24, 2008 at 10:58 PM, Michael Dunn <m...@gmail.com>
wrote:
> Goku,
>
> On 6/24/08, Goku <i...@gmail.com> wrote:
>
>> Hello Dunn,
>>
>> As you mentioned , i had configured the timer and running this piece
of
>> code.
>>
>> #include<std.h>
>> #include<stdio.h>
>> #include<csl.h>
>> #include<csl_timer.h>
>> //#include<irq.h>
>> #include "basecfg.h"
>> extern far TIMER_Handle hTimer1;
>> #define TIMER_CNT_REG 0x01980008
>> void main(void)
>> {
>> unsigned int start,over_head,i;
>> unsigned int stop,stop_profile,start_profile;
>> TIMER_start(hTimer1);
>> start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
>> start = TIMER_getCount(hTimer1);
>> for(i=0;i<100000000;i++)
>> {
>> i=i+2;
>> }
>>
>> stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
>> stop = TIMER_getCount(hTimer1);
>> over_head = (stop_profile - start_profile);
>> printf("start: %d\n", start);
>> printf("stop: %d\n", stop);
>> printf("cycles: %d\n", stop - start);
>>
>> printf("start: %d\n", start_profile);
>> printf("stop: %d\n", stop_profile);
>> printf("cycles: %d\n", over_head);
>>
>> }
>> Results:
>> 1. without the loop
>> start: 110
>> stop: 135
>> cycles: 25
>>
>> start: 62
>> stop: 130
>> cycles: 68
>>
>> 2. With the loop.
>>
>> start: 110
>> stop: 135
>> cycles: 25
>>
>> start: 62
>> stop: 130
>> cycles: 68
> Did you compile with optimization?? If yes, the code generator could have
> thrown out your loop. If you reference i after the loop [like a printf],
it
> will not throw it out if that is the problem.
>
> The Configuration is done with the help of the GUI .cdb, where in Source
>> for the Clock = CPU/8 with initial value set Control Register
0x000003C1,
>> Period Register: 0x00002000.
>>
>> If i insert a function call in the main the timer value rapidly
increases
>> or decreases whenever the same program is run many time with huge
variation.
>>
>> Can you explain why the variation of the clock cycles happen?
> Are you talking about your simple example or some 'real code'. Fort 'real
> code', program flow, cache hits/misses, conflict stalls, and a few more
> things I am sure.
>
> Now that i am not using Bios , wanted to know whether this is the ideal
>> method to Benchmark DSK 6416. Kindly help.
> It depends on what you are trying to profile. For this method [or
actually
> any profiling], make sure that there is never a 'printf' [or any stdio]
> between profile points. To keep overhead simple, you can do the following.
> 1. initialize and start the counter to run continuously
> 2. create a global array of structures one entry per profile point -
> myTime.start,myTime.stop
> 3. at the profile points use
> 'gTimeCounts[n].myTime.start=TIMER_getCount(hTimer1)', etc.
> 4. You can tweak it to only get the first, second, etc or use a different
> format to get 10 samples, etc.
>
> You can also profile through CCS to get a good overview and then profile
> individual functions as needed.
>
> mikedunn
>
> Regards,
>> Goku
>> On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn <m...@gmail.com>
>> wrote:
>>
>>> Goku,
>>>
>>> On 6/24/08, Goku <i...@gmail.com> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Can i configure the timer without the BIOS Support, earlier
many people
>>>> have told that without the BIOS configured correctly timer cant
be started ,
>>>> the sequence need to be completed before it could be used. Can
you confirm
>>>> pls.
>>>
>>>
>>> Absolutely incorrect. If you are benchmarking 'non-BIOS code' you
can
>>> access the timer directly - if you build with BIOS, you are
actually adding
>>> an RTOS.
>>>
>>> I believe that you can find timer init code in the archives - I
don't
>>> remember if there are any examples in CCS. Once you get it running,
all that
>>> you need to do is a mem read to get the count.
>>>
>>> mikedunn
>>>
>>> Regards,
>>>> Goku
>>>>
>>>> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn
<m...@gmail.com>
>>>> wrote:
>>>>
>>>>> Goku,
>>>>>
>>>>> On 6/24/08, Jeff Brower <j...@signalogic.com>
wrote:
>>>>>>
>>>>>> Goku-
>>>>>>
>>>>>>
>>>>>> Since i am benchmarking different applications which
are ported from
>>>>>> linux, the linking is done with a makefile which has a
huge code base, am
>>>>>> using cygwin and CCS compiler, but not the IDE, target
is connected to a
>>>>>> different machine which has the CCS IDE, hence here i
cant use the GUI
>>>>>> interface, i dont know how could i use Clk_gethtime
without the CCS IDE GUI
>>>>>> Bios Start, could you pls let me know.
>>>>>>
>>>>>>
>>>>> Now that I am paying attention to what you are saying :-)
>>>>> Do not use the Clk_gethtime BIOS function. All that you
really need to
>>>>> do is:
>>>>> 1. Configure the timer
>>>>> 2. read the timer
>>>>> This will add minimum impact to your actual code
performance.
>>>>>
>>>>>
>>>>>
>>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib
>>>>>> (not sure of that correct name, but look for
rts64-something).
>>>>>>
>>>>>>
>>>>> This is actually a DSP/BIOS function which means that you
have to add
>>>>> BIOS to use it - a bad idea for this purpose.
>>>>>
>>>>>
>>>>>>
>>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>>
>>>>>> I could see that Clk_gethtime library is missing , if i
add the
>>>>>> libraries like bios.a64 and others , they tend to say
that there are many
>>>>>> other symbols which are not defined.
>>>>>>
>>>>>>
>>>>>> bios.a64 sounds to me like an RTDX library... nothing
to do with
>>>>>> CLK_xx functions.
>>>>>>
>>>>>> TI's code-gen tools for Linux are new and not widely
used. I would
>>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>>> that output code first. Since you have a
"huge" code base, it's a good idea
>>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>>
>>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>>> until recently (last couple of years). So that means
since 1996, when they
>>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>>> into Win code-gen tools, not Linux. Which one do you
think is more reliable
>>>>>> and widely used?
>>>>>>
>>>>>
>>>>> FYI - TI has been shipping Solaris compilers since the
beginning of
>>>>> 'DSP time' and Linux compilers [at least for the c6000] for
about 5-6 years
>>>>> although it hasn't been publicized. I am aware of a couple
of very large
>>>>> companies that use these to build their production
products.
>>>>>
>>>>> mikedunn
>>>>>
>>>>>
>>>>>
>>>>> -Jeff
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>>> r...@lewiscounty.com> wrote:
>>>>>>>
>>>>>>> ittiam,
>>>>>>>
>>>>>>> from your description, it is rather obvious that
some libraries are
>>>>>>> missing (assuming that the
>>>>>>> compile operations worked with no errors.)
>>>>>>>
>>>>>>> If you would post the names of the functions that
are not found by
>>>>>>> the linker, we could possibly
>>>>>>> assist you in determing which libraries are
missing.
>>>>>>>
>>>>>>> BTW:
>>>>>>> why are you using cgywin, etc rather than the CCS
IDE for the
>>>>>>> compile/link operations?
>>>>>>>
>>>>>>> R. Williams
>>>>>>>
>>>>>>>
>>>>>>> ---------- Original Message -----------
>>>>>>> From: i...@gmail.com
>>>>>>> To: c...@yahoogroups.com
>>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>>
>>>>>>> > Hi all,
>>>>>>> >
>>>>>>> > Platform : DSK6416.
>>>>>>> > I have some problems regarding usage of BIOS
with the header files
>>>>>>> ,all my source code are
>>>>>>> > compiled with Cygwin and TI C64x, this gives
me the obj's which in
>>>>>>> turn i am linking using
>>>>>>> > the code composer, the problem is that i need
to have this working
>>>>>>> with the BIOS
>>>>>>> > Clk_gethtime, if i use the function
clk_gethtime with references of
>>>>>>> the libraries it says
>>>>>>> > that other references are missing, could
anyone suggest me what are
>>>>>>> the header files that
>>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>>> references. How can i
>>>>>>> > start the bios if i cant use the GUI. Which
are the header files
>>>>>>> that need to be
>>>>>>> > associated with it. The documentation
regarding the Bios is very
>>>>>>> poor, it is not quite
>>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>>> throw a limelight it
>>>>>>> > will be very helpfull for me .
>>>>>>> >
>>>>>>> > -BR
>>>>>>> > -Goku
>>>>>>>
>>>>>>> ------- End of Original Message -------
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>
> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
______________________________Goku,
On 6/25/08, Goku <i...@gmail.com> wrote:
>
> Hello Dunn,
>
> I have optimization on i.e o2, which tells that the loop wont be
considered
> ? other question is that when i am using API's of CSL am getting
> different cycle count, and if i am referring to directly to a Mem Loc of
the
> timer, am getting different result, which one is correct ?
How much different?? If it is a small difference, the CSL may have some
additional overhead or the code is getting optimized differently. If it is
a very large difference, you may be reading two different counters.
You can have the compiler create the '.asm' files and look at the generated
code.
mikedunn
Regards,
> Goku
>
> On Tue, Jun 24, 2008 at 10:58 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
>> Goku,
>>
>> On 6/24/08, Goku <i...@gmail.com> wrote:
>>
>>> Hello Dunn,
>>>
>>> As you mentioned , i had configured the timer and running this
piece of
>>> code.
>>>
>>> #include<std.h>
>>> #include<stdio.h>
>>> #include<csl.h>
>>> #include<csl_timer.h>
>>> //#include<irq.h>
>>> #include "basecfg.h"
>>> extern far TIMER_Handle hTimer1;
>>> #define TIMER_CNT_REG 0x01980008
>>> void main(void)
>>> {
>>> unsigned int start,over_head,i;
>>> unsigned int stop,stop_profile,start_profile;
>>> TIMER_start(hTimer1);
>>> start_profile = *(volatile Uint32 *) TIMER_CNT_REG;
>>> start = TIMER_getCount(hTimer1);
>>> for(i=0;i<100000000;i++)
>>> {
>>> i=i+2;
>>> }
>>>
>>> stop_profile = *(volatile Uint32 *) TIMER_CNT_REG;
>>> stop = TIMER_getCount(hTimer1);
>>> over_head = (stop_profile - start_profile);
>>> printf("start: %d\n", start);
>>> printf("stop: %d\n", stop);
>>> printf("cycles: %d\n", stop - start);
>>>
>>> printf("start: %d\n", start_profile);
>>> printf("stop: %d\n", stop_profile);
>>> printf("cycles: %d\n", over_head);
>>>
>>> }
>>> Results:
>>> 1. without the loop
>>> start: 110
>>> stop: 135
>>> cycles: 25
>>>
>>> start: 62
>>> stop: 130
>>> cycles: 68
>>>
>>> 2. With the loop.
>>>
>>> start: 110
>>> stop: 135
>>> cycles: 25
>>>
>>> start: 62
>>> stop: 130
>>> cycles: 68
>> Did you compile with optimization?? If yes, the code generator could
have
>> thrown out your loop. If you reference i after the loop [like a
printf], it
>> will not throw it out if that is the problem.
>>
>> The Configuration is done with the help of the GUI .cdb, where in
Source
>>> for the Clock = CPU/8 with initial value set Control Register
0x000003C1,
>>> Period Register: 0x00002000.
>>>
>>> If i insert a function call in the main the timer value rapidly
>>> increases or decreases whenever the same program is run many time
with huge
>>> variation.
>>> Can you explain why the variation of the clock cycles happen?
>> Are you talking about your simple example or some 'real code'. Fort
'real
>> code', program flow, cache hits/misses, conflict stalls, and a few
more
>> things I am sure.
>>
>> Now that i am not using Bios , wanted to know whether this is the
ideal
>>> method to Benchmark DSK 6416. Kindly help.
>> It depends on what you are trying to profile. For this method [or
>> actually any profiling], make sure that there is never a 'printf' [or
any
>> stdio] between profile points. To keep overhead simple, you can do the
>> following.
>> 1. initialize and start the counter to run continuously
>> 2. create a global array of structures one entry per profile point -
>> myTime.start,myTime.stop
>> 3. at the profile points use
>> 'gTimeCounts[n].myTime.start=TIMER_getCount(hTimer1)', etc.
>> 4. You can tweak it to only get the first, second, etc or use a
different
>> format to get 10 samples, etc.
>>
>> You can also profile through CCS to get a good overview and then
profile
>> individual functions as needed.
>>
>> mikedunn
>>
>> Regards,
>>> Goku
>>>
>>>
>>> On Tue, Jun 24, 2008 at 7:01 PM, Michael Dunn
<m...@gmail.com>
>>> wrote:
>>>
>>>> Goku,
>>>>
>>>> On 6/24/08, Goku <i...@gmail.com> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> Can i configure the timer without the BIOS Support, earlier
many people
>>>>> have told that without the BIOS configured correctly timer
cant be started ,
>>>>> the sequence need to be completed before it could be used.
Can you confirm
>>>>> pls.
>>>>
>>>>
>>>> Absolutely incorrect. If you are benchmarking 'non-BIOS code'
you can
>>>> access the timer directly - if you build with BIOS, you are
actually adding
>>>> an RTOS.
>>>>
>>>> I believe that you can find timer init code in the archives - I
don't
>>>> remember if there are any examples in CCS. Once you get it
running, all that
>>>> you need to do is a mem read to get the count.
>>>>
>>>> mikedunn
>>>>
>>>> Regards,
>>>>> Goku
>>>>>
>>>>> On Tue, Jun 24, 2008 at 6:14 PM, Michael Dunn
<m...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Goku,
>>>>>>
>>>>>> On 6/24/08, Jeff Brower <j...@signalogic.com>
wrote:
>>>>>>>
>>>>>>> Goku-
>>>>>>>
>>>>>>>
>>>>>>> Since i am benchmarking different applications
which are ported from
>>>>>>> linux, the linking is done with a makefile which
has a huge code base, am
>>>>>>> using cygwin and CCS compiler, but not the IDE,
target is connected to a
>>>>>>> different machine which has the CCS IDE, hence here
i cant use the GUI
>>>>>>> interface, i dont know how could i use Clk_gethtime
without the CCS IDE GUI
>>>>>>> Bios Start, could you pls let me know.
>>>>>>>
>>>>>>>
>>>>>> Now that I am paying attention to what you are saying
:-)
>>>>>> Do not use the Clk_gethtime BIOS function. All that you
really need to
>>>>>> do is:
>>>>>> 1. Configure the timer
>>>>>> 2. read the timer
>>>>>> This will add minimum impact to your actual code
performance.
>>>>>>
>>>>>>
>>>>>>
>>>>>> CLK_gethtime should be in the basic run-time
library, rts64xx.lib
>>>>>>> (not sure of that correct name, but look for
rts64-something).
>>>>>>>
>>>>>>>
>>>>>> This is actually a DSP/BIOS function which means that
you have to add
>>>>>> BIOS to use it - a bad idea for this purpose.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>>>
>>>>>>> I could see that Clk_gethtime library is missing ,
if i add the
>>>>>>> libraries like bios.a64 and others , they tend to
say that there are many
>>>>>>> other symbols which are not defined.
>>>>>>>
>>>>>>>
>>>>>>> bios.a64 sounds to me like an RTDX library...
nothing to do with
>>>>>>> CLK_xx functions.
>>>>>>>
>>>>>>> TI's code-gen tools for Linux are new and not
widely used. I would
>>>>>>> suggest that you build using standard CCS v3.3 on a
Win machine, and test
>>>>>>> that output code first. Since you have a
"huge" code base, it's a good idea
>>>>>>> to eliminate any possible build error, library
version, link error, etc.
>>>>>>>
>>>>>>> Think about it this way -- TI didn't have Linux
based code-gen tools
>>>>>>> until recently (last couple of years). So that
means since 1996, when they
>>>>>>> acquired GoDSP (Code Composer), they've been
pouring manpower and millions
>>>>>>> into Win code-gen tools, not Linux. Which one do
you think is more reliable
>>>>>>> and widely used?
>>>>>>>
>>>>>>
>>>>>> FYI - TI has been shipping Solaris compilers since the
beginning of
>>>>>> 'DSP time' and Linux compilers [at least for the c6000]
for about 5-6 years
>>>>>> although it hasn't been publicized. I am aware of a
couple of very large
>>>>>> companies that use these to build their production
products.
>>>>>>
>>>>>> mikedunn
>>>>>>
>>>>>>
>>>>>>
>>>>>> -Jeff
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams
<
>>>>>>> r...@lewiscounty.com> wrote:
>>>>>>>>
>>>>>>>> ittiam,
>>>>>>>>
>>>>>>>> from your description, it is rather obvious
that some libraries are
>>>>>>>> missing (assuming that the
>>>>>>>> compile operations worked with no errors.)
>>>>>>>>
>>>>>>>> If you would post the names of the functions
that are not found by
>>>>>>>> the linker, we could possibly
>>>>>>>> assist you in determing which libraries are
missing.
>>>>>>>>
>>>>>>>> BTW:
>>>>>>>> why are you using cgywin, etc rather than the
CCS IDE for the
>>>>>>>> compile/link operations?
>>>>>>>>
>>>>>>>> R. Williams
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------- Original Message -----------
>>>>>>>> From: i...@gmail.com
>>>>>>>> To: c...@yahoogroups.com
>>>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>>>> Subject: [c6x] Urgent Help Required:
CLK_gethtime
>>>>>>>>
>>>>>>>> > Hi all,
>>>>>>>> >
>>>>>>>> > Platform : DSK6416.
>>>>>>>> > I have some problems regarding usage of
BIOS with the header files
>>>>>>>> ,all my source code are
>>>>>>>> > compiled with Cygwin and TI C64x, this
gives me the obj's which in
>>>>>>>> turn i am linking using
>>>>>>>> > the code composer, the problem is that i
need to have this working
>>>>>>>> with the BIOS
>>>>>>>> > Clk_gethtime, if i use the function
clk_gethtime with references
>>>>>>>> of the libraries it says
>>>>>>>> > that other references are missing, could
anyone suggest me what
>>>>>>>> are the header files that
>>>>>>>> > need to be included to get the
clk_gethtime working with proper
>>>>>>>> references. How can i
>>>>>>>> > start the bios if i cant use the GUI.
Which are the header files
>>>>>>>> that need to be
>>>>>>>> > associated with it. The documentation
regarding the Bios is very
>>>>>>>> poor, it is not quite
>>>>>>>> > clear about many aspects, if some one who
had worked on BIOS could
>>>>>>>> throw a limelight it
>>>>>>>> > will be very helpfull for me .
>>>>>>>> >
>>>>>>>> > -BR
>>>>>>>> > -Goku
>>>>>>>>
>>>>>>>> ------- End of Original Message -------
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>>
>>>
>>>
>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
______________________________Goku- > I have included rts6400.lib, but it is not defined in it, am using CCS 3.3 Version, > still getting the same error ," not able to resolve the symbol definition" .Could > you let me know the details pls. _CLK_gethtime is defined in bios.a64, or similar depending on the DSP type. I think it gets resolved to CLK_F_gethtime (function defined in asm code). bios.a64 file is not an rtdx lib file; ignore my previous comment, Mike and Richard's suggestions about simpler ways to benchmark and profile code are accurate and useful. You should try those. If for some reason you still want to use _CLK_gethtime, then you have to use it together with _CLK_getltime and also have to deal with issues of timer wrap-around and interrupt enable/disable for _getltime. This doc has a good explanation: http://focus.ti.com/lit/an/spra829/spra829.pdf -Jeff > On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower <j...@signalogic.com> wrote: > > Goku- > > Since i am benchmarking different applications which are ported from > > linux, the linking is done with a makefile which has a huge code base, > > am using cygwin and CCS compiler, but not the IDE, target is connected > > to a different machine which has the CCS IDE, hence here i cant use the > > GUI interface, i dont know how could i use Clk_gethtime without the CCS > > IDE GUI Bios Start, could you pls let me know. > CLK_gethtime should be in the basic run-time library, rts64xx.lib (not > sure of that correct name, but look for rts64-something). > > Error: _CLK_gethtime undefined symbol. > > > > I could see that Clk_gethtime library is missing , if i add the > > libraries like bios.a64 and others , they tend to say that there are > > many other symbols which are not defined. > bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx > functions. > > TI's code-gen tools for Linux are new and not widely used. I would > suggest that you build using standard CCS v3.3 on a Win machine, and test > that output code first. Since you have a "huge" code base, it's a good > idea to eliminate any possible build error, library version, link error, > etc. > > Think about it this way -- TI didn't have Linux based code-gen tools > until recently (last couple of years). So that means since 1996, when > they acquired GoDSP (Code Composer), they've been pouring manpower and > millions into Win code-gen tools, not Linux. Which one do you think is > more reliable and widely used? > > -Jeff > > On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams > > <r...@lewiscounty.com> wrote: > > > > ittiam, > > > > from your description, it is rather obvious that some > > libraries are missing (assuming that the > > compile operations worked with no errors.) > > > > If you would post the names of the functions that are not > > found by the linker, we could possibly > > assist you in determing which libraries are missing. > > > > BTW: > > why are you using cgywin, etc rather than the CCS IDE for the > > compile/link operations? > > > > R. Williams > > > > ---------- Original Message ----------- > > From: i...@gmail.com > > To: c...@yahoogroups.com > > Sent: Mon, 23 Jun 2008 14:09:57 -0400 > > Subject: [c6x] Urgent Help Required: CLK_gethtime > > > > > Hi all, > > > > > > Platform : DSK6416. > > > I have some problems regarding usage of BIOS with the > > header files ,all my source code are > > > compiled with Cygwin and TI C64x, this gives me the obj's > > which in turn i am linking using > > > the code composer, the problem is that i need to have this > > working with the BIOS > > > Clk_gethtime, if i use the function clk_gethtime with > > references of the libraries it says > > > that other references are missing, could anyone suggest me > > what are the header files that > > > need to be included to get the clk_gethtime working with > > proper references. How can i > > > start the bios if i cant use the GUI. Which are the header > > files that need to be > > > associated with it. The documentation regarding the Bios is > > very poor, it is not quite > > > clear about many aspects, if some one who had worked on > > BIOS could throw a limelight it > > > will be very helpfull for me . > > > > > > -BR > > > -Goku------- End of Original Message ------- > >______________________________
Hello, I had configured the Timer as per Dunn, with the following configurations, and i am experiencing huge amount of clock cycle differences for the execution of the same code. Please Could any one of you explain the same, Code : MP3 Player. Result : Iterations = 1 -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8 config for the timer Iterations = 2 -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8 config for the timer The same code was rerun after a successful reboot of the DSK 6416 and then i got the result for Iteration 2 which is almost half of the cycles taken for Iteration 1. When i was using the debugger CCS Singles step i could see that the timer was overflowing in the timer register, even though i had set values set for PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-: Tick= 1000 Microseconds/Int, HWi_14 configured for Timer 0 , i could understand this behaviour . Can anyone pls let me know why there is a huge variation in the clock cycles, all of my code resides in the SD RAM, and HWINIT_VEC are residing in the Internal memory. Regards, Goku On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower <j...@signalogic.com> wrote: > Goku- > I have included rts6400.lib, but it is not defined in it, am using CCS 3.3 > Version, still getting the same error ," not able to resolve the symbol > definition" .Could you let me know the details pls. > _CLK_gethtime is defined in bios.a64, or similar depending on the DSP > type. I think it gets resolved to CLK_F_gethtime (function defined in asm > code). bios.a64 file is not an rtdx lib file; ignore my previous comment, > > Mike and Richard's suggestions about simpler ways to benchmark and profile > code are accurate and useful. You should try those. If for some reason you > still want to use _CLK_gethtime, then you have to use it together with > _CLK_getltime and also have to deal with issues of timer wrap-around and > interrupt enable/disable for _getltime. This doc has a good explanation: > > http://focus.ti.com/lit/an/spra829/spra829.pdf > > -Jeff > On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower <j...@signalogic.com> > wrote: >> >> Goku- >> >> Since i am benchmarking different applications which are ported from >> linux, the linking is done with a makefile which has a huge code base, am >> using cygwin and CCS compiler, but not the IDE, target is connected to a >> different machine which has the CCS IDE, hence here i cant use the GUI >> interface, i dont know how could i use Clk_gethtime without the CCS IDE GUI >> Bios Start, could you pls let me know. >> CLK_gethtime should be in the basic run-time library, rts64xx.lib (not >> sure of that correct name, but look for rts64-something). >> Error: _CLK_gethtime undefined symbol. >> >> I could see that Clk_gethtime library is missing , if i add the libraries >> like bios.a64 and others , they tend to say that there are many other >> symbols which are not defined. >> bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx >> functions. >> >> TI's code-gen tools for Linux are new and not widely used. I would >> suggest that you build using standard CCS v3.3 on a Win machine, and test >> that output code first. Since you have a "huge" code base, it's a good idea >> to eliminate any possible build error, library version, link error, etc. >> >> Think about it this way -- TI didn't have Linux based code-gen tools until >> recently (last couple of years). So that means since 1996, when they >> acquired GoDSP (Code Composer), they've been pouring manpower and millions >> into Win code-gen tools, not Linux. Which one do you think is more reliable >> and widely used? >> >> -Jeff >> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <r...@lewiscounty.com> >> wrote: >>> >>> ittiam, >>> >>> from your description, it is rather obvious that some libraries are >>> missing (assuming that the >>> compile operations worked with no errors.) >>> >>> If you would post the names of the functions that are not found by the >>> linker, we could possibly >>> assist you in determing which libraries are missing. >>> >>> BTW: >>> why are you using cgywin, etc rather than the CCS IDE for the >>> compile/link operations? >>> >>> R. Williams >>> >>> ---------- Original Message ----------- >>> From: i...@gmail.com >>> To: c...@yahoogroups.com >>> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >>> Subject: [c6x] Urgent Help Required: CLK_gethtime >>> >>> > Hi all, >>> > >>> > Platform : DSK6416. >>> > I have some problems regarding usage of BIOS with the header files ,all >>> my source code are >>> > compiled with Cygwin and TI C64x, this gives me the obj's which in turn >>> i am linking using >>> > the code composer, the problem is that i need to have this working with >>> the BIOS >>> > Clk_gethtime, if i use the function clk_gethtime with references of the >>> libraries it says >>> > that other references are missing, could anyone suggest me what are the >>> header files that >>> > need to be included to get the clk_gethtime working with proper >>> references. How can i >>> > start the bios if i cant use the GUI. Which are the header files that >>> need to be >>> > associated with it. The documentation regarding the Bios is very poor, >>> it is not quite >>> > clear about many aspects, if some one who had worked on BIOS could >>> throw a limelight it >>> > will be very helpfull for me . >>> > >>> > -BR >>> > -Goku------- End of Original Message ------- >>> >>>______________________________
Goku, On 6/26/08, Goku <i...@gmail.com> wrote: > > Hello, > > I had configured the Timer as per Dunn, with the following configurations, > and i am experiencing huge amount of clock cycle differences for the > execution of the same code. > > Please Could any one of you explain the same, > > Code : MP3 Player. > > Result : > Iterations = 1 > -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8 config for > the timer > > Iterations = 2 > -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8 config for > the timer > The same code was rerun after a successful reboot of the DSK 6416 and then > i got the result for Iteration 2 which is almost half of the cycles taken > for Iteration 1. > The very first pass will have nothing in L1 cache and you will get 100% misses. Passes 2 and later should have similar times [assuming similat code flow]. When i was using the debugger CCS Singles step i could see that the timer > was overflowing in the timer register, even though i had set values set for > PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-: Tick= 1000 > Microseconds/Int, HWi_14 configured for Timer 0 , i could understand this > behaviour . > The timer knows nothing about the CPU state and will not give reliable numbers when you halt the DSP. If you want to manually profile a function, use the 'profile clock' in CCS. It will update when you single step. mikedunn Can anyone pls let me know why there is a huge variation in the clock > cycles, all of my code resides in the SD RAM, and HWINIT_VEC are residing in > the Internal memory. > > Regards, > Goku > On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower <j...@signalogic.com> > wrote: > >> Goku- >> I have included rts6400.lib, but it is not defined in it, am using CCS 3.3 >> Version, still getting the same error ," not able to resolve the symbol >> definition" .Could you let me know the details pls. >> _CLK_gethtime is defined in bios.a64, or similar depending on the DSP >> type. I think it gets resolved to CLK_F_gethtime (function defined in asm >> code). bios.a64 file is not an rtdx lib file; ignore my previous comment, >> >> Mike and Richard's suggestions about simpler ways to benchmark and profile >> code are accurate and useful. You should try those. If for some reason you >> still want to use _CLK_gethtime, then you have to use it together with >> _CLK_getltime and also have to deal with issues of timer wrap-around and >> interrupt enable/disable for _getltime. This doc has a good explanation: >> >> http://focus.ti.com/lit/an/spra829/spra829.pdf >> >> -Jeff >> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower <j...@signalogic.com> >> wrote: >>> >>> Goku- >>> >>> Since i am benchmarking different applications which are ported from >>> linux, the linking is done with a makefile which has a huge code base, am >>> using cygwin and CCS compiler, but not the IDE, target is connected to a >>> different machine which has the CCS IDE, hence here i cant use the GUI >>> interface, i dont know how could i use Clk_gethtime without the CCS IDE GUI >>> Bios Start, could you pls let me know. >>> >>> >>> CLK_gethtime should be in the basic run-time library, rts64xx.lib (not >>> sure of that correct name, but look for rts64-something). >>> >>> >>> Error: _CLK_gethtime undefined symbol. >>> >>> I could see that Clk_gethtime library is missing , if i add the libraries >>> like bios.a64 and others , they tend to say that there are many other >>> symbols which are not defined. >>> >>> >>> bios.a64 sounds to me like an RTDX library... nothing to do with CLK_xx >>> functions. >>> >>> TI's code-gen tools for Linux are new and not widely used. I would >>> suggest that you build using standard CCS v3.3 on a Win machine, and test >>> that output code first. Since you have a "huge" code base, it's a good idea >>> to eliminate any possible build error, library version, link error, etc. >>> >>> Think about it this way -- TI didn't have Linux based code-gen tools >>> until recently (last couple of years). So that means since 1996, when they >>> acquired GoDSP (Code Composer), they've been pouring manpower and millions >>> into Win code-gen tools, not Linux. Which one do you think is more reliable >>> and widely used? >>> >>> -Jeff >>> >>> >>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams < >>> r...@lewiscounty.com> wrote: >>>> >>>> ittiam, >>>> >>>> from your description, it is rather obvious that some libraries are >>>> missing (assuming that the >>>> compile operations worked with no errors.) >>>> >>>> If you would post the names of the functions that are not found by the >>>> linker, we could possibly >>>> assist you in determing which libraries are missing. >>>> >>>> BTW: >>>> why are you using cgywin, etc rather than the CCS IDE for the >>>> compile/link operations? >>>> >>>> R. Williams >>>> >>>> ---------- Original Message ----------- >>>> From: i...@gmail.com >>>> To: c...@yahoogroups.com >>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400 >>>> Subject: [c6x] Urgent Help Required: CLK_gethtime >>>> >>>> > Hi all, >>>> > >>>> > Platform : DSK6416. >>>> > I have some problems regarding usage of BIOS with the header files >>>> ,all my source code are >>>> > compiled with Cygwin and TI C64x, this gives me the obj's which in >>>> turn i am linking using >>>> > the code composer, the problem is that i need to have this working >>>> with the BIOS >>>> > Clk_gethtime, if i use the function clk_gethtime with references of >>>> the libraries it says >>>> > that other references are missing, could anyone suggest me what are >>>> the header files that >>>> > need to be included to get the clk_gethtime working with proper >>>> references. How can i >>>> > start the bios if i cant use the GUI. Which are the header files that >>>> need to be >>>> > associated with it. The documentation regarding the Bios is very poor, >>>> it is not quite >>>> > clear about many aspects, if some one who had worked on BIOS could >>>> throw a limelight it >>>> > will be very helpfull for me . >>>> > >>>> > -BR >>>> > -Goku------- End of Original Message ------- >>>> >>>> -- www.dsprelated.com/blogs-1/nf/Mike_Dunn.php______________________________
Goku,
On 6/27/08, Goku <i...@gmail.com> wrote:
>
> Hello Mike/ Jeff ,
>
> I did manage to configure the timer, but the profiler clock cycles never
> matches with that of the TIMER_count from the csl api, there is a huge
> amount of difference:
>
> I have configured the timer as follows : but not sure whether it is
> configured properly, don't know whether it is overflowing, since the
cycle
> count always less than the PRD set value i.e 0xFFFFFFFF, i am not able to
> tell , regarding the increment of timer : I have calculated it like this :
> DSK 6416 has 1Ghz Processor, hence the 1 CPU clock period= 10exp -9 =
> 1/1Ghz.
> Timer Input Clock = 8* ( 1/1Ghz) ;
> Timer Period= 0xFFFFFFFF
> Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8= 34.5
Sec,
> Here i am not able to Configure HW_15 for ISR, which could call .
I suggest that you crawl, walk, and then run wrt to profiling. I do not
have time to analyze everything for you, but the following steps should
help.
1. Get a basic understanding using a simple program. From main call a
function with a processing loop and a large count [something like a 1,000
cycle loop with a count of 100,000. I suggest that you run the program once
before measurements and then take each measurement twice - if you get a
large difference, take it 3 times.
2. In main, time the loop from before the func call until after using the
timer. Don't worry about overflow yet, get the timer correct first. The
timer is not cycle accurate, but it will be very close [+/- a few cycles].
3. From main, time the loop using the profile counter. This should be the
actual number of cycles [it will include some overhead] +/- 1.
4. From main, set a GPIO pin before the func call and clear it after.
Measure this on a scope.
5. All three of the above methods should be very close. Once they are, you
should be ready to take some 'real' measurements [if you use the timer,
lengthen the loop to overflow and debug the overflow detection].
Actually the code runs for about 3-4 minutes before it could print the Timer
> Counts, the TImer is started when the decoding starts in the code, and
stops
> at the end of decoding.
>
> And the difference is printed out, which states the no of clock cycles
> used.
>
> Other Aspects : Config File is as follows.
>
> L2 Cache : Not Configured, ISRAM is configured with the L2 enabling. It
> says in the caching document that it is not preferred to run the code
> without L2,i am not sure about the L1 on chip, by default it is enabled ,
> could anyone tell me how much difference a L1 miss and a hit can cause to
> the cpu cycles consumed.
This will vary with program. For a simple or sequential program:
1. Reset/flush cache
2. Load, run program [= L1 'is empty']
3. Restart, run program [= L1 'has repeatable cached entries']
4. Restart, run program [= L1 'has repeatable cached entries']. Should be
similar to previous.
5. Restart, run program [= L1 'has repeatable cached entries']. Should be
similar to previous.
If you want the details, goto spru190 and it will point you to the doc on
c64 cache/internal memory.
I am trying to find out the proper values for my application ( CPU cycles )
> , If i manage to get the cycle count not varying too much then i could do
> some more experiments.
FYI - Some applications 'vary all over the place' in cycle count. The 'GPIO
method' is the 100% accurate [with almost no overhead] realtime measurement.
THis is an additional .cdb file since the heap required to run the
> application is more than ISRAM (1MB)
> SECTIONS {
> .bss: fill=0 {
> *(.bss)
> . += 0x4;
> } > ISRAM
>
> .far: {} > SDRAM
>
> .cinit: {} > ISRAM
>
> .pinit: {} > ISRAM
>
> .data: {} > ISRAM
>
> .switch: {} > ISRAM
>
> .cio: {} > ISRAM
>
> .text: {} > SDRAM
> .const: {} > SDRAM
> }
> When i mapped Stack on the SDRAM i am getting around 1420057808 * 8 CPU
> cycles, but when i map it against ISRAM i am getting more cycle count from
> the timer 3853073033 *8 ,both of them can't be compared to the profiler
> clock, does the profiler clock give out exact number of cpu cycles elapsed
> for running the entire program.? could you let me know,
The profiler clock measures from 'run' to 'halt' by reading a hardware
counter [I don't remember if it is 32 or 64 bits - I typically only use it
for single function measurements].
mikedunn
Initilization of Timer is done in this way, could you please let me know
> whether it is correct:
> Timer_start(hTImer1)
> start_time= Timer_getcount(hTimer1)
>
> Mp3 Decoding code
>
> stop_time= TImer_getcount(hTimer1)
> and the difference is printed out.
>
> In the GUI .cdb file, mentioned that the Input to the Timer is CPU/8 rate,
> with reset before the start. and PRD set to max 0xFFFFFFFF.
>
> Do i have to tag HW_15 for any isr() ? i cant do it since in my code
> composer such option is disabled.
>
> Does the timer give out right values since the Interrupt is driven once in
> 34.5 Secs. Please explain since i am stuck at this point and i want to
> clarify why the variation in clock cycles is happening, and which
procedure
> is correct to get the timer working and to get the same amount of clock
> cycles all the times.
>
> Regards,
> Goku
>
> On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
>> Goku,
>>
>> On 6/26/08, Goku <i...@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> I had configured the Timer as per Dunn, with the following
>>> configurations, and i am experiencing huge amount of clock cycle
differences
>>> for the execution of the same code.
>>>
>>> Please Could any one of you explain the same,
>>>
>>> Code : MP3 Player.
>>>
>>> Result :
>>> Iterations = 1
>>> -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8
config for
>>> the timer
>>>
>>> Iterations = 2
>>> -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8
config for
>>> the timer
>>>
>>>
>>> The same code was rerun after a successful reboot of the DSK 6416
and
>>> then i got the result for Iteration 2 which is almost half of the
cycles
>>> taken for Iteration 1.
>>> The very first pass will have nothing in L1 cache and you will get
100%
>> misses. Passes 2 and later should have similar times [assuming similat
code
>> flow].
>>
>> When i was using the debugger CCS Singles step i could see that the
>>> timer was overflowing in the timer register, even though i had set
values
>>> set for PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-: Tick=
1000
>>> Microseconds/Int, HWi_14 configured for Timer 0 , i could
understand this
>>> behaviour .
>>> The timer knows nothing about the CPU state and will not give
reliable
>> numbers when you halt the DSP. If you want to manually profile a
function,
>> use the 'profile clock' in CCS. It will update when you single step.
>>
>> mikedunn
>>
>> Can anyone pls let me know why there is a huge variation in the
clock
>>> cycles, all of my code resides in the SD RAM, and HWINIT_VEC are
residing in
>>> the Internal memory.
>>>
>>> Regards,
>>> Goku
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
<j...@signalogic.com>
>>> wrote:
>>>
>>>> Goku-
>>>>
>>>>
>>>> I have included rts6400.lib, but it is not defined in it, am
using CCS
>>>> 3.3 Version, still getting the same error ," not able to
resolve the symbol
>>>> definition" .Could you let me know the details pls.
>>>>
>>>>
>>>> _CLK_gethtime is defined in bios.a64, or similar depending on
the DSP
>>>> type. I think it gets resolved to CLK_F_gethtime (function
defined in asm
>>>> code). bios.a64 file is not an rtdx lib file; ignore my
previous comment,
>>>>
>>>> Mike and Richard's suggestions about simpler ways to benchmark
and
>>>> profile code are accurate and useful. You should try those.
If for some
>>>> reason you still want to use _CLK_gethtime, then you have to
use it together
>>>> with _CLK_getltime and also have to deal with issues of timer
wrap-around
>>>> and interrupt enable/disable for _getltime. This doc has a
good
>>>> explanation:
>>>>
>>>> http://focus.ti.com/lit/an/spra829/spra829.pdf
>>>>
>>>> -Jeff
>>>>
>>>>
>>>> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
<j...@signalogic.com>
>>>> wrote:
>>>>>
>>>>> Goku-
>>>>>
>>>>> Since i am benchmarking different applications which are
ported from
>>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>>> different machine which has the CCS IDE, hence here i cant
use the GUI
>>>>> interface, i dont know how could i use Clk_gethtime without
the CCS IDE GUI
>>>>> Bios Start, could you pls let me know.
>>>>>
>>>>>
>>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib (not
>>>>> sure of that correct name, but look for rts64-something).
>>>>>
>>>>>
>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>
>>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>>> other symbols which are not defined.
>>>>>
>>>>>
>>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>>> functions.
>>>>>
>>>>> TI's code-gen tools for Linux are new and not widely used.
I would
>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>> that output code first. Since you have a "huge"
code base, it's a good idea
>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>
>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>> until recently (last couple of years). So that means since
1996, when they
>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>> into Win code-gen tools, not Linux. Which one do you think
is more reliable
>>>>> and widely used?
>>>>>
>>>>> -Jeff
>>>>>
>>>>>
>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>> r...@lewiscounty.com> wrote:
>>>>>>
>>>>>> ittiam,
>>>>>>
>>>>>> from your description, it is rather obvious that some
libraries are
>>>>>> missing (assuming that the
>>>>>> compile operations worked with no errors.)
>>>>>>
>>>>>> If you would post the names of the functions that are
not found by the
>>>>>> linker, we could possibly
>>>>>> assist you in determing which libraries are missing.
>>>>>>
>>>>>> BTW:
>>>>>> why are you using cgywin, etc rather than the CCS IDE
for the
>>>>>> compile/link operations?
>>>>>>
>>>>>> R. Williams
>>>>>>
>>>>>> ---------- Original Message -----------
>>>>>> From: i...@gmail.com
>>>>>> To: c...@yahoogroups.com
>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>
>>>>>> > Hi all,
>>>>>> >
>>>>>> > Platform : DSK6416.
>>>>>> > I have some problems regarding usage of BIOS with
the header files
>>>>>> ,all my source code are
>>>>>> > compiled with Cygwin and TI C64x, this gives me
the obj's which in
>>>>>> turn i am linking using
>>>>>> > the code composer, the problem is that i need to
have this working
>>>>>> with the BIOS
>>>>>> > Clk_gethtime, if i use the function clk_gethtime
with references of
>>>>>> the libraries it says
>>>>>> > that other references are missing, could anyone
suggest me what are
>>>>>> the header files that
>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>> references. How can i
>>>>>> > start the bios if i cant use the GUI. Which are
the header files
>>>>>> that need to be
>>>>>> > associated with it. The documentation regarding
the Bios is very
>>>>>> poor, it is not quite
>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>> throw a limelight it
>>>>>> > will be very helpfull for me .
>>>>>> >
>>>>>> > -BR
>>>>>> > -Goku------- End of Original Message -------
>>>>>>
>>>>>>
>>>
>>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
______________________________HI All,
Sorry , in continuation with the previous mail, the mapping was changed wrt
.text area changed from SDRAM to ISRAM, the clock cycles increased when
mapped o ISRAM.
Regards,
Goku
On Fri, Jun 27, 2008 at 4:10 PM, Goku <i...@gmail.com> wrote:
> Hello Mike/ Jeff ,
>
> I did manage to configure the timer, but the profiler clock cycles never
> matches with that of the TIMER_count from the csl api, there is a huge
> amount of difference:
>
> I have configured the timer as follows : but not sure whether it is
> configured properly, don't know whether it is overflowing, since the
cycle
> count always less than the PRD set value i.e 0xFFFFFFFF, i am not able to
> tell , regarding the increment of timer : I have calculated it like this :
> DSK 6416 has 1Ghz Processor, hence the 1 CPU clock period= 10exp -9 =
> 1/1Ghz.
> Timer Input Clock = 8* ( 1/1Ghz) ;
> Timer Period= 0xFFFFFFFF
> Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8= 34.5
Sec,
> Here i am not able to Configure HW_15 for ISR, which could call .
>
> Actually the code runs for about 3-4 minutes before it could print the
> Timer Counts, the TImer is started when the decoding starts in the code,
and
> stops at the end of decoding.
>
> And the difference is printed out, which states the no of clock cycles
> used.
>
> Other Aspects : Config File is as follows.
>
> L2 Cache : Not Configured, ISRAM is configured with the L2 enabling. It
> says in the caching document that it is not preferred to run the code
> without L2,i am not sure about the L1 on chip, by default it is enabled ,
> could anyone tell me how much difference a L1 miss and a hit can cause to
> the cpu cycles consumed.
>
> I am trying to find out the proper values for my application ( CPU cycles
)
> , If i manage to get the cycle count not varying too much then i could do
> some more experiments.
>
> THis is an additional .cdb file since the heap required to run the
> application is more than ISRAM (1MB)
> SECTIONS {
> .bss: fill=0 {
> *(.bss)
> . += 0x4;
> } > ISRAM
>
> .far: {} > SDRAM
>
> .cinit: {} > ISRAM
>
> .pinit: {} > ISRAM
>
> .data: {} > ISRAM
>
> .switch: {} > ISRAM
>
> .cio: {} > ISRAM
>
> .text: {} > SDRAM
> .const: {} > SDRAM
> }
> When i mapped Stack on the SDRAM i am getting around 1420057808 * 8 CPU
> cycles, but when i map it against ISRAM i am getting more cycle count from
> the timer 3853073033 *8 ,both of them can't be compared to the profiler
> clock, does the profiler clock give out exact number of cpu cycles elapsed
> for running the entire program.? could you let me know,
>
> Initilization of Timer is done in this way, could you please let me know
> whether it is correct:
> Timer_start(hTImer1)
> start_time= Timer_getcount(hTimer1)
>
> Mp3 Decoding code
>
> stop_time= TImer_getcount(hTimer1)
> and the difference is printed out.
>
> In the GUI .cdb file, mentioned that the Input to the Timer is CPU/8 rate,
> with reset before the start. and PRD set to max 0xFFFFFFFF.
>
> Do i have to tag HW_15 for any isr() ? i cant do it since in my code
> composer such option is disabled.
>
> Does the timer give out right values since the Interrupt is driven once in
> 34.5 Secs. Please explain since i am stuck at this point and i want to
> clarify why the variation in clock cycles is happening, and which
procedure
> is correct to get the timer working and to get the same amount of clock
> cycles all the times.
>
> Regards,
> Goku
> On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn <m...@gmail.com>
> wrote:
>
>> Goku,
>>
>> On 6/26/08, Goku <i...@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> I had configured the Timer as per Dunn, with the following
>>> configurations, and i am experiencing huge amount of clock cycle
differences
>>> for the execution of the same code.
>>>
>>> Please Could any one of you explain the same,
>>>
>>> Code : MP3 Player.
>>>
>>> Result :
>>> Iterations = 1
>>> -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8
config for
>>> the timer
>>>
>>> Iterations = 2
>>> -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8
config for
>>> the timer
>>>
>>>
>>> The same code was rerun after a successful reboot of the DSK 6416
and
>>> then i got the result for Iteration 2 which is almost half of the
cycles
>>> taken for Iteration 1.
>>> The very first pass will have nothing in L1 cache and you will get
100%
>> misses. Passes 2 and later should have similar times [assuming similat
code
>> flow].
>>
>> When i was using the debugger CCS Singles step i could see that the
>>> timer was overflowing in the timer register, even though i had set
values
>>> set for PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-: Tick=
1000
>>> Microseconds/Int, HWi_14 configured for Timer 0 , i could
understand this
>>> behaviour .
>>> The timer knows nothing about the CPU state and will not give
reliable
>> numbers when you halt the DSP. If you want to manually profile a
function,
>> use the 'profile clock' in CCS. It will update when you single step.
>>
>> mikedunn
>>
>> Can anyone pls let me know why there is a huge variation in the
clock
>>> cycles, all of my code resides in the SD RAM, and HWINIT_VEC are
residing in
>>> the Internal memory.
>>>
>>> Regards,
>>> Goku
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
<j...@signalogic.com>
>>> wrote:
>>>
>>>> Goku-
>>>>
>>>>
>>>> I have included rts6400.lib, but it is not defined in it, am
using CCS
>>>> 3.3 Version, still getting the same error ," not able to
resolve the symbol
>>>> definition" .Could you let me know the details pls.
>>>>
>>>>
>>>> _CLK_gethtime is defined in bios.a64, or similar depending on
the DSP
>>>> type. I think it gets resolved to CLK_F_gethtime (function
defined in asm
>>>> code). bios.a64 file is not an rtdx lib file; ignore my
previous comment,
>>>>
>>>> Mike and Richard's suggestions about simpler ways to benchmark
and
>>>> profile code are accurate and useful. You should try those.
If for some
>>>> reason you still want to use _CLK_gethtime, then you have to
use it together
>>>> with _CLK_getltime and also have to deal with issues of timer
wrap-around
>>>> and interrupt enable/disable for _getltime. This doc has a
good
>>>> explanation:
>>>>
>>>> http://focus.ti.com/lit/an/spra829/spra829.pdf
>>>>
>>>> -Jeff
>>>>
>>>>
>>>> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
<j...@signalogic.com>
>>>> wrote:
>>>>>
>>>>> Goku-
>>>>>
>>>>> Since i am benchmarking different applications which are
ported from
>>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>>> different machine which has the CCS IDE, hence here i cant
use the GUI
>>>>> interface, i dont know how could i use Clk_gethtime without
the CCS IDE GUI
>>>>> Bios Start, could you pls let me know.
>>>>>
>>>>>
>>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib (not
>>>>> sure of that correct name, but look for rts64-something).
>>>>>
>>>>>
>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>
>>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>>> other symbols which are not defined.
>>>>>
>>>>>
>>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>>> functions.
>>>>>
>>>>> TI's code-gen tools for Linux are new and not widely used.
I would
>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>> that output code first. Since you have a "huge"
code base, it's a good idea
>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>
>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>> until recently (last couple of years). So that means since
1996, when they
>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>> into Win code-gen tools, not Linux. Which one do you think
is more reliable
>>>>> and widely used?
>>>>>
>>>>> -Jeff
>>>>>
>>>>>
>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>> r...@lewiscounty.com> wrote:
>>>>>>
>>>>>> ittiam,
>>>>>>
>>>>>> from your description, it is rather obvious that some
libraries are
>>>>>> missing (assuming that the
>>>>>> compile operations worked with no errors.)
>>>>>>
>>>>>> If you would post the names of the functions that are
not found by the
>>>>>> linker, we could possibly
>>>>>> assist you in determing which libraries are missing.
>>>>>>
>>>>>> BTW:
>>>>>> why are you using cgywin, etc rather than the CCS IDE
for the
>>>>>> compile/link operations?
>>>>>>
>>>>>> R. Williams
>>>>>>
>>>>>> ---------- Original Message -----------
>>>>>> From: i...@gmail.com
>>>>>> To: c...@yahoogroups.com
>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>
>>>>>> > Hi all,
>>>>>> >
>>>>>> > Platform : DSK6416.
>>>>>> > I have some problems regarding usage of BIOS with
the header files
>>>>>> ,all my source code are
>>>>>> > compiled with Cygwin and TI C64x, this gives me
the obj's which in
>>>>>> turn i am linking using
>>>>>> > the code composer, the problem is that i need to
have this working
>>>>>> with the BIOS
>>>>>> > Clk_gethtime, if i use the function clk_gethtime
with references of
>>>>>> the libraries it says
>>>>>> > that other references are missing, could anyone
suggest me what are
>>>>>> the header files that
>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>> references. How can i
>>>>>> > start the bios if i cant use the GUI. Which are
the header files
>>>>>> that need to be
>>>>>> > associated with it. The documentation regarding
the Bios is very
>>>>>> poor, it is not quite
>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>> throw a limelight it
>>>>>> > will be very helpfull for me .
>>>>>> >
>>>>>> > -BR
>>>>>> > -Goku------- End of Original Message -------
>>>>>>
>>>>>>
>>>
>>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
______________________________Goku-
> I did manage to configure the timer, but the profiler clock cycles never
matches
> with that of the TIMER_count from the csl api, there is a huge amount of
> difference:
>
> I have configured the timer as follows : but not sure whether it is
configured
> properly, don't know whether it is overflowing, since the cycle count
always less
> than the PRD set value i.e 0xFFFFFFFF, i am not able to tell , regarding
the
> increment of timer : I have calculated it like this : DSK 6416 has 1Ghz
Processor,
> hence the 1 CPU clock period= 10exp -9 = 1/1Ghz.
> Timer Input Clock = 8* ( 1/1Ghz) ;
> Timer Period= 0xFFFFFFFF
> Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8= 34.5 Sec,
Here i
> am not able to Configure HW_15 for ISR, which could call .
>
> Actually the code runs for about 3-4 minutes before it could print the
Timer
> Counts, the TImer is started when the decoding starts in the code, and
stops at the
> end of decoding.
If you need to measure periods longer than 34.36 sec, then you can:
a) use a timer interrupt to capture the wrap-
around; i.e. increment a software variable
a) use the CLK_gethtime + CLK_getltime method,
which requires DSP/BIOS to be running
b) use Richard's suggestion of toggling a GPIO
pin and use some external means (stand by
the dig scope holding a watch :-)
Otherwise, you don't know when the timer has wrapped, as you have found.
But I don't understand, why such a long time? You're doing an MP3 decode and
it
takes 3-4 minutes? If that's really the case, then you're a long ways away
from
real-time so what's the point of profiling? Any benchmarks you get at this
point are
meaningless in a DSP environment. You should be working to get your code
running in
real-time, then go and profile the code, in order to find the average frame
overhead,
sections of code that should be optmized, etc. That's the normal approach.
-Jeff
> And the difference is printed out, which states the no of clock cycles
used.
>
> Other Aspects : Config File is as follows.
>
> L2 Cache : Not Configured, ISRAM is configured with the L2 enabling. It
says in the
> caching document that it is not preferred to run the code without L2,i am
not sure
> about the L1 on chip, by default it is enabled , could anyone tell me how
much
> difference a L1 miss and a hit can cause to the cpu cycles consumed.
>
> I am trying to find out the proper values for my application ( CPU cycles )
, If i
> manage to get the cycle count not varying too much then i could do some
more
> experiments.
>
> THis is an additional .cdb file since the heap required to run the
application is
> more than ISRAM (1MB)
> SECTIONS {
> .bss: fill=0 {
> *(.bss)
> . += 0x4;
> } > ISRAM
>
> .far: {} > SDRAM
>
> .cinit: {} > ISRAM
>
> .pinit: {} > ISRAM
>
> .data: {} > ISRAM
>
> .switch: {} > ISRAM
>
> .cio: {} > ISRAM
>
> .text: {} > SDRAM
> .const: {} > SDRAM
> }
> When i mapped Stack on the SDRAM i am getting around 1420057808 * 8 CPU
cycles,
> but when i map it against ISRAM i am getting more cycle count from the
timer
> 3853073033 *8 ,both of them can't be compared to the profiler clock, does
the
> profiler clock give out exact number of cpu cycles elapsed for running the
entire
> program.? could you let me know,
>
> Initilization of Timer is done in this way, could you please let me know
whether it
> is correct:
> Timer_start(hTImer1)
> start_time= Timer_getcount(hTimer1)
>
> Mp3 Decoding code
>
> stop_time= TImer_getcount(hTimer1)
> and the difference is printed out.
>
> In the GUI .cdb file, mentioned that the Input to the Timer is CPU/8 rate,
with
> reset before the start. and PRD set to max 0xFFFFFFFF.
>
> Do i have to tag HW_15 for any isr() ? i cant do it since in my code
composer such
> option is disabled.
>
> Does the timer give out right values since the Interrupt is driven once in
34.5
> Secs. Please explain since i am stuck at this point and i want to clarify
why the
> variation in clock cycles is happening, and which procedure is correct to
get the
> timer working and to get the same amount of clock cycles all the times.
>
> Regards,
> Goku
>
> On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn <m...@gmail.com>
wrote:
>
> Goku,
>
> On 6/26/08, Goku <i...@gmail.com> wrote:
>
> Hello, I had configured the Timer as per Dunn, with the
> following configurations, and i am experiencing huge amount of
> clock cycle differences for the execution of the same code.
>
> Please Could any one of you explain the same,
>
> Code : MP3 Player.
>
> Result :
> Iterations = 1
> -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8
> config for the timer Iterations = 2
> -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8
> config for the timer
> The same code was rerun after a successful reboot of the DSK
> 6416 and then i got the result for Iteration 2 which is almost
> half of the cycles taken for Iteration 1.
> The very first pass will have nothing in L1 cache and you will get
100%
> misses. Passes 2 and later should have similar times [assuming
similat
> code flow].
> When i was using the debugger CCS Singles step i could see that
> the timer was overflowing in the timer register, even though i
> had set values set for PRD : FFFFFFFF , CNT -> Start with a
> Reset, Clk-: Tick= 1000 Microseconds/Int, HWi_14 configured for
> Timer 0 , i could understand this behaviour .
> The timer knows nothing about the CPU state and will not give
reliable
> numbers when you halt the DSP. If you want to manually profile a
> function, use the 'profile clock' in CCS. It will update when you
single
> step.mikedunn
>
> Can anyone pls let me know why there is a huge variation in the
> clock cycles, all of my code resides in the SD RAM, and
> HWINIT_VEC are residing in the Internal memory.
>
> Regards,
> Goku
> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
> <j...@signalogic.com> wrote:
>
> Goku-
>
> > I have included rts6400.lib, but it is not defined
> > in it, am using CCS 3.3 Version, still getting the
> > same error ," not able to resolve the symbol
> > definition" .Could you let me know the details
pls.
> _CLK_gethtime is defined in bios.a64, or similar
> depending on the DSP type. I think it gets resolved
> to CLK_F_gethtime (function defined in asm code).
> bios.a64 file is not an rtdx lib file; ignore my
> previous comment,
>
> Mike and Richard's suggestions about simpler ways to
> benchmark and profile code are accurate and useful.
> You should try those. If for some reason you still
> want to use _CLK_gethtime, then you have to use it
> together with _CLK_getltime and also have to deal
> with issues of timer wrap-around and interrupt
> enable/disable for _getltime. This doc has a good
> explanation:
>
> http://focus.ti.com/lit/an/spra829/spra829.pdf-Jeff
>
> > On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
> > <j...@signalogic.com> wrote:
> >
> > Goku-
> >
> > > Since i am benchmarking different
> > > applications which are ported from
> > > linux, the linking is done with a
> > > makefile which has a huge code base, am
> > > using cygwin and CCS compiler, but not
> > > the IDE, target is connected to a
> > > different machine which has the CCS IDE,
> > > hence here i cant use the GUI interface,
> > > i dont know how could i use Clk_gethtime
> > > without the CCS IDE GUI Bios Start,
> > > could you pls let me know.
> >
> >
> > CLK_gethtime should be in the basic
> > run-time library, rts64xx.lib (not sure
> > of that correct name, but look for
> > rts64-something).
> >
> > > Error: _CLK_gethtime undefined symbol.
> > >
> > > I could see that Clk_gethtime library is
> > > missing , if i add the libraries like
> > > bios.a64 and others , they tend to say
> > > that there are many other symbols which
> > > are not defined.
> >
> >
> > bios.a64 sounds to me like an RTDX
> > library... nothing to do with CLK_xx
> > functions.
> >
> > TI's code-gen tools for Linux are new and
> > not widely used. I would suggest that
> > you build using standard CCS v3.3 on a
> > Win machine, and test that output code
> > first. Since you have a "huge" code
> > base, it's a good idea to eliminate any
> > possible build error, library version,
> > link error, etc.
> >
> > Think about it this way -- TI didn't have
> > Linux based code-gen tools until recently
> > (last couple of years). So that means
> > since 1996, when they acquired GoDSP
> > (Code Composer), they've been pouring
> > manpower and millions into Win code-gen
> > tools, not Linux. Which one do you think
> > is more reliable and widely used?
> >
> > -Jeff
> >
> > > On Tue, Jun 24, 2008 at 2:21 AM, Richard
> > > Williams <r...@lewiscounty.com> wrote:
> > >
> > > ittiam,
> > >
> > > from your description, it is
> > > rather obvious that some
> > > libraries are missing
> > > (assuming that the
> > > compile operations worked with
> > > no errors.)
> > >
> > > If you would post the names of
> > > the functions that are not
> > > found by the linker, we could
> > > possibly
> > > assist you in determing which
> > > libraries are missing.
> > >
> > > BTW:
> > > why are you using cgywin, etc
> > > rather than the CCS IDE for
> > > the compile/link operations?
> > >
> > > R. Williams
> > >
> > > ---------- Original Message
> > > -----------
> > > From: i...@gmail.com
> > > To: c...@yahoogroups.com
> > > Sent: Mon, 23 Jun 2008
> > > 14:09:57 -0400
> > > Subject: [c6x] Urgent Help
> > > Required: CLK_gethtime
> > >
> > > > Hi all,
> > > >
> > > > Platform : DSK6416.
> > > > I have some problems
> > > regarding usage of BIOS with
> > > the header files ,all my
> > > source code are
> > > > compiled with Cygwin and TI
> > > C64x, this gives me the obj's
> > > which in turn i am linking
> > > using
> > > > the code composer, the
> > > problem is that i need to have
> > > this working with the BIOS
> > > > Clk_gethtime, if i use the
> > > function clk_gethtime with
> > > references of the libraries it
> > > says
> > > > that other references are
> > > missing, could anyone suggest
> > > me what are the header files
> > > that
> > > > need to be included to get
> > > the clk_gethtime working with
> > > proper references. How can i
> > > > start the bios if i cant use
> > > the GUI. Which are the header
> > > files that need to be
> > > > associated with it. The
> > > documentation regarding the
> > > Bios is very poor, it is not
> > > quite
> > > > clear about many aspects, if
> > > some one who had worked on
> > > BIOS could throw a limelight
> > > it
> > > > will be very helpfull for me
> > > .
> > > >
> > > > -BR
> > > > -Goku------- End of Original
> > > Message -------
> > >
> > >
> > >
Hello Mike/ Jeff ,
I did manage to configure the timer, but the profiler clock cycles never
matches with that of the TIMER_count from the csl api, there is a huge
amount of difference:
I have configured the timer as follows : but not sure whether it is
configured properly, don't know whether it is overflowing, since the cycle
count always less than the PRD set value i.e 0xFFFFFFFF, i am not able to
tell , regarding the increment of timer : I have calculated it like this :
DSK 6416 has 1Ghz Processor, hence the 1 CPU clock period= 10exp -9 =
1/1Ghz.
Timer Input Clock = 8* ( 1/1Ghz) ;
Timer Period= 0xFFFFFFFF
Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8= 34.5 Sec,
Here i am not able to Configure HW_15 for ISR, which could call .
Actually the code runs for about 3-4 minutes before it could print the Timer
Counts, the TImer is started when the decoding starts in the code, and stops
at the end of decoding.
And the difference is printed out, which states the no of clock cycles used.
Other Aspects : Config File is as follows.
L2 Cache : Not Configured, ISRAM is configured with the L2 enabling. It says
in the caching document that it is not preferred to run the code without
L2,i am not sure about the L1 on chip, by default it is enabled , could
anyone tell me how much difference a L1 miss and a hit can cause to the cpu
cycles consumed.
I am trying to find out the proper values for my application ( CPU cycles )
, If i manage to get the cycle count not varying too much then i could do
some more experiments.
THis is an additional .cdb file since the heap required to run the
application is more than ISRAM (1MB)
SECTIONS {
.bss: fill=0 {
*(.bss)
. += 0x4;
} > ISRAM
.far: {} > SDRAM
.cinit: {} > ISRAM
.pinit: {} > ISRAM
.data: {} > ISRAM
.switch: {} > ISRAM
.cio: {} > ISRAM
.text: {} > SDRAM
.const: {} > SDRAM
}
When i mapped Stack on the SDRAM i am getting around 1420057808 * 8 CPU
cycles, but when i map it against ISRAM i am getting more cycle count from
the timer 3853073033 *8 ,both of them can't be compared to the profiler
clock, does the profiler clock give out exact number of cpu cycles elapsed
for running the entire program.? could you let me know,
Initilization of Timer is done in this way, could you please let me know
whether it is correct:
Timer_start(hTImer1)
start_time= Timer_getcount(hTimer1)
Mp3 Decoding code
stop_time= TImer_getcount(hTimer1)
and the difference is printed out.
In the GUI .cdb file, mentioned that the Input to the Timer is CPU/8 rate,
with reset before the start. and PRD set to max 0xFFFFFFFF.
Do i have to tag HW_15 for any isr() ? i cant do it since in my code
composer such option is disabled.
Does the timer give out right values since the Interrupt is driven once in
34.5 Secs. Please explain since i am stuck at this point and i want to
clarify why the variation in clock cycles is happening, and which procedure
is correct to get the timer working and to get the same amount of clock
cycles all the times.
Regards,
Goku
On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn <m...@gmail.com>
wrote:
> Goku,
>
> On 6/26/08, Goku <i...@gmail.com> wrote:
>>
>> Hello,
>>
>> I had configured the Timer as per Dunn, with the following
configurations,
>> and i am experiencing huge amount of clock cycle differences for the
>> execution of the same code.
>>
>> Please Could any one of you explain the same,
>>
>> Code : MP3 Player.
>>
>> Result :
>> Iterations = 1
>> -- Target Duration = 1417161654 X 8 Clock Cycles - > CPU/8 config
for
>> the timer
>>
>> Iterations = 2
>> -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8 config
for
>> the timer
>> The same code was rerun after a successful reboot of the DSK 6416 and
then
>> i got the result for Iteration 2 which is almost half of the cycles
taken
>> for Iteration 1.
>> The very first pass will have nothing in L1 cache and you will get
100%
> misses. Passes 2 and later should have similar times [assuming similat
code
> flow].
>
> When i was using the debugger CCS Singles step i could see that the
>> timer was overflowing in the timer register, even though i had set
values
>> set for PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-: Tick=
1000
>> Microseconds/Int, HWi_14 configured for Timer 0 , i could understand
this
>> behaviour .
>> The timer knows nothing about the CPU state and will not give reliable
> numbers when you halt the DSP. If you want to manually profile a
function,
> use the 'profile clock' in CCS. It will update when you single step.
>
> mikedunn
>
> Can anyone pls let me know why there is a huge variation in the clock
>> cycles, all of my code resides in the SD RAM, and HWINIT_VEC are
residing in
>> the Internal memory.
>>
>> Regards,
>> Goku
>> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
<j...@signalogic.com>
>> wrote:
>>
>>> Goku-
>>>
>>>
>>> I have included rts6400.lib, but it is not defined in it, am using
CCS
>>> 3.3 Version, still getting the same error ," not able to
resolve the symbol
>>> definition" .Could you let me know the details pls.
>>>
>>>
>>> _CLK_gethtime is defined in bios.a64, or similar depending on the
DSP
>>> type. I think it gets resolved to CLK_F_gethtime (function defined
in asm
>>> code). bios.a64 file is not an rtdx lib file; ignore my previous
comment,
>>>
>>> Mike and Richard's suggestions about simpler ways to benchmark and
>>> profile code are accurate and useful. You should try those. If
for some
>>> reason you still want to use _CLK_gethtime, then you have to use it
together
>>> with _CLK_getltime and also have to deal with issues of timer
wrap-around
>>> and interrupt enable/disable for _getltime. This doc has a good
>>> explanation:
>>>
>>> http://focus.ti.com/lit/an/spra829/spra829.pdf
>>>
>>> -Jeff
>>>
>>>
>>> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
<j...@signalogic.com>
>>> wrote:
>>>>
>>>> Goku-
>>>>
>>>> Since i am benchmarking different applications which are ported
from
>>>> linux, the linking is done with a makefile which has a huge
code base, am
>>>> using cygwin and CCS compiler, but not the IDE, target is
connected to a
>>>> different machine which has the CCS IDE, hence here i cant use
the GUI
>>>> interface, i dont know how could i use Clk_gethtime without the
CCS IDE GUI
>>>> Bios Start, could you pls let me know.
>>>>
>>>>
>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib (not
>>>> sure of that correct name, but look for rts64-something).
>>>>
>>>>
>>>> Error: _CLK_gethtime undefined symbol.
>>>>
>>>> I could see that Clk_gethtime library is missing , if i add
the
>>>> libraries like bios.a64 and others , they tend to say that
there are many
>>>> other symbols which are not defined.
>>>>
>>>>
>>>> bios.a64 sounds to me like an RTDX library... nothing to do
with CLK_xx
>>>> functions.
>>>>
>>>> TI's code-gen tools for Linux are new and not widely used. I
would
>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>> that output code first. Since you have a "huge" code
base, it's a good idea
>>>> to eliminate any possible build error, library version, link
error, etc.
>>>>
>>>> Think about it this way -- TI didn't have Linux based code-gen
tools
>>>> until recently (last couple of years). So that means since
1996, when they
>>>> acquired GoDSP (Code Composer), they've been pouring manpower
and millions
>>>> into Win code-gen tools, not Linux. Which one do you think is
more reliable
>>>> and widely used?
>>>>
>>>> -Jeff
>>>>
>>>>
>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>> r...@lewiscounty.com> wrote:
>>>>>
>>>>> ittiam,
>>>>>
>>>>> from your description, it is rather obvious that some
libraries are
>>>>> missing (assuming that the
>>>>> compile operations worked with no errors.)
>>>>>
>>>>> If you would post the names of the functions that are not
found by the
>>>>> linker, we could possibly
>>>>> assist you in determing which libraries are missing.
>>>>>
>>>>> BTW:
>>>>> why are you using cgywin, etc rather than the CCS IDE for
the
>>>>> compile/link operations?
>>>>>
>>>>> R. Williams
>>>>>
>>>>> ---------- Original Message -----------
>>>>> From: i...@gmail.com
>>>>> To: c...@yahoogroups.com
>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>
>>>>> > Hi all,
>>>>> >
>>>>> > Platform : DSK6416.
>>>>> > I have some problems regarding usage of BIOS with the
header files
>>>>> ,all my source code are
>>>>> > compiled with Cygwin and TI C64x, this gives me the
obj's which in
>>>>> turn i am linking using
>>>>> > the code composer, the problem is that i need to have
this working
>>>>> with the BIOS
>>>>> > Clk_gethtime, if i use the function clk_gethtime with
references of
>>>>> the libraries it says
>>>>> > that other references are missing, could anyone
suggest me what are
>>>>> the header files that
>>>>> > need to be included to get the clk_gethtime working
with proper
>>>>> references. How can i
>>>>> > start the bios if i cant use the GUI. Which are the
header files that
>>>>> need to be
>>>>> > associated with it. The documentation regarding the
Bios is very
>>>>> poor, it is not quite
>>>>> > clear about many aspects, if some one who had worked
on BIOS could
>>>>> throw a limelight it
>>>>> > will be very helpfull for me .
>>>>> >
>>>>> > -BR
>>>>> > -Goku------- End of Original Message -------
>>>>>
>>>>> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
______________________________Hello ,
HWI_15 is not tagged to the ISR routine, where in i am incrementing a static
variable to get the ticks, as per my calculation an Interrupt should be
triggered every 34.5 Sec and the variable should be updated at that
instance, but it is not all going to the ISR function, could you please let
me know how can i enable the ISR. I have this piece of code:
TimerEventId1=TIMER_getEventId(hTimer1);
IRQ_enable(TimerEventId1);
TIMER_start(hTimer1);
I can't tag HwI_15 to a ISR as given in the manual , reason being that it is
not enabled, so i have marked HWI_4 for Timer1, but still it doesnt enter
into the ISR routine, am i doing something wrong here, can u pls let me
know.
Regards,
Goku
On Fri, Jun 27, 2008 at 5:09 PM, Michael Dunn <m...@gmail.com>
wrote:
> Goku,
>
> On 6/27/08, Goku <i...@gmail.com> wrote:
>>
>> Hello Mike/ Jeff ,
>>
>> I did manage to configure the timer, but the profiler clock cycles
never
>> matches with that of the TIMER_count from the csl api, there is a huge
>> amount of difference:
>>
>> I have configured the timer as follows : but not sure whether it is
>> configured properly, don't know whether it is overflowing, since the
cycle
>> count always less than the PRD set value i.e 0xFFFFFFFF, i am not able
to
>> tell , regarding the increment of timer : I have calculated it like
this :
>> DSK 6416 has 1Ghz Processor, hence the 1 CPU clock period= 10exp -9 =
>> 1/1Ghz.
>> Timer Input Clock = 8* ( 1/1Ghz) ;
>> Timer Period= 0xFFFFFFFF
>> Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8= 34.5
>> Sec, Here i am not able to Configure HW_15 for ISR, which could call .
> I suggest that you crawl, walk, and then run wrt to profiling. I do not
> have time to analyze everything for you, but the following steps should
> help.
> 1. Get a basic understanding using a simple program. From main call a
> function with a processing loop and a large count [something like a 1,000
> cycle loop with a count of 100,000. I suggest that you run the program
once
> before measurements and then take each measurement twice - if you get a
> large difference, take it 3 times.
> 2. In main, time the loop from before the func call until after using the
> timer. Don't worry about overflow yet, get the timer correct first. The
> timer is not cycle accurate, but it will be very close [+/- a few cycles].
> 3. From main, time the loop using the profile counter. This should be the
> actual number of cycles [it will include some overhead] +/- 1.
> 4. From main, set a GPIO pin before the func call and clear it after.
> Measure this on a scope.
> 5. All three of the above methods should be very close. Once they are,
you
> should be ready to take some 'real' measurements [if you use the timer,
> lengthen the loop to overflow and debug the overflow detection].
> Actually the code runs for about 3-4 minutes before it could print the
>> Timer Counts, the TImer is started when the decoding starts in the
code, and
>> stops at the end of decoding.
>>
>> And the difference is printed out, which states the no of clock cycles
>> used.
>>
>> Other Aspects : Config File is as follows.
>>
>> L2 Cache : Not Configured, ISRAM is configured with the L2 enabling.
It
>> says in the caching document that it is not preferred to run the code
>> without L2,i am not sure about the L1 on chip, by default it is enabled
,
>> could anyone tell me how much difference a L1 miss and a hit can cause
to
>> the cpu cycles consumed.
> This will vary with program. For a simple or sequential program:
> 1. Reset/flush cache
> 2. Load, run program [= L1 'is empty']
> 3. Restart, run program [= L1 'has repeatable cached entries']
> 4. Restart, run program [= L1 'has repeatable cached entries']. Should be
> similar to previous.
> 5. Restart, run program [= L1 'has repeatable cached entries']. Should be
> similar to previous.
>
> If you want the details, goto spru190 and it will point you to the doc on
> c64 cache/internal memory.
>
> I am trying to find out the proper values for my application ( CPU cycles
)
>> , If i manage to get the cycle count not varying too much then i could
do
>> some more experiments.
> FYI - Some applications 'vary all over the place' in cycle count. The
> 'GPIO method' is the 100% accurate [with almost no overhead] realtime
> measurement.
>
> THis is an additional .cdb file since the heap required to run the
>> application is more than ISRAM (1MB)
>> SECTIONS {
>> .bss: fill=0 {
>> *(.bss)
>> . += 0x4;
>> } > ISRAM
>>
>> .far: {} > SDRAM
>>
>> .cinit: {} > ISRAM
>>
>> .pinit: {} > ISRAM
>>
>> .data: {} > ISRAM
>>
>> .switch: {} > ISRAM
>>
>> .cio: {} > ISRAM
>>
>> .text: {} > SDRAM
>> .const: {} > SDRAM
>> }
>> When i mapped Stack on the SDRAM i am getting around 1420057808 * 8
CPU
>> cycles, but when i map it against ISRAM i am getting more cycle count
from
>> the timer 3853073033 *8 ,both of them can't be compared to the
profiler
>> clock, does the profiler clock give out exact number of cpu cycles
elapsed
>> for running the entire program.? could you let me know,
> The profiler clock measures from 'run' to 'halt' by reading a hardware
> counter [I don't remember if it is 32 or 64 bits - I typically only use it
> for single function measurements].
>
> mikedunn
>
> Initilization of Timer is done in this way, could you please let me know
>> whether it is correct:
>> Timer_start(hTImer1)
>> start_time= Timer_getcount(hTimer1)
>>
>> Mp3 Decoding code
>>
>> stop_time= TImer_getcount(hTimer1)
>> and the difference is printed out.
>>
>> In the GUI .cdb file, mentioned that the Input to the Timer is CPU/8
rate,
>> with reset before the start. and PRD set to max 0xFFFFFFFF.
>>
>> Do i have to tag HW_15 for any isr() ? i cant do it since in my code
>> composer such option is disabled.
>>
>> Does the timer give out right values since the Interrupt is driven once
in
>> 34.5 Secs. Please explain since i am stuck at this point and i want to
>> clarify why the variation in clock cycles is happening, and which
procedure
>> is correct to get the timer working and to get the same amount of
clock
>> cycles all the times.
>>
>> Regards,
>> Goku
>>
>> On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn <m...@gmail.com>
>> wrote:
>>
>>> Goku,
>>>
>>> On 6/26/08, Goku <i...@gmail.com> wrote:
>>>>
>>>> Hello,
>>>>
>>>> I had configured the Timer as per Dunn, with the following
>>>> configurations, and i am experiencing huge amount of clock
cycle differences
>>>> for the execution of the same code.
>>>>
>>>> Please Could any one of you explain the same,
>>>>
>>>> Code : MP3 Player.
>>>>
>>>> Result :
>>>> Iterations = 1
>>>> -- Target Duration = 1417161654 X 8 Clock Cycles - >
CPU/8 config for
>>>> the timer
>>>>
>>>> Iterations = 2
>>>> -- Target Duration = 815201933 X 8 Clock Cycles - > CPU/8
config for
>>>> the timer
>>>>
>>>>
>>>> The same code was rerun after a successful reboot of the DSK
6416 and
>>>> then i got the result for Iteration 2 which is almost half of
the cycles
>>>> taken for Iteration 1.
>>>>
>>>
>>> The very first pass will have nothing in L1 cache and you will get
100%
>>> misses. Passes 2 and later should have similar times [assuming
similat code
>>> flow].
>>>
>>>
>>>
>>> When i was using the debugger CCS Singles step i could see that
the
>>>> timer was overflowing in the timer register, even though i had
set values
>>>> set for PRD : FFFFFFFF , CNT -> Start with a Reset, Clk-:
Tick= 1000
>>>> Microseconds/Int, HWi_14 configured for Timer 0 , i could
understand this
>>>> behaviour .
>>>>
>>>
>>> The timer knows nothing about the CPU state and will not give
reliable
>>> numbers when you halt the DSP. If you want to manually profile a
function,
>>> use the 'profile clock' in CCS. It will update when you single
step.
>>>
>>> mikedunn
>>>
>>> Can anyone pls let me know why there is a huge variation in
the
>>>> clock cycles, all of my code resides in the SD RAM, and
HWINIT_VEC are
>>>> residing in the Internal memory.
>>>>
>>>> Regards,
>>>> Goku
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
<j...@signalogic.com>
>>>> wrote:
>>>>
>>>>> Goku-
>>>>>
>>>>>
>>>>> I have included rts6400.lib, but it is not defined in it,
am using CCS
>>>>> 3.3 Version, still getting the same error ," not able
to resolve the symbol
>>>>> definition" .Could you let me know the details pls.
>>>>>
>>>>>
>>>>> _CLK_gethtime is defined in bios.a64, or similar depending
on the DSP
>>>>> type. I think it gets resolved to CLK_F_gethtime (function
defined in asm
>>>>> code). bios.a64 file is not an rtdx lib file; ignore my
previous comment,
>>>>>
>>>>> Mike and Richard's suggestions about simpler ways to
benchmark and
>>>>> profile code are accurate and useful. You should try
those. If for some
>>>>> reason you still want to use _CLK_gethtime, then you have
to use it together
>>>>> with _CLK_getltime and also have to deal with issues of
timer wrap-around
>>>>> and interrupt enable/disable for _getltime. This doc has a
good
>>>>> explanation:
>>>>>
>>>>> http://focus.ti.com/lit/an/spra829/spra829.pdf
>>>>>
>>>>> -Jeff
>>>>>
>>>>>
>>>>> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
<j...@signalogic.com>
>>>>> wrote:
>>>>>>
>>>>>> Goku-
>>>>>>
>>>>>> Since i am benchmarking different applications which
are ported from
>>>>>> linux, the linking is done with a makefile which has a
huge code base, am
>>>>>> using cygwin and CCS compiler, but not the IDE, target
is connected to a
>>>>>> different machine which has the CCS IDE, hence here i
cant use the GUI
>>>>>> interface, i dont know how could i use Clk_gethtime
without the CCS IDE GUI
>>>>>> Bios Start, could you pls let me know.
>>>>>>
>>>>>>
>>>>>> CLK_gethtime should be in the basic run-time library,
rts64xx.lib (not
>>>>>> sure of that correct name, but look for
rts64-something).
>>>>>>
>>>>>>
>>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>>
>>>>>> I could see that Clk_gethtime library is missing , if i
add the
>>>>>> libraries like bios.a64 and others , they tend to say
that there are many
>>>>>> other symbols which are not defined.
>>>>>>
>>>>>>
>>>>>> bios.a64 sounds to me like an RTDX library... nothing
to do with
>>>>>> CLK_xx functions.
>>>>>>
>>>>>> TI's code-gen tools for Linux are new and not widely
used. I would
>>>>>> suggest that you build using standard CCS v3.3 on a Win
machine, and test
>>>>>> that output code first. Since you have a
"huge" code base, it's a good idea
>>>>>> to eliminate any possible build error, library version,
link error, etc.
>>>>>>
>>>>>> Think about it this way -- TI didn't have Linux based
code-gen tools
>>>>>> until recently (last couple of years). So that means
since 1996, when they
>>>>>> acquired GoDSP (Code Composer), they've been pouring
manpower and millions
>>>>>> into Win code-gen tools, not Linux. Which one do you
think is more reliable
>>>>>> and widely used?
>>>>>>
>>>>>> -Jeff
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams <
>>>>>> r...@lewiscounty.com> wrote:
>>>>>>>
>>>>>>> ittiam,
>>>>>>>
>>>>>>> from your description, it is rather obvious that
some libraries are
>>>>>>> missing (assuming that the
>>>>>>> compile operations worked with no errors.)
>>>>>>>
>>>>>>> If you would post the names of the functions that
are not found by
>>>>>>> the linker, we could possibly
>>>>>>> assist you in determing which libraries are
missing.
>>>>>>>
>>>>>>> BTW:
>>>>>>> why are you using cgywin, etc rather than the CCS
IDE for the
>>>>>>> compile/link operations?
>>>>>>>
>>>>>>> R. Williams
>>>>>>>
>>>>>>> ---------- Original Message -----------
>>>>>>> From: i...@gmail.com
>>>>>>> To: c...@yahoogroups.com
>>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>>> Subject: [c6x] Urgent Help Required: CLK_gethtime
>>>>>>>
>>>>>>> > Hi all,
>>>>>>> >
>>>>>>> > Platform : DSK6416.
>>>>>>> > I have some problems regarding usage of BIOS
with the header files
>>>>>>> ,all my source code are
>>>>>>> > compiled with Cygwin and TI C64x, this gives
me the obj's which in
>>>>>>> turn i am linking using
>>>>>>> > the code composer, the problem is that i need
to have this working
>>>>>>> with the BIOS
>>>>>>> > Clk_gethtime, if i use the function
clk_gethtime with references of
>>>>>>> the libraries it says
>>>>>>> > that other references are missing, could
anyone suggest me what are
>>>>>>> the header files that
>>>>>>> > need to be included to get the clk_gethtime
working with proper
>>>>>>> references. How can i
>>>>>>> > start the bios if i cant use the GUI. Which
are the header files
>>>>>>> that need to be
>>>>>>> > associated with it. The documentation
regarding the Bios is very
>>>>>>> poor, it is not quite
>>>>>>> > clear about many aspects, if some one who had
worked on BIOS could
>>>>>>> throw a limelight it
>>>>>>> > will be very helpfull for me .
>>>>>>> >
>>>>>>> > -BR
>>>>>>> > -Goku------- End of Original Message -------
>>>>>>>
>>>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>>
> --
> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
______________________________Goku,
On Tue, Jul 1, 2008 at 4:47 AM, Goku <i...@gmail.com> wrote:
> Hello ,
>
> HWI_15 is not tagged to the ISR routine, where in i am incrementing a
static
> variable to get the ticks, as per my calculation an Interrupt should be
> triggered every 34.5 Sec and the variable should be updated at that
> instance, but it is not all going to the ISR function, could you please
let
> me know how can i enable the ISR. I have this piece of code:
>
> TimerEventId1=TIMER_getEventId(hTimer1);
> IRQ_enable(TimerEventId1);
> TIMER_start(hTimer1);
>
> I can't tag HwI_15 to a ISR as given in the manual , reason being that it
is
> not enabled, so i have marked HWI_4 for Timer1, but still it doesnt enter
> into the ISR routine, am i doing something wrong here, can u pls let me
> know.
Set a BP and check:
1. GIE set in CSR.
2. The interrupt is enabled in the IER
3. The interrupt service table [vector table] location needs to point
to the ISR. Check ISTP address [0 by default] and the table values in
memory.
4. You should be able to create a test interrupt by setting the bit in
the ISR [interrupt set register].
As I remember it, you are not using DSP/BIOS. Is this correct??
mikedunn
>
> Regards,
> Goku
>
> On Fri, Jun 27, 2008 at 5:09 PM, Michael Dunn <m...@gmail.com>
> wrote:
>>
>> Goku,
>>
>> On 6/27/08, Goku <i...@gmail.com> wrote:
>>>
>>> Hello Mike/ Jeff ,
>>>
>>> I did manage to configure the timer, but the profiler clock cycles
never
>>> matches with that of the TIMER_count from the csl api, there is a
huge
>>> amount of difference:
>>>
>>> I have configured the timer as follows : but not sure whether it
is
>>> configured properly, don't know whether it is overflowing, since
the cycle
>>> count always less than the PRD set value i.e 0xFFFFFFFF, i am not
able to
>>> tell , regarding the increment of timer : I have calculated it like
this :
>>> DSK 6416 has 1Ghz Processor, hence the 1 CPU clock period= 10exp -9
=
>>> 1/1Ghz.
>>> Timer Input Clock = 8* ( 1/1Ghz) ;
>>> Timer Period= 0xFFFFFFFF
>>> Timer Period for Timer1 Interrupt is = 0xFFFFFFFF * (1/1Ghz) * 8=
34.5
>>> Sec, Here i am not able to Configure HW_15 for ISR, which could
call .
>> I suggest that you crawl, walk, and then run wrt to profiling. I do
not
>> have time to analyze everything for you, but the following steps
should
>> help.
>> 1. Get a basic understanding using a simple program. From main call a
>> function with a processing loop and a large count [something like a
1,000
>> cycle loop with a count of 100,000. I suggest that you run the program
once
>> before measurements and then take each measurement twice - if you get
a
>> large difference, take it 3 times.
>> 2. In main, time the loop from before the func call until after using
the
>> timer. Don't worry about overflow yet, get the timer correct first.
The
>> timer is not cycle accurate, but it will be very close [+/- a few
cycles].
>> 3. From main, time the loop using the profile counter. This should be
the
>> actual number of cycles [it will include some overhead] +/- 1.
>> 4. From main, set a GPIO pin before the func call and clear it after.
>> Measure this on a scope.
>> 5. All three of the above methods should be very close. Once they
are,
>> you should be ready to take some 'real' measurements [if you use the
timer,
>> lengthen the loop to overflow and debug the overflow detection].
>>
>>>
>>> Actually the code runs for about 3-4 minutes before it could print
the
>>> Timer Counts, the TImer is started when the decoding starts in the
code, and
>>> stops at the end of decoding.
>>>
>>> And the difference is printed out, which states the no of clock
cycles
>>> used.
>>>
>>> Other Aspects : Config File is as follows.
>>>
>>> L2 Cache : Not Configured, ISRAM is configured with the L2
enabling. It
>>> says in the caching document that it is not preferred to run the
code
>>> without L2,i am not sure about the L1 on chip, by default it is
enabled ,
>>> could anyone tell me how much difference a L1 miss and a hit can
cause to
>>> the cpu cycles consumed.
>> This will vary with program. For a simple or sequential program:
>> 1. Reset/flush cache
>> 2. Load, run program [= L1 'is empty']
>> 3. Restart, run program [= L1 'has repeatable cached entries']
>> 4. Restart, run program [= L1 'has repeatable cached entries']. Should
be
>> similar to previous.
>> 5. Restart, run program [= L1 'has repeatable cached entries']. Should
be
>> similar to previous.
>>
>> If you want the details, goto spru190 and it will point you to the doc
on
>> c64 cache/internal memory.
>>>
>>> I am trying to find out the proper values for my application ( CPU
cycles
>>> ) , If i manage to get the cycle count not varying too much then i
could do
>>> some more experiments.
>> FYI - Some applications 'vary all over the place' in cycle count. The
>> 'GPIO method' is the 100% accurate [with almost no overhead] realtime
>> measurement.
>>>
>>> THis is an additional .cdb file since the heap required to run the
>>> application is more than ISRAM (1MB)
>>> SECTIONS {
>>> .bss: fill=0 {
>>> *(.bss)
>>> . += 0x4;
>>> } > ISRAM
>>>
>>> .far: {} > SDRAM
>>>
>>> .cinit: {} > ISRAM
>>>
>>> .pinit: {} > ISRAM
>>>
>>> .data: {} > ISRAM
>>>
>>> .switch: {} > ISRAM
>>>
>>> .cio: {} > ISRAM
>>>
>>> .text: {} > SDRAM
>>> .const: {} > SDRAM
>>>
>>>
>>> }
>>>
>>>
>>> When i mapped Stack on the SDRAM i am getting around 1420057808 *
8 CPU
>>> cycles, but when i map it against ISRAM i am getting more cycle
count from
>>> the timer 3853073033 *8 ,both of them can't be compared to the
profiler
>>> clock, does the profiler clock give out exact number of cpu cycles
elapsed
>>> for running the entire program.? could you let me know,
>> The profiler clock measures from 'run' to 'halt' by reading a hardware
>> counter [I don't remember if it is 32 or 64 bits - I typically only use
it
>> for single function measurements].
>>
>> mikedunn
>>>
>>> Initilization of Timer is done in this way, could you please let me
know
>>> whether it is correct:
>>> Timer_start(hTImer1)
>>> start_time= Timer_getcount(hTimer1)
>>>
>>> Mp3 Decoding code
>>>
>>> stop_time= TImer_getcount(hTimer1)
>>>
>>>
>>> and the difference is printed out.
>>>
>>> In the GUI .cdb file, mentioned that the Input to the Timer is
CPU/8
>>> rate, with reset before the start. and PRD set to max 0xFFFFFFFF.
>>>
>>> Do i have to tag HW_15 for any isr() ? i cant do it since in my
code
>>> composer such option is disabled.
>>>
>>> Does the timer give out right values since the Interrupt is driven
once
>>> in 34.5 Secs. Please explain since i am stuck at this point and i
want to
>>> clarify why the variation in clock cycles is happening, and which
procedure
>>> is correct to get the timer working and to get the same amount of
clock
>>> cycles all the times.
>>>
>>> Regards,
>>> Goku
>>>
>>>
>>>
>>> On Thu, Jun 26, 2008 at 7:53 PM, Michael Dunn
<m...@gmail.com>
>>> wrote:
>>>>
>>>> Goku,
>>>>
>>>> On 6/26/08, Goku <i...@gmail.com> wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> I had configured the Timer as per Dunn, with the following
>>>>> configurations, and i am experiencing huge amount of clock
cycle differences
>>>>> for the execution of the same code.
>>>>>
>>>>> Please Could any one of you explain the same,
>>>>>
>>>>> Code : MP3 Player.
>>>>>
>>>>> Result :
>>>>> Iterations = 1
>>>>> -- Target Duration = 1417161654 X 8 Clock Cycles - >
CPU/8 config
>>>>> for the timer
>>>>>
>>>>> Iterations = 2
>>>>> -- Target Duration = 815201933 X 8 Clock Cycles - >
CPU/8 config for
>>>>> the timer
>>>>>
>>>>>
>>>>> The same code was rerun after a successful reboot of the
DSK 6416 and
>>>>> then i got the result for Iteration 2 which is almost half
of the cycles
>>>>> taken for Iteration 1.
>>>>
>>>>
>>>> The very first pass will have nothing in L1 cache and you will
get 100%
>>>> misses. Passes 2 and later should have similar times [assuming
similat code
>>>> flow].
>>>>
>>>>>
>>>>> When i was using the debugger CCS Singles step i could see
that the
>>>>> timer was overflowing in the timer register, even though i
had set values
>>>>> set for PRD : FFFFFFFF , CNT -> Start with a Reset,
Clk-: Tick= 1000
>>>>> Microseconds/Int, HWi_14 configured for Timer 0 , i could
understand this
>>>>> behaviour .
>>>>
>>>>
>>>> The timer knows nothing about the CPU state and will not give
reliable
>>>> numbers when you halt the DSP. If you want to manually profile
a function,
>>>> use the 'profile clock' in CCS. It will update when you single
step.
>>>> mikedunn
>>>>>
>>>>> Can anyone pls let me know why there is a huge variation in
the clock
>>>>> cycles, all of my code resides in the SD RAM, and
HWINIT_VEC are residing in
>>>>> the Internal memory.
>>>>>
>>>>> Regards,
>>>>> Goku
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Jun 26, 2008 at 12:19 PM, Jeff Brower
<j...@signalogic.com>
>>>>> wrote:
>>>>>>
>>>>>> Goku-
>>>>>>
>>>>>>
>>>>>> I have included rts6400.lib, but it is not defined in
it, am using CCS
>>>>>> 3.3 Version, still getting the same error ," not
able to resolve the symbol
>>>>>> definition" .Could you let me know the details
pls.
>>>>>>
>>>>>> _CLK_gethtime is defined in bios.a64, or similar
depending on the DSP
>>>>>> type. I think it gets resolved to CLK_F_gethtime
(function defined in asm
>>>>>> code). bios.a64 file is not an rtdx lib file; ignore
my previous comment,
>>>>>>
>>>>>> Mike and Richard's suggestions about simpler ways to
benchmark and
>>>>>> profile code are accurate and useful. You should try
those. If for some
>>>>>> reason you still want to use _CLK_gethtime, then you
have to use it together
>>>>>> with _CLK_getltime and also have to deal with issues of
timer wrap-around
>>>>>> and interrupt enable/disable for _getltime. This doc
has a good
>>>>>> explanation:
>>>>>>
>>>>>> http://focus.ti.com/lit/an/spra829/spra829.pdf
>>>>>>
>>>>>> -Jeff
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 24, 2008 at 5:21 PM, Jeff Brower
<j...@signalogic.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Goku-
>>>>>>>
>>>>>>>
>>>>>>> Since i am benchmarking different applications
which are ported from
>>>>>>> linux, the linking is done with a makefile which
has a huge code base, am
>>>>>>> using cygwin and CCS compiler, but not the IDE,
target is connected to a
>>>>>>> different machine which has the CCS IDE, hence here
i cant use the GUI
>>>>>>> interface, i dont know how could i use Clk_gethtime
without the CCS IDE GUI
>>>>>>> Bios Start, could you pls let me know.
>>>>>>>
>>>>>>> CLK_gethtime should be in the basic run-time
library, rts64xx.lib
>>>>>>> (not sure of that correct name, but look for
rts64-something).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Error: _CLK_gethtime undefined symbol.
>>>>>>>
>>>>>>> I could see that Clk_gethtime library is missing ,
if i add the
>>>>>>> libraries like bios.a64 and others , they tend to
say that there are many
>>>>>>> other symbols which are not defined.
>>>>>>>
>>>>>>> bios.a64 sounds to me like an RTDX library...
nothing to do with
>>>>>>> CLK_xx functions.
>>>>>>>
>>>>>>> TI's code-gen tools for Linux are new and not
widely used. I would
>>>>>>> suggest that you build using standard CCS v3.3 on a
Win machine, and test
>>>>>>> that output code first. Since you have a
"huge" code base, it's a good idea
>>>>>>> to eliminate any possible build error, library
version, link error, etc.
>>>>>>>
>>>>>>> Think about it this way -- TI didn't have Linux
based code-gen tools
>>>>>>> until recently (last couple of years). So that
means since 1996, when they
>>>>>>> acquired GoDSP (Code Composer), they've been
pouring manpower and millions
>>>>>>> into Win code-gen tools, not Linux. Which one do
you think is more reliable
>>>>>>> and widely used?
>>>>>>>
>>>>>>> -Jeff
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 24, 2008 at 2:21 AM, Richard Williams
>>>>>>> <r...@lewiscounty.com> wrote:
>>>>>>>>
>>>>>>>> ittiam,
>>>>>>>>
>>>>>>>> from your description, it is rather obvious
that some libraries are
>>>>>>>> missing (assuming that the
>>>>>>>> compile operations worked with no errors.)
>>>>>>>>
>>>>>>>> If you would post the names of the functions
that are not found by
>>>>>>>> the linker, we could possibly
>>>>>>>> assist you in determing which libraries are
missing.
>>>>>>>>
>>>>>>>> BTW:
>>>>>>>> why are you using cgywin, etc rather than the
CCS IDE for the
>>>>>>>> compile/link operations?
>>>>>>>>
>>>>>>>> R. Williams
>>>>>>>>
>>>>>>>> ---------- Original Message -----------
>>>>>>>> From: i...@gmail.com
>>>>>>>> To: c...@yahoogroups.com
>>>>>>>> Sent: Mon, 23 Jun 2008 14:09:57 -0400
>>>>>>>> Subject: [c6x] Urgent Help Required:
CLK_gethtime
>>>>>>>>
>>>>>>>> > Hi all,
>>>>>>>> >
>>>>>>>> > Platform : DSK6416.
>>>>>>>> > I have some problems regarding usage of
BIOS with the header files
>>>>>>>> > ,all my source code are
>>>>>>>> > compiled with Cygwin and TI C64x, this
gives me the obj's which in
>>>>>>>> > turn i am linking using
>>>>>>>> > the code composer, the problem is that i
need to have this working
>>>>>>>> > with the BIOS
>>>>>>>> > Clk_gethtime, if i use the function
clk_gethtime with references
>>>>>>>> > of the libraries it says
>>>>>>>> > that other references are missing, could
anyone suggest me what
>>>>>>>> > are the header files that
>>>>>>>> > need to be included to get the
clk_gethtime working with proper
>>>>>>>> > references. How can i
>>>>>>>> > start the bios if i cant use the GUI.
Which are the header files
>>>>>>>> > that need to be
>>>>>>>> > associated with it. The documentation
regarding the Bios is very
>>>>>>>> > poor, it is not quite
>>>>>>>> > clear about many aspects, if some one who
had worked on BIOS could
>>>>>>>> > throw a limelight it
>>>>>>>> > will be very helpfull for me .
>>>>>>>> >
>>>>>>>> > -BR
>>>>>>>> > -Goku------- End of Original Message
-------
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>>
>> --
>> www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
>
--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php