diff --git a/quad/.gitignore b/quad/.gitignore index d22e061fd080d92058aa71c5cf95ef962ffd798e..b18b9b0b90900e08db6ffd6170269f69a9b45a12 100644 --- a/quad/.gitignore +++ b/quad/.gitignore @@ -5,4 +5,5 @@ inc/ obj/ lib/ lib-zybo/ -TAGS \ No newline at end of file +TAGS +out/ \ No newline at end of file diff --git a/quad/Makefile b/quad/Makefile index 867de1bd9694a5d3f664c94a37c9a5c9beb3064e..e0e196eaa9dd80924a7fa78802961f5ce3a3552d 100644 --- a/quad/Makefile +++ b/quad/Makefile @@ -1,7 +1,11 @@ INCDIR = inc LIBDIR = lib +OUTDIR = out +WS = $(CURDIR)/xsdk_workspace -.PHONY: default test clean deep-clean +BOOT = $(OUTDIR)/BOOT.bin + +.PHONY: default zybo boot test clean deep-clean default: $(MAKE) -C src/test @@ -9,6 +13,11 @@ default: $(MAKE) -C src/computation_graph $(MAKE) -C src/quad_app +zybo: + cd xsdk_workspace/modular_quad_pid && ./build.sh + +boot: $(BOOT) + test: $(MAKE) -C src/queue test $(MAKE) -C src/computation_graph test @@ -22,3 +31,16 @@ deep-clean: $(MAKE) -C src/queue clean $(MAKE) -C src/computation_graph clean $(MAKE) -C src/quad_app clean + +$(OUTDIR): + mkdir $(OUTDIR) + +$(BOOT): zybo | $(OUTDIR) + echo "the_ROM_image:" > zybo_fsbl.bif + echo "{" >> zybo_fsbl.bif + echo $(WS)/zybo_fsbl/Release/zybo_fsbl.elf >> zybo_fsbl.bif + echo $(WS)/system_hw_platform/system.bit >> zybo_fsbl.bif + echo $(WS)/modular_quad_pid/Release/modular_quad_pid.elf >> zybo_fsbl.bif + echo "}" >> zybo_fsbl.bif + /remote/Xilinx/2015.4/SDK/2015.4/bin/bootgen -arch zynq -image zybo_fsbl.bif -o $(BOOT) + rm zybo_fsbl.bif diff --git a/quad/xsdk_workspace/modular_quad_pid/.build_app.tcl b/quad/xsdk_workspace/modular_quad_pid/.build_app.tcl index ae51135bb7ea13e1f14bc28fda3da7f2c4751181..d7cbdc28e23bf01c61ee7fa7a7d0a4d499dfa673 100644 --- a/quad/xsdk_workspace/modular_quad_pid/.build_app.tcl +++ b/quad/xsdk_workspace/modular_quad_pid/.build_app.tcl @@ -1,3 +1,4 @@ cd .. sdk set_workspace . +sdk set_build_config -app modular_quad_pid -type release sdk build_project -type app -name modular_quad_pid diff --git a/quad/xsdk_workspace/modular_quad_pid/.build_fsbl.tcl b/quad/xsdk_workspace/modular_quad_pid/.build_fsbl.tcl new file mode 100644 index 0000000000000000000000000000000000000000..ca98b772fe094ad78cbf06abe17ec3988ec359f2 --- /dev/null +++ b/quad/xsdk_workspace/modular_quad_pid/.build_fsbl.tcl @@ -0,0 +1,4 @@ +cd .. +sdk set_workspace . +sdk set_build_config -app zybo_fsbl -type release +sdk build_project -type app -name zybo_fsbl diff --git a/quad/xsdk_workspace/modular_quad_pid/.create_fsbl.tcl b/quad/xsdk_workspace/modular_quad_pid/.create_fsbl.tcl new file mode 100644 index 0000000000000000000000000000000000000000..6c9ca7b406e47f2a713915db91957088a2572160 --- /dev/null +++ b/quad/xsdk_workspace/modular_quad_pid/.create_fsbl.tcl @@ -0,0 +1,3 @@ +cd .. +sdk set_workspace . +sdk create_app_project -name zybo_fsbl -app {Zynq FSBL} -hwproject system_hw_platform -proc ps7_cortexa9_0 -os standalone -lang C diff --git a/quad/xsdk_workspace/modular_quad_pid/build.sh b/quad/xsdk_workspace/modular_quad_pid/build.sh index 16f728e1c52a93f5b3996876765b2cc12919dc7c..069d43ea162ecadfc4d9cfbf01c80a45c28245da 100644 --- a/quad/xsdk_workspace/modular_quad_pid/build.sh +++ b/quad/xsdk_workspace/modular_quad_pid/build.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + source /remote/Xilinx/2015.4/SDK/2015.4/settings64.sh echo "Building modular_quad_pid" @@ -10,31 +12,40 @@ if [ ! -d ../.metadata ]; then ECLIPSE=/remote/Xilinx/2015.4/SDK/2015.4/eclipse/lnx64.o/eclipse VM=/remote/Xilinx/2015.4/SDK/2015.4/tps/lnx64/jre/bin WSPACE=$(dirname $0)/.. - HW=$WSPACE/system_hw_platform BSP=$WSPACE/system_bsp + FSBL=$WSPACE/zybo_fsbl + FSBL_BSP=$WSPACE/zybo_fsbl_bsp + HW=$WSPACE/system_hw_platform APP=$WSPACE/modular_quad_pid echo "Setting up dependencies for modular_quad_pid" - # Import the system_hw_platform into the workspace + # Import the system_hw_platform and app into the workspace $ECLIPSE -vm $VM -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild \ -import $HW \ + -import $APP \ -data $WSPACE \ - -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole || exit 1 + -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole # Create the BSP - xsct .create_bsp.tcl || exit 1 + xsct .create_bsp.tcl + + # Create the FSBL project + xsct .create_fsbl.tcl - # Import the system_bsp and modular_quad_pid into workspace $ECLIPSE -vm $VM -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild \ -import $BSP \ - -import $APP \ + -import $FSBL \ + -import $FSBL_BSP \ -data $WSPACE \ - -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole || exit 1 + -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole - # Build the BSP - xsct .build_bsp.tcl || exit 1 + # Build everything + $ECLIPSE -vm $VM -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild \ + -build all \ + -data $WSPACE \ + -vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole fi -xsct .build_app.tcl || exit 1 +xsct .build_app.tcl