MATLAB and Simulink Training

Embedded Linux and System Integration for Zynq

Contact us to schedule

Course Details

This two-day training course will give attendees hands-on experience in creating and customizing an embedded Linux® system for their custom target using Zynq®. Topics include:
  • Creating a reference design in Vivado and SDK
  • Software anatomy of a Zynq® system
  • Zynq build system
  • Building a custom Linux image for Zynq
  • Integrating user space device drivers in Simulink

Day 1 of 2

Creating Reference Design in Vivado and SDK

Objective: Create a Vivado® block diagram and SDK project to target PL and PS.

  • Building a Vivado Block diagram to target PL
  • Exporting hardware to SDK and creating board support package
  • Creating a software application for ARM
  • Automating build process through Tcl scripts

Software Anatomy of a Zynq System

Objective: Understand various software components like FSBL, u-boot, kernel, user-space.

  • Overview of embedded Linux
  • Understanding various components of boot image

Zynq Build System

Objective: Understand various software components to form a system image and an automation process.

  • Understanding system boots
  • Generating various binary files, including .elf, .bit, and open source build with buildroot
  • Understanding storage device layout
  • Using a MathWorks build system to have easy hooks for customization of bitstream/FSBL, devicetree and Kernel configuration

Day 2 of 2

Zynq Build System (Continued)

Objective: Create a custom linux image with device drivers for various PL and PS integrated peripherals.

  • Updating devicetree to include new mappings
  • Modifying kernel to turn on a driver
  • Creating boot.bin and generating custom SD card image

Integrating User Space Device Drivers in Simulink

Objective: Integrate device driver C code for peripherals in Simulink to communicate with the custom Linux image.

  • Overview of the generated C code main function, scheduler timing and POSIX threads
  • Creating a custom System object™
  • Using coder.ceval and System objects for C code integration
  • Interacting with custom Linux images from Simulink
  • Creating a standalone application as part of boot image