Send USRP-users mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of USRP-users digest..."
Today's Topics:
1. Accessing the cycle counter on the E1XX (Philip Balister)
2. Question on Receiving Data Samples on USRP N210 (Robert Palumbo)
3. Re: Question on Receiving Data Samples on USRP N210
(John Malsbury)
4. Re: Question on Receiving Data Samples on USRP N210 (Simon HB9DRV)
----------------------------------------------------------------------
Message: 1
Date: Fri, 15 Jun 2012 14:59:14 -0400
From: Philip Balister <[email protected]>
To: "[email protected]" <[email protected]>
Subject: [USRP-users] Accessing the cycle counter on the E1XX
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1
With the 003 image for the USRP-E1XX, the kernel was updated to allow
user space to access a cycle counter in the ARM. This is useful for
timing short sections of code in order to speed them up by fiddling with
the code. I have a (terse) write up on the wiki:
http://ettus-apps.sourcerepo.com/redmine/ettus/projects/usrpe1xx/wiki/Accessing_the_Cycle_Counter
The basic method show on stack overflow is fine, but I had trouble with
the compiler moving code out from between the two cycle counter reads,
so I had to adjust the argument constraints on the asm.
The constraint thing can be pretty tricky at times, so try this on small
test programs that are easy to compile to asm to get a feel for how
things work before inserting this in something complicated :)
Philip
------------------------------
Message: 2
Date: Fri, 15 Jun 2012 19:29:39 -0400
From: Robert Palumbo <[email protected]>
To: [email protected]
Subject: [USRP-users] Question on Receiving Data Samples on USRP N210
Message-ID:
<cakwzk9ym_g85adtawd2mksvfxhmcep+st2ittsbtjk0qahb...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Hello,
I have a question regarding how receive data packets are handled
within the UHD ( I am currently using version 003.003.001). When I
make a call to 'recv' for a single buffer of data samples, how is that
receive action actually implemented? What I mean is, does the UHD:
a.) Have a separate thread running that constantly receives packets
and dumps them into some internal buffer, so that when a receive call
is made you are just receiving data from that internal buffer.
b.) The call to 'recv' effectively just reads data directly from the
socket, without any internal buffering.
c.) Some other method I don't know about :)
My question mainly goes into how I should be receiving samples within
my program. If there is internal buffering, then I have time to
collect a small chunk of data, process it, then continue. If there is
no internal buffering, then I should have a dedicated thread which
just receives chunks of data and puts them into some external FIFO
from which they can be read from for processing.
I am having a problem where sometimes when I make a 'recv' call, it
times out before all samples were received, so I am trying to
determine the root cause of it, which depends on how the 'recv' call
is implemented. I know I can just look at the source, which I will,
but sometimes an explanation can be much quicker.
Thanks for any help anyone can give,
Rob
Robert A Palumbo
University of Massachusetts - Amherst
[email protected]
------------------------------
Message: 3
Date: Fri, 15 Jun 2012 16:38:32 -0700
From: John Malsbury <[email protected]>
To: [email protected]
Subject: Re: [USRP-users] Question on Receiving Data Samples on USRP
N210
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
In short, there is buffering in the socket. It sounds like you are
pulling out samples faster than they arrive, which is probably a good thing.
I'm sure Josh will have more insight to offer.
-John
On 06/15/2012 04:29 PM, Robert Palumbo wrote:
> Hello,
>
> I have a question regarding how receive data packets are handled
> within the UHD ( I am currently using version 003.003.001). When I
> make a call to 'recv' for a single buffer of data samples, how is that
> receive action actually implemented? What I mean is, does the UHD:
>
> a.) Have a separate thread running that constantly receives packets
> and dumps them into some internal buffer, so that when a receive call
> is made you are just receiving data from that internal buffer.
> b.) The call to 'recv' effectively just reads data directly from the
> socket, without any internal buffering.
> c.) Some other method I don't know about :)
>
> My question mainly goes into how I should be receiving samples within
> my program. If there is internal buffering, then I have time to
> collect a small chunk of data, process it, then continue. If there is
> no internal buffering, then I should have a dedicated thread which
> just receives chunks of data and puts them into some external FIFO
> from which they can be read from for processing.
>
> I am having a problem where sometimes when I make a 'recv' call, it
> times out before all samples were received, so I am trying to
> determine the root cause of it, which depends on how the 'recv' call
> is implemented. I know I can just look at the source, which I will,
> but sometimes an explanation can be much quicker.
>
> Thanks for any help anyone can give,
>
> Rob
>
> Robert A Palumbo
> University of Massachusetts - Amherst
> [email protected]
>
> _______________________________________________
> USRP-users mailing list
> [email protected]
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
------------------------------
Message: 4
Date: Sat, 16 Jun 2012 10:56:38 +0200
From: "Simon HB9DRV" <[email protected]>
To: <[email protected]>
Subject: Re: [USRP-users] Question on Receiving Data Samples on USRP
N210
Message-ID: <[email protected]>
Content-Type: text/plain; charset="US-ASCII"
Rob,
For optimum performance this sort of operation should, indeed must be
performed in a background thread which then either forwards received data to
another thread or the main thread of the program.
Simon Brown, HB9DRV
http://dit-dit-dit.com
You are standing at the end of a road before a small brick building. Around
you is a forest.
A small stream flows out of the building and down a gully. The sunspot count
is 285.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Robert Palumbo
My question mainly goes into how I should be receiving samples within my
program. If there is internal buffering, then I have time to collect a small
chunk of data, process it, then continue. If there is no internal buffering,
then I should have a dedicated thread which just receives chunks of data and
puts them into some external FIFO from which they can be read from for
processing.
------------------------------
_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
End of USRP-users Digest, Vol 22, Issue 16
******************************************