The FX3 firmware source is compiled for the Cypress FX3 USB 3.0 Superspeed controller. This controller converts the USB connection to a 32-bit GPIF-II programmable interface via Cypress' GPIF-II designer software.
The FX3 currently has 3 interfaces associated with it:
- Cyclone IV FPGA Loader
- RF Link with the LMS6002D
- Control Interface
The FPGA loader is responsible for loading, or reloading, the FPGA over the USB link.
The RF link ushers the baseband IQ samples between the FPGA and the host over the USB link.
The control interface uses the built in UART to talk to the FPGA in an out-of-band way for checking status and configuring the system in general. Some messages that go over this are general GPIO settings, LMS SPI messages, VTCXO trim DAC settings and the Si5338 clock generator programming.
Building the FX3 firmware first requires the download of the Cypress FX3 SDK which may require registration on their website. The FX3 uses ThreadX as an RTOS for the ARM9 which is distributed with their SDK and linked to from our software.
Once the SDK is downloaded, building the firmware requires a file defining the toolchain in make/toolchain.mk
. A sample can be found in the make
directory.
- Create your own
toolchain.mk
file from the example given:cp make/toolchain.mk.sample make/toolchain.mk
- Modify your
make/toolchain.mk
to declare anFX3_ROOT
where the SDK was installed. - Compile the firmware using
make
. UseDEBUG=yes
if you want to include debug symbols. - The file
bladeRF.img
should have been produced with a note saying that 256 bytes of interrupt vector code have been removed. This warning is normal and you have just built the FX3 firmware successfully!
The FX3 SDK provides an Eclipse-based IDE. A project file for this tool is provided in this directory. To import this project, perform the following steps.
- Start the
Eclipse
IDE provided with the FX3 SDK, navigate to your workspace, and switch to the C/C++ perspective. - From the C/C++ Projects view, select
Import...
-->General
->Existing Projects into Workspace
. ClickNext >
." - Under
Select root directory
, select this directory (bladeRF/fx3_firmware
) - You should see
bladeRF
listed underProjects
. Ensure this is checked and clickFinish
. - Linux users only -- (Windows users skip this step) -- From the C/C++ Projects view, right click bladeRF and select
Properties
. UnderC/C++ Build
-->Builder Settings
, uncheckUse default build command
and changecs-make
tomake
. cs-make is provided with the Windows SDK. Linux users may simply use the make program provided by their distribution. - Kick off the build! The results here should be the same as those obtained from the command-line build outlined in the previous section.
For more information about developing and debugging FX3 firmware, see the FX3 Programmer's Manual.
Pre-built binaries are not being posted to a "release page" yet due to the volatility of the current firmware. Once we reach a stable point in the codebase, this file will be update to point to said page. Bear with us, and check back soon!
For the time being, we'll try to keep an updated link to a development build here:
- Built: 2013-09-21 23:12
- MD5: 2264095e58ed29f1d5a542c6693c2267
- Link: http://nuand.com/fx3/latest.img