This blog post completes the Zynq MPSoC software training, most of which has been covered in Path II Programmable Blog 5 - Starting with Zynq UltraScale+ MPSoC Software with Xilinx SDK  and Path II Programmable Blog 6 - More Zynq UltraScale+ MPSoC Software with Xilinx SDK


SW Chapter 9 video: Interrupts


  • An introduction to hardware & software interrupts.
  • A look at the interrupt interface on Zynq MPSoc - multiple sources and multiple endpoints. The GICs are configurable and support multiple options.
  • A recap of how interrupt service routines handle interrupts.
  • ISR tips & tricks - keep things short, disable other interrupts when servicing certain IRQs etc.


SW Lab 9 - Interrupts


  • Executed 2 applications which were the same as the applications we used in the HW lab to control the PWM IP - they accept a number over the UART and program the compare register of the PWM IP. The first application didn't use the interrupt capability, but the second application added that - which involved configuring the Zynq GIC to pass the interrupt signal from the PL to the PS.



SW Chapter 10 video: Xilinx Libraries


  • Xilinx libraries can be enabled (and imported) into a BSP. Each library may have some settings, which can also be configured using the wizard.
  • Different Xilinx System Access Libraries: FAT file system, TCP/IP stack, security algorithms, serial flash library
  • Xilinx includes example code with their libarries


SW Lab 10 - Xilinx Libraries


  • Created a new application & BSP. The xilffs (Xilinx Fat File System) library was imported during BSP generation.
  • Imported the provided C source file for an application that writes values from the System Monitor to a CSV file on the SD card, and explored the xilffs APIs that it uses
  • I didn't want to overwrite my SD card which had already been flashed with an image, so I didn't execute the application. It's pretty simple - it initializes the System Monitor, reads the temperature using the driver API and stores it in an array. It then creates a file on the SD card and prints a formatted string in a buffer to the card.



SW Chapter 11 video: Interfacing with Sensors


  • Connecting to a MikroElectronika 'click' sensor board via the mezzanine card which is connected to low speed connector.
  • There is a large ecosystem of 'click' boards.
  • Will use the PS SPI to talk to the click board. Will use the Xilinx SPI library (driver).

SW Lab 11 - Click Mezzanine Standalone Environment


I did not have a LSM6DSL sensor with me, so I did not complete this lab. However, it did not involve anything too complex:


  • Had a look at the Xilinx SPI driver APIs.
  • A short part on how the SPI clock prescaler needs to be calculated - the root clock is much more flexible than on a MCU. While a MCU might have a couple of possible values, the larger number (and range) of possible PLL settings on Zynq mean that users need to be a little more careful.


SW Chapter 12 video: Next Steps


  • A recap of what we covered in the software training.
  • Another recap of the Xilinx ecosystem: IP, reference designs, design kits.
  • Where to get help & support, and find documentation.


That completes the software course!