Embedded System 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
What's New for 2019.2
▪ New modules: Driving the Vitis Software Development Tool and Migrating from SDK to the Vitis Platform
▪ Standalone Software Platform Development and C Coding Support for Standalone have been merged into one module.
▪ Memory File System has migrated from using the MFS library to the FFS library.
▪ Most labs support execution on both the ZCU104 board and QEMU

Level: EMB SW 3
Course Duration: 2 day
Price: $1600 or 16 Xilinx Training Credits
Course Part Number: EMBD-SW-ILT
Who Should Attend?: Software design engineers interested in system design and implementation and software application development and debugging using the Xilinx Standalone library.
Registration: Register online in our secure store



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


Software Tools

  •  Vitis unified software platform 2019.2
  • Vivado® Design or System Edition 2019.2


  Architectures: Zynq-7000 SoC (Cortex-A9 processor), and Zynq UltraScale+ MPSoC (Cortex-A53 and Cortex-R5 processor)
▪ Demo board: Zynq UltraScale+ MPSoC ZCU104 board




After completing this comprehensive training, you will have the necessary skills 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 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}
▪ 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 and illustrates the most commonly used debugging commands. {Lecture, Lab}
▪ 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 generic implementation. {Lecture}
▪ Software Interrupts: Writing
Describes many of the considerations that a software coder must take into account when supporting interrupts. {Lecture, Lab}


 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.
Linux: A High-Level Introduction
Introduces the Linux operating system, a brief history, and how to use it. {Lecture}
▪ Linux Software Application Development Overview
Highlights 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}



PDF version of this page.

Enroll Now.

Scheduled Embedded Courses

Accelerating Applications with the Vitis Unified Software Environment
May 27 - May 28: 09:00 am - 05:00 pm
Learn how to develop, debug, and profile new or existing C/C++ and RTL applications in the Vitis™...

*Confirmed to run! Designing with the Versal ACAP: NoC
June 02 : 09:00 am - 05:00 pm
This course introduces the Versal™ ACAP network on chip (NoC) to users familiar with Xilinx...

Embedded Design with PetaLinux Tools
June 03 - June 04: 09:00 am - 05:00 pm
Level: Embedded Software 4 Course Duration: 2 days Price: $1600 or 16 Xilinx Training Credits...

Designing with Versal AI Engine 2:Graph Programming w/AI Engine Kernels
June 10 - June 11: 09:00 am - 05:00 pm
After completing this comprehensive training, you will have thenecessary skills to:▪ Describe the...

Designing with the Versal ACAP: Power & Board Design
June 16 : 09:00 am - 05:00 pm
This course provides a system-level understanding of power and thermal issues related to designing...

Zynq UltraScale+ MPSoC
June 29 - July 01: 09:00 am - 05:00 pm
This course provides an overview of the capabilities and support for the Zynq® UltraScale+™ MPSoC...

*Confirmed to run! Designing with Versal AI Engine 1:Architecture & Design Flow
June 30 - July 01: 09:00 am - 05:00 pm
After completing this comprehensive training, you will have thenecessary skills to:▪ Describe the...

Designing FPGAs Using the Vivado Design Suite 2
July 08 - July 09: 09:00 am - 05:00 pm
This course shows you how to build an effective FPGA design using synchronous design techniques,...

(Workshop) Embedded & Accelerating Applications w/Vitis Unified Software
July 12 : 09:00 am - 05:00 pm
After completing this comprehensive training, you will have thenecessary skills to: ▪ Implement...

Zynq SoC System Architecture
July 15 - July 16: 09:00 am - 05:00 pm
* This course focuses on the Zynq-7000 SoC. Check with your local Authorized Training Provider for...

Alternative Dates and Locations

Faster Technology is able to deliver both private classes at client sites and also public classes at alternate locations and dates.  If there are no currently scheduled classes listed above or if none of the classes are convenient, please tell us what dates and locations will meet your needs.  No obligation necessary.