Wiki

This version is outdated by a newer approved version.DiffThis version (21 Mar 2018 13:47) was approved by Istvan Csomortani.The Previously approved version (21 Mar 2018 12:56) is available.Diff

This is an old revision of the document!


Build no-OS with GNU make

Be sure you are using the latest release version and you have the corresponding branches for both HDL and no-OS(Release notes).

We strongly recommend having a clone of no-Os and HDL in the same folder:

  ~/github/hdl
  ~/github/no-Os.

The build flow is based on GNU make.

In every project folder, you can find a separate subfolder for each supported carrier. In each carrier folder, there is a Makefile which points to the bit files and HDL deliverables (system_top.hdf/project_name.sof) and other makefiles (*.mk) containing the software dependencies.

Building the software

Change your current directory to your targeted project and run make:

  [~] cd fmcdaq2/zc706 
  [~] make

See Troubleshooting section for guideline how to solve make related issues.

Running the software

Make sure that the FPGA is powered on and connected to the PC and then run the command:

  [~] make run

The make run will downloads the bitstream on the FPGA and after that program the board with the elf file.

The software is started before the memory debugger disconnects.

Evaluating the result

After the software has been run on the FPGA, run the command:

  [~] make capture

By default, the software captures (in case of ADC based projects) the data received from the device in the RAM.

  rx_xfer.start_address = *_MEM_BASEADDR + OFFSET;
  rx_xfer.no_of_samples = value;
  dmac_start_transaction(ad_core_dma);

These values differ depending on the architecture and device.

The Makefiles have these parameters initialized with default values:

The number of samples is specified in the project's common Makefile. (ex: fmcadc4)

The script will write a capture_chx.csv file for every channel.
In the case of an RF device which has I and Q data for each channel, the number of capture_chx.csv files will double.

For example, for fmcomms2(AD9361: 2RF channels):

fmcomms2
channel1 data I capture_ch1.csv
data Q capture_ch2.csv
channel2 data I capture_ch3.csv
data Q capture_ch4.csv

Clean the workspace

  [~] make clean

Troubleshooting

  make: *** No rule to make target `../../../hdl/projects/daq2/vc707/daq2_vc707.sdk/system_top.hdf', needed by `hw/system_top.bit'.  Stop.

The HDL deliverables cannot be found. Maybe the targeted HDL project is not built, or the defined path is not valid. Make sure, that you build the HDL before running the no-OS or specify the location of the HDL deliverables explicitly.

  • Specify HDL location:

For Xilinx

  [~] make M_HDF_FILE=/path_to_hdf/system_top.hdf

For Intel

  [~] make M_SOPCINFO_FILE=/path_to_sopcinfo/system_bd.sopcinfo M_SOF_FILE=/path_to_sof/my_project_carrier.sof
resources/fpga/no-os_make/software_setup.1521636359.txt.gz · Last modified: 21 Mar 2018 13:45 by Istvan Csomortani