Embedded Systems Software Design

DEPRECATED COURSE: This course is older and no longer offered with our regular course list. It is only available as a private class.

Please contact the BLT Training Team to schedule a private class.

This two-day course introduces you to software design and development for the Xilinx Zynq® All Programmable System on a Chip (SoC) using the Xilinx Software Development Kit (SDK). You will learn the concepts, tools, and techniques required for the software phase of the design cycle.

Topics are comprehensive, covering the basics of SDK tool use, customization of the board support packages (BSPs) for resource access and management of the Xilinx Standalone library. Major topics include device driver use, user application debugging and integration.

Practical implementation tips and best practices are also provided throughout to enable you to make good design decisions and keep your design cycles to a minimum. Sufficient practical information is provided to start developing software applications for the ARM Cortex®-A9 and MicroBlaze® processors.

Additionally, this course covers developing software applications for a Xilinx embedded system based on a MicroBlaze® processor.

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 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.
  • Embedded UltraFast® Design Methodology
    Outlines the different elements that comprise the Embedded Design Methodology.
  • Zynq®-7000 All Programmable SoC Architecture Overview
    Overview of the Zynq®-7000 All Programmable SoC architecture.
  • Zynq® UltraScale+ MPSoC Architecture Overview
    Overview of the Zynq® UltraScale+ MPSoC architecture.
  • MicroBlaze® Processor Architecture Overview
    Overview of the MicroBlaze® processor architecture.
  • Driving the SDK Tool
    Introduces the basic behaviors required to drive the SDK tool to generate a debuggable C/C++ application.
  • System Debugger
    Describes the basics of actually running a debugger and illustrates the most commonly used debugging commands.
  • Standalone Software Platform Development
    Covers the various software components, or layers, supplied by Xilinx that aid in the creation of low-level software.
  • C Coding Support for Standalone
    Reviews the basic services (libraries) available when coding in the Standalone environment.
  • Memory File System (Standalone)
    Introduces the memory file system (MFS) from the Standalone library, which provides drivers and utilities for effectively converting a region of memory into a file system.
  • Using Linker Scripts
    Overview of the purpose and typical use of a linker script.
  • Introduction to Interrupts
    Introduces the concept of interrupts, basic terminology, and generic implementation.
  • Interrupts: Software Considerations
    Describes many of the considerations that a software coder must take into account when supporting interrupts.

Day 2

  • 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.
  • Linux Software Application Development Overview
    Highlights important parts of the underlying Linux system as it pertains to applications.
  • Writing Code in the Xilinx Linux Environment
    Reviews the use of the Xilinx SDK tool for Linux software development.
  • Booting Overview
    Describes the main points to how booting a processor is handled for Zynq® All Programmable SoC devices and MicroBlaze® processors.
  • Profiling Overview
    Introduces the purpose and techniques for profiling a user application.
  • Understanding Device Drivers
    Explains the concept of a device driver and how it is used by embedded systems.
  • Custom Device Drivers
    Describes how to successfully write a custom device driver.


Training Duration:

2 Days

Who should attend:

Software design engineers interested in system design and implementation and software application development and debugging using the 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.

Version: 2021-03-17_0932
Updated 7-14-2023
©2023 Advanced Micro Devices, Inc. Xilinx, Inc. is now part of AMD. Xilinx, the Xilinx logo, AMD, the AMD Arrow logo, Alveo, Artix, Kintex, Kria, Spartan, Versal, Vitis, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Advanced Micro Devices, Inc.