his course introduces the concepts, tools, and techniques required for software design and development for the AMD Zynq™ System on a Chip (SoC), Zynq UltraScale+™ MPSoC, and Versal™ adaptive SoC architectures using the AMD Vitis™ Unified IDE.
The focus is on:
Reviewing the basics of Vitis Unified IDE
Customizing board support packages (BSPs) for resource access and management of the Xilinx Standalone library
Utilizing device drivers effectively
Developing software applications for the available processors
Debugging and integrating user applications
Employing best practices to enable good design decisions
What's New for 2023.2
All labs have been updated to the latest software versions
Level
Embedded Software 3
Course Duration
3 days
Audience
Software design engineers interested in systemdesign and implementation and softwareapplication development and debugging using the AMD Xilinx Standalone library.
Prerequisites
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
Vitis Unified IDE 2023.2
Vivado™ Design Suite 2023.2
Hardware
Architectures: Zynq-7000 SoC (Cortex-A9 processor) and Zynq UltraScale+ MPSoC(Cortex-A53 and Cortex-R5 processor)*
*This course focuses on the Zynq-7000 SoC and the Zynq UltraScale+MPSoC architectures. Check with your local Authorized TrainingProvider forthe specifics of the in-class lab board or othercustomizations.
Skills Gained
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 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 Environments - Describes the software development environments for Zynq UltraScale+™ MPSoCs. {Lecture}
Driving the AMD Vitis Unified IDE - ntroduces the terminology and features of the Vitis Unified IDE and talks about the basic behaviors required to drive the Vitis Unified IDE to generate a C/C++ application. {Lecture, Lab}
Debugging Using the AMD Vitis Unified IDE - Describes the basics of actually running the Vitis Unified IDE system debugger and illustrates the debugging process. {Lecture, Lab}
Day 2
Bare-metal Application Development - Covers the various software components, or layers, supplied by AMD that aid in the creation of low-level software. The basic bare-metal application development flow is also discussed. {Lecture, Demo, Lab}
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}
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 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}
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 Cross-Triggering - Illustrates how hardware-software cross-triggering techniques can uncover issues. {Lecture, Lab}