Embedded Systems Software Design

Course Description

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 design and implementation of the board support package (BSP) 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. You will have enough practical information to start developing software applications for the ARM® Cortex™-A9 and MicroBlaze™ processors.

Please note, hardware design concepts and procedures are not covered in this course, so Doulos recommends Embedded Systems Hardware and Software Design which combines appropriate Hardware and Software Design training in a 3 day course.

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.

Prerequisites

C or C++ programming experience, including general debugging techniques

Software Tools

Xilinx ISE® Design Suite: Embedded or System Edition 2013.3

Hardware

Architecture: Zynq-7000 All Programmable SoC and 7 Series FPGAs*

Demo board: Zynq-7000 All Programmable SoC ZC702 board*

* This course focuses on the Zynq-7000 All Programmable SoC and 7 series architectures. Please contact Doulos for the specifics of the in-class lab board, other customizations or 6 series based architecture.

Developing for 6 Series FPGAs?

The content of this course can also be accessed by FPGA designers looking to develop embedded systems using the Xilinx MicroBlaze soft processor in a 6 Series FPGAs (such as Spartan-6 or Virtex-6). Please contact Doulos for the specifics of your requirements before booking.

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 using the Xilinx Software Development Kit (SDK) and run it on the embedded system.

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

Procesors, Peripherals, and Tools

Standalone Software Platform Development

Linux Software Application Development

Lab 1: Basic System Implementation

Software Development Using SDK

Writing Code in the Xilinx Standalone Environment

Writing Code in the Xilinx Linux Environment

Lab 2: Application Development

Address Management

Interrupts

Lab 3: Software Interrupts

Day 2

Software Platform Download and Boot

Application Debugging

Lab 4: Debugging

Application Profiling

Lab 5: SDK Profiling

Writing a Custom Device Driver

Advanced Services and Operating Systems

Project Management with the Xilinx Design Tools

Lab 6: File Systems

Lab Descriptions

Lab 1: Basic System Implementation – Construct the hardware and software platforms used for the labs in this course. Begin with the Processing System Configuration Wizard to create the hardware design. Specify a basic software platform and add a software application to the system.

Lab 2: Application Development – Create a simple software application project from provided source files for a software loop-based stopwatch. Research hardware and software documentation to complete the application; then download it to hardware.

Lab 3: Software Interrupts – Replace a software timing loop with an interrupt-driven timer. Add the timer software and write an interrupt handler for the timer. Configure the FPGA, download, and test the application.

Lab 4: Debugging – Set up the SDK debug perspective and the previous lab’s stopwatch application for debugging, setting breakpoints, calculating interrupt latency, and stepping through the program’s operation.