Example SoapySDR host wrapper for LMS7002M
We developed this example tandem with the LMS7002M driver for testing purposes. This wrapper is also a good example of the LMS7002M driver in practical use.
This demo module is for use with a Microzed and carrier board. The accompanying boot files for zynq are not yet included.
First follow the build guide for SoapySDR: https://github.com/pothosware/SoapySDR/wiki/BuildGuide
The evb7 module also requires two headers for the pothos zynq project for communicating with the pothos zynq DMA kernel module. If you are not actually using the Zynq DMA source and sink blocks, it may be easiest to copy these two files to /usr/local/include so that they can be found by the evb7 build system:
wget https://raw.githubusercontent.com/pothosware/pothos-zynq/master/driver/pothos_zynq_dma_driver.h wget https://raw.githubusercontent.com/pothosware/pothos-zynq/master/kernel/pothos_zynq_dma_common.h sudo mv pothos_zynq_dma_driver.h /usr/local/include/ sudo mv pothos_zynq_dma_common.h /usr/local/include/
Configure, build, and install the evb7 module using CMake. The build system will locate the install of SoapySDR.
cd evb7 mkdir build cd build cmake ../ make sudo make install
Load the kernel module
The Pothos Zynq DMA kernel module is used by the evb7 module to access streaming data in userspace. This kernel module will need to be loaded into the kernel before the evb7 soapy module is usable.
First, build the kernel module using the Xilinx arm sdk and a cross compiled linux kernel from Xilinx: https://github.com/pothosware/pothos-zynq/blob/master/kernel/README.md
Next, login to the Zynq board and load the DMA kernel module with insmod:
sudo insmod pothos_zynq_dma.ko ls /dev/pothos_zynq_dma*
A simple test
The following command should try to make an instance of the evb7 device: