Embedded Systems Software Design

Course Description

This course introduces the concepts, tools, and techniques required for software design and development for the Zynq® System on a Chip (SoC) and Zynq UltraScale+™ MPSoC using the Vitis™ unified software platform.
The focus is on:
  • Reviewing the basics of Vitis tool use
  • Customizing board support packages (BSPs) for resource access and management of the Xilinx Standalone library
  • Utilizing device drivers effectively
  • Developing software applications for the ARM® Cortex™-A9 processors
  • Debugging and integrating user applications
  • Employing best practices to enable good design decisions

    Vitis Unified Software Platform


    Embedded Software 3

    Course Duration

    3 days


    Software design engineers interested in system design and implementation and software application development and debugging using the AMD Xilinx Standalone library.


    • C or C++ programming experience, including general debugging techniques
    • Conceptual understanding of embedded processing systems including device drivers, interrupt routines, writing / modifying scripts, user applications, and boot loader operation.

    Software Tools

    • Vivado® Design Suite 2022.2
    • Vitis unified software platform 2022.2


    • Architectures: Zynq7000 SoC (CortexA9 processor) and Zynq UltraScale+ MPSoC (CortexA53 and CortexR5 processor)r*
    • Demo board: Zynq UltraScale+ MPSoC ZCU104 or Versal ACAP VCK190 board*

    * This course focuses on the Zynq7000 SoC and the Zynq UltraScale+ MPSoC architectures. Check with your local Authorized Training Provider for the specifics of the inclass lab board or other customizations.

    Skills Gained

    After completing this comprehensive training, you will know how to:

    • Implement an effective software design environment for a Xilinx embedded system using the Xilinx SDK tools
    • Write a basic user application (under Standalone or Linux) using the Xilinx Software Development Kit (SDK) and run it on an embedded system platform
    • Use AMD Xilinx debugger tools to troubleshoot user applications
    • Apply software techniques to improve operability
    • Maintain and update software projects with changing hardware

    Course Outline

    Day 1

  • Overview of Embedded Software Development – Overview of the process for building a user application. {Lecture}
  • Embedded UltraFast Design Methodology – Outlines the different elements that comprise the Embedded Design Methodology. {Lecture, Demo}
  • Zynq-7000 SoC Architecture Overview – Overview of the Zynq-7000 SoC architecture. {Lecture, Lab, Demo}
  • Zynq UltraScale+ MPSoC Architecture Overview – Overview of the Zynq UltraScale+™ MPSoC architecture. {Lecture, Lab, Demo}
  • Zynq UltraScale+ MPSoC Software EnvironmentsDescribes the software development environments for Zynq UltraScale+™ MPSoCs. {Lecture}
  • Driving the Vitis Software Development Tool – Introduces the basic behaviors required to drive the Vitis tool to generate a debuggable C/C++ application. {Lecture, Lab, Demo}
  • System Debugger – Describes the basics of actually running a debugger andillustrates the most commonly used debugging commands. {Lecture, Lab}

Day 2

  • Standalone Software Platform Development and Coding Support – Covers the various software components, or layers, supplied by Xilinx that aid in the creation of low-level software and includes a discussion on drivers, domains, operating systems, and libraries. Also covers the basic services (libraries) available when coding in the Standalone environment. {Lecture, Lab, Demo}
  • FAT File System for Standalone – Introduces the FAT file system (FFS) from the Standalone/Bare-metal library. The FFS provides drivers and utilities for effectively converting a region of memory into a file system. {Lecture, Lab}
  • Using Linker Scripts – Overview of the purpose and typical use of a linker script. {Lecture, Lab}
  • Migrating from SDK to the Vitis Platform – Overview of migrating existing Xilinx SDK projects to Vitis software development projects. {Lecture, Demo}
  • Introduction to Interrupts –  Introduces the concept of interrupts, basic terminology, and genericimplementation. {Lecture}
  • Software Interrupts: Writing – Describes many of the considerations that a software coder must take into account when supporting interrupts. {Lecture, Lab}

    Day 3

  • Operating Systems: Introduction and Concepts – Introduces the concept of the operating system and provides a simplified view into the generic way that operating systems work. {Lecture}
  • Linux: A High-Level Introduction – Introduces the Linux operating system, a brief history, and how to use it. {Lecture}
  • Linux Software Application Development OverviewHighlights important parts of the underlying Linux system as it pertains to applications. {Lecture, Lab, Demo}
  • Driving the PetaLinux Tool – Introduces the basic concepts required to build an application using the PetaLinux tool. {Lab}
  • Building a Linux Application in the Vitis IDE – Provides an introduction to using the Xilinx Vitis IDE tool for Linux software development. {Lecture, Demo}
  • Booting Overview – Describes the main points to how booting a processor is handled for Zynq SoC devices and MicroBlaze processors. {Lecture, Lab}
  • Software Profiling Overview – Introduces the purpose and techniques for profiling a user application. {Lecture, Lab, Demo}
  • Understanding Device Drivers – Explains the concept of a device driver and how it is used by embedded systems. {Lecture, Demo}
  • Custom Device Drivers – Describes how to successfully write a custom device driver. {Lecture, Lab}
  • Debugging Using CrossTriggeringIllustrates how hardwaresoftware crosstriggering techniques can uncover issues. {Lecture, Lab}



16 augustus 2023 - 18 augustus 2023

Cereslaan 24
5384 VT

€ 0,00
30 Xilinx Training Credits

Training brochure


Registratie op aanvraag, neem contact op met ons.