Marcus,

I was specifying SC16 on host and SC12 over-the-wire via:

uhd::stream_args_t stream_args("sc16","sc12"); // 16-bit integers on host,
12-bit over-the-wire

- Chris

On Mon, Aug 15, 2022 at 10:25 AM Marcus D. Leech <patchvonbr...@gmail.com>
wrote:

> On 2022-08-14 20:57, Nikos Balkanas wrote:
> > Aaaah, it's the dreaded max_samps_per_buffer:(
> > Yup, you need to make your read buffer aligned to max_samps_per_buffer...
> >
> > HTH
> > Nikos
> Also, could we confirm that the stream is being set-up for sc16 on the
> *host* side as well?  The default
>    is, AFAIR, "fc32" for the *host* side...
>
>
> >
> > On Sun, Aug 14, 2022 at 9:24 PM <wozn...@gmail.com> wrote:
> >> Nikos,
> >>
> >> Thanks for the reply. I traced it to the “recv” call which has left me
> puzzled. I added a bunch of instrumentation to see if I was walking off the
> end of my memory that was allocated to the 16-bit I/Q buffer.
> >>
> >> const std::int32_t startIndex = 2*num_accum_samps;
> >>
> >> const std::int32_t remainingSize = 2*sampleLength-(2*num_accum_samps);
> >>
> >> std::cout << "iq[" << startIndex << "] = " << iq[startIndex];
> >>
> >> std::cout << "\t" << remainingSize;
> >>
> >> std::cout << "\t" << startIndex + remainingSize;
> >>
> >> std::cout << "\t" << bufferSize << std::endl;
> >>
> >> num_accum_samps += rx_stream->recv(&iq[startIndex], remainingSize,
> meta, 5.0, true);
> >>
> >> And I can get it to faithfully crash every single time when I don’t pad
> my array of 16-bit integers by an additional 2165 int16s. I included some
> output indicating where I’ve specified as the start of the buffer for it to
> write to, followed by the remaining size, followed by the sum of the two
> just to make sure I can math, and finally the actual reserved buffer size
> plus the pad of 2164 int16s.
> >>
> >> …
> >>
> >> iq[1180480] = 0 19520 1200000 1202164
> >>
> >> iq[1185920] = 0 14080 1200000 1202164
> >>
> >> iq[1191360] = 0 8640 1200000 1202164
> >>
> >> iq[1196800] = 0 3200 1200000 1202164
> >>
> >> Segmentation fault (core dumped)
> >>
> >> If you’ll notice, I’ve specified for it to start at index 1196800 and
> that the number of samples per buffer being passed to recv() is 3200. I
> think I’m just being dense / misinterpreting the nsamps_per_buff (the
> second parameter of the “recv” call) because it seems as if it is not
> respecting the remaining buffer size that I am specifying and attempting to
> write beyond the bounds of the memory I’ve allocated for the buffer.
> >>
> >> Is there some alignment or minimum buffer size that I’m not aware of?
> >>
> >> Thanks,
> >>
> >> Chris
> >>
> >> _______________________________________________
> >> USRP-users mailing list -- usrp-users@lists.ettus.com
> >> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
> > _______________________________________________
> > USRP-users mailing list -- usrp-users@lists.ettus.com
> > To unsubscribe send an email to usrp-users-le...@lists.ettus.com
> _______________________________________________
> USRP-users mailing list -- usrp-users@lists.ettus.com
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to