Nazaj na [SW](sw.htm)
# Xilinx Software Development Kit
Program **SDK** je del paketa **Vivado 2019** (ali starejše različice) in je namenjen razvoju programske opreme za
Xilinxove sisteme na čipu. Program pokličemo na dva načina: 1. iz Vivada ali 2. samostojno.
1. V programu **Vivado** izvozimo specifikacijo HW: File > Export > Export Hardware (kljukica na Include bistream),
nato pa File > Launch SDK. Ob prvem zagonu bomo čakali nekaj časa, ker bo program pripravil nov SDK projekt v podmapi *ime_projekta.sdk*
2. Če je projekt že narejen, lahko samostojno (iz Windows) pokličemo program **SDK** in nastavimo pot (Workspace) na podmapo *ime_projekta.sdk*
Predstavili bomo korake izdelave platforme in projekta brez operacijskega sistema (standalone oz. bare metal).
## Izdelava aplikacije
Nov aplikacijski projekt naredimo z ukazom: File > New > Application Project, kjer določimo v polju Project Name vnesemo ime, npr. `test` in pustimo privzete izbire (OS Platform: standalone, Board Support Package: Create New).
V naslednjem oknu lahko izberemo vzorec aplikacije, npr. Hello World. Program bom naredil vse potrebne platformne
knjižnice: test_bsp (Board Support Package) in vzorčno aplikacijo, ki jo poiščemo v levem oknu (Project Explorer),
tako da odpremo test, src, helloworld.c.
Vključene knjižnice z dokumentacijo najdemo pod test_bsp, BSP Documentation in ps7_cortex9_0, include.
Program dopolnimo z lastno kodo. Primer kode, ki zapiše vrednost 100000 v periferno enoto GPIO_0 in prebere 1 in 2 kanal iz GPIO_1:
```c
#include
#include "platform.h"
#include "xil_printf.h"
#include "xgpio.h"
int main()
{
XGpio gpio1, gpio2;
int r1,r2;
XGpio_Initialize(&gpio1, XPAR_AXI_GPIO_0_DEVICE_ID);
XGpio_Initialize(&gpio2, XPAR_AXI_GPIO_1_DEVICE_ID);
XGpio_DiscreteWrite(&gpio1, 1, 100000);
r1 = XGpio_DiscreteRead(&gpio2, 1);
r2 = XGpio_DiscreteRead(&gpio2, 2);
return 0;
}
```
Orodje **SDK** je nastavljeno tako, da se ob vsakem shranjevanju kode (ctrl+S) avtomatsko požene prevajalnik.
Če je potrebno, pa prevajalnik še posebej pokličemo z Project > Build All.
## Nalaganje in razhroščevanje
Priključi ZedBoard in iz menija izberi Xilinx Tools > Program FPGA, ter naloži vezje s klikom na Program. Na plošči bo po končanem nalaganju zasvetila modra LED.
Razhroščevanje poženemo z Run > Debug as > 1 Launch on Hardware (System Debugger). Program bo naložil kodo in
spremenil perspektivo, tako da dobimo nove menuje s katerimi po korakih izvajamo kodo in opazujemo spremenljivke.
Običajni zagon programa (brez razhroščevalnika) pa naredimo z Run > Run as > 1 Lauch on Hardware. Če uporabljamo
funkcije za izpis (printf, xil_printf) imamo konzolo na voljo v programu **SDK** v enem izmed zavihkov spodnjega
okna (SDK Terminal).