Getting Started with XSDK
This directory is reserved for XSDK projects.
What is XSDK
XSDK is a development tool made by Xilinx to create the files necessary to boot the hardware and software on the FPGA. It includes a test editor based in eclipse so the tools should feel vaguely familiar. XSDK documentation webpage
Setup
XSDK, being based on Eclipse, is rather fragile, so do yourself a favor and read this section so things get setup correctly.
-
When you first open eclipse, select this directory,
xsdk_workspace
, as your workspace (see what we did there?). -
When you get to your workbench, your project pane should be empty. To add these projects, right-click on the project pane, and click on something like "import projects".
-
Select "Import Existing Projects" (wherever that is)
-
And then select the xsdk_workspace as the folder where you want to import projects. Add them all.
-
If things are going swimmingly, then you should be able to build everything and be off on your merry embedded endeavors.
XSDK Basics
Creating a BOOT.bin file
The boot.bin
file is the file that the ZYBO board used on the quad uses to produce the hardware platform and run the software for our program to run. In a standalone application(no operating system) this should be on only file placed on the SD-card.
What to Do Before
To correctly make a boot.bin file (using no operating system) you must have the following:
- Hardware
.bit
file- Output of hardware toolset (ISE for now)
- Path:
- Project
.elf
file- Be sure to confirm project is built in XSDK
- Path:
- Boot loader
.elf
file- The current boot loader is a default a standalone for the Zybo board
- Be sure to confirm project is built in XSDK
- Path:
NOTE: None of the .elf
files are on GIT to reduce clutter
Creating a BOOT file
In order to correctly create the boot file you must have all the above files updated.
Within XSDK:
- Build -> Create Boot Image
- Select
\*.bif
path: //TODO - Click add
- Select
zybo_fsbl.elf
//TODO - Confirm bootloader is checked and //TODO
- Click add
- Select
MicroCART\quad\xsdk_workspace\sytem_hw_platform\system.bit
- //TODO
- Click add
- Select
real_quad.elf
//TODO - //TODO
- Copy Boot.bin file at //TODO to SD Card
- Plus SD card into quad and power on board
If anything here is unclear there is a deeper explanation in Xilinx: how to create a Boot Image
XSDK Quirks
The Xilinx SDK has a few quirks that are important to watch out for:
- From the documentation, if you abort program execution while at a breakpoint inside an interrupt handler, when re-running the program, interrupts don’t fire. You have to do a hard reset of the board (cycle power) to have interrupts work again.
- After doing a
git pull
orgit checkout
, refresh the files by right-clicking on the project in the sidebar and clicking "Refresh" - The project does not detect changes in header files, so if you modify a
.h
file, you should do a clean before re-building, otherwise you may experience unexpected behavior. We got into the habit of always doing a clean before a build whenever creating code that will be put on the quadcopter.