Here you will find the sources of various software components of the Red Pitaya system. The components are mainly contained in dedicated directories, however, due to the nature of the Xilinx SoC "All Programmable" paradigm and the way several components are interrelated, some components might be spread across many directories or found at different places one would expect.
directories | contents |
---|---|
api | librp.so API source code |
Applications | Red Pitaya applications (controller modules & GUI clients). |
apps-free | Red Pitaya application for the old environment (also with controler modules & GUI clients). |
Bazaar | Nginx server with dependencies, Red Pitaya Bazaar module & application controller module loader. |
fpga | FPGA design for the inital set of Red Pitaya applications. |
OS/buildroot | GNU/Linux operating system components |
patches | Directory containing red pitaya patches |
scpi-server | Scpi server directory, containing red pitaya core scpi server |
Test | Command line utilities (acquire, generate, ...). |
shared | libredpitaya.so API source code |
Currently the published code does not allow for building the whole system, th next components can be built separately"
- FPGA + device tree
- API
- free applications
- SCPI server
- Linux kernel
- Debian OS
You will need the following to build the Red Pitaya components:
- Xilinx Vivado 2015.2 FPGA development tools, the SDK (bare metal toolchain) must also be installed.
- Linaro toolchain for cross compiling Linux applications, can be downloaded from Linaro release servers.
- GNU make autoconf, automake, ...
- u-boot-tools, curl
Red Pitaya OS wiki page provides more information about installing the required tools.
An example script settings.sh
is provided for setting all necessary environment variables. The script assumes some default tool install paths, so it might need editing.
. settings.sh
Here base system represents everything before Linux user space.
Detailed instructions are provided for building the FPGA including some device tree details.
To build the U-Boot binary and boot scripts (used to select between booting into Buildroot or Debian):
make tmp/u-boot.elf
make build/u-boot.scr
The build process downloads the Xilinx version of U-Boot sources from Github, applies patches and starts the build process. Patches are available in the patches/
directory.
To build a Linux image:
make tmp/uImage
The build process downloads the Xilinx version of Linux sources from Github, applies patches and starts the build process. Patches are available in the patches/
directory.
The created boot file contains FSBL, FPGA bitstream and U-Boot binary.
make tmp/boot.bin.uboot
Since file tmp/boot.bin.uboot
is created it should be renamed to simply tmp/boot.bin
. There are some preparations for creating a memory test tmp/boot.bin.memtest
which would run from the SD card, but it did not go es easy es we would like, so it is not working.
Buildroot is the most basic Linux distribution available for Red Pitaya. It is also used to provide some sources which are dependencies for Userspace applications.
make build/uramdisk.image.gz
Debian OS instructions are detailed elsewhere.
Only instructions for the basic API are provided:
Navigate to the api/rpbase
folder and run:
make
The output of this process is the Red Pitaya librp.so
library in api/lib
directory.
To build apps free, follow the instructions given at apps-free README.md file.
Scpi server README can be found here