The Module 2 of the MiniZed Path to Programmable is focused on software development in xilinx fpga. The previous minized SW development ZYNQ blog can be read here ZYNQ-SW Module 2 Minized Blog1  -- Labs 0 1 2

The Hardware related blogs are here Summary of Module 1 Path to Programmable ZYNQ HW blogs

The Software related blogs are here Summary of Module 2 Path to Programmable ZYNQ SW blogs


ZYNQ SW Module Lab 3


This lab is about developing Zynq software with Xilinx SDK using standalone Board Support Packages BSPs. The BSP is a collection of libraries and drivers which are the lowest layer the application software stack. The application runs on top of a particular software platform using the application programming interfaces. So to use software applications in Vivado SDK, a board support package is created. SDK includes the standalone BSP and the device drivers.


The Standalone BSP can be built with libraries from the Xilinx software library collection, such as:


• Libmetal – Libmetal Library

• Lwip141 -- An open source light-weight TCP/IP networking library

• openamp – OpenAmp Library

• xilffs – Generic Fat File System library

• xilflash – A library that provides read/write/erase/lock/unlock and device specific

functionalities for parallel flash devices

• xilisf – In-System-Flash library that supports the Xilinx In System Flash hardware

• xilmfs – A Memory File system

• xilpm – Power Management API Library for Zynq

• xilrsa – Xilinx RSA library

• xilskey – Secure Key library


In this lab the standalone BSP was generated and also example code was added to the project. We also look into where to find the device driver datasheets


Generating BSP is simple from File -> New-> Board Support Package.


Evaluating the BSP settings for standalone


The default settings must be changed to match the fpga board


choose the uart 1 for Minized FPGA


A list of the Generic drivers in the project


the default compiler, archiver, and flags for ps7_cortexa9_0


After all the settings of the BSP are done the standalone_bsp_0 is in the project explorer window as shown.




Investigating the system.mss file for cortexa9_0 and other drivers


The generic (red) and specific driver references(blue) under the Peripheral Drivers section can be seen. The Generic means that in the standalone environment there is no defined driver present. The blue more specific one is an actual reference to a driver in the standalone environment. The Documentation for each of the drivers can be read in detail by clicking the tab beside it.


Also examples for each peripheral driver can be read by clicking the Import Examples. Here we tried to work with the gpiops import examples.


looking into the SW example code


Since this code was only for review later it was deleted by Right-click the imported application standalone_bsp_0_xgpiops_polled_example_1 and Delete.


Deleting the example gpio file


In the spare time, I also looked into other files such as xparameters.h, files in the include folder, lib folder. The xparameters.h is created through Libgen in the directory. This file defines base addresses of system peripherals, #defines needed by drivers, OSs, libraries and user programs, & function prototypes.

The auto-generated xparameters.h file



A summary of all the zynq software SDK labs can be found here Summary of Module 2 Path to Programmable ZYNQ SW blogs



Moving on-to lab 4