This course introduces you to software design and development for the Xilinx Zynq® All Programmable System on a Chip (SoC) and Zynq UltraScale+ MPSoC devices 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, Cortex-A53, Cortex-R5, and MicroBlaze™ processors.
While this course focuses on embedded systems using the processing system (PS), it also covers MicroBlaze processor development (both independent of the PS and in concert with the PS).
Level:Embedded Software 3
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.
Vivado® Design or System Edition 2017.3
- Architecture: Zynq-7000 All Programmable SoC (Cortex-A9 processor), Zynq UltraScale+ MPSoC (Cortex-A53 and Cortex-R5 processor), and MicroBlaze processor*
- Demo board: Zynq-7000 All Programmable SoC ZC702 or ZedBoard*
* This course focuses on the Zynq All Programmable SoC and the Zynq UltraScale+ MPSoC architectures. Check with your local Authorized Training Provider for the specifics of the in-class lab board or other customizations. Zynq UltraScale+ MPSoC designs are run using QEMU rather than a hardware platform.
Skills Gained: After completing this training, you will be able 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
1. Zynq-7000 All Programmable SoC Architecture Overview
Overview of the Zynq-7000 All Programmable SoC architecture.
2. Zynq UltraScale+ MPSoC Architecture Overview
Overview of the Zynq UltraScale+™ MPSoC architecture.
3. MicroBlaze Processor Architecture Overview
Overview of the MicroBlaze processor architecture.
4. Driving the SDK Tool
Introduces the basic behaviors required to drive the SDK tool to generate a debuggable C/C++ application.
5. System Debugger
Describes the basics of actually running a debugger and illustrates the most commonly used debugging commands.
6. Standalone Software Platform Development
Covers the various software components, or layers, supplied by Xilinx that aid in the creation of low-level software.
7. 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.
8. Using Linker Scripts
Overview of the purpose and typical use of a linker script.
9. Interrupts: Software Considerations
Describes many of the considerations that a software coder must take into account when supporting interrupts.
10. Linux Software Application Development Overview
Highlights important parts of the underlying Linux system as it pertains to applications.
11. Booting Overview
Describes the main points to how booting a processor is handled for Zynq All Programmable SoC devices and MicroBlaze processors.
12. Profiling Overview
Introduces the purpose and techniques for profiling a user application.
13. Custom Device Drivers
Describes how to successfully write a custom device driver.
1. Overview of Embedded Software Development
2. Embedded UltraFast Design Methodology
3. Zynq7000 All-Programmable SoC Architecture Overview (Lab)
4. Zynq UltraScale+ MPSoC Architecture Overview (Lab)
5. MicroBlaze Processor Architecture Overview (Lab)
6. Driving the SDK Tool (Lab)
7. System Debugger (Lab)
8. Standalone Software Platform Development (Lab)
9. C Coding Support for Standalone
10. Memory File System (Standalone) (Lab)
11. Using Linker Scripts (Lab)
12. Introduction to Interrupts
13. Interrupts: Software Considerations (Lab)
14. Operating Systems: Introduction and Concepts
15. Linux: A High-Level Introduction
16. Linux Software Application Development Overview (Lab)
17. Writing Code in the Xilinx Linux Environment
18. Booting Overview (Lab)
19. Profiling Overview (Lab)
20. Understanding Device Drivers
21. Custom Device Drivers (Lab)