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 <stdio.h> #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).