Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Baremetal programming esentials for the AMD Zynq-7000 SoC
Rating: 4.8 out of 5(2 ratings)
16 students

Baremetal programming esentials for the AMD Zynq-7000 SoC

FPGA Zynq baremetal ARM
Last updated 6/2026
English
English

What you'll learn

  • Clarity about the digital architecture proposed by AMD for baremetal application development
  • Clearly distinguish the elements that make up AMD’s proposed PL‑PS system
  • Understand the steps involved in the Zynq SoC bootloader execution process
  • Acquire a basic understanding of AXI‑4 interface interconnections
  • Use Vivado and Vitis to develop baremetal programming projects
  • Understand how to navigate the standalone peripheral‑driver documentation
  • Know how to create block designs manually and understand Vivado’s automatic connection features
  • Correctly use pointers to peripheral‑instance structures
  • Understand how to profile any function with execution times of 1 microsecond or longer
  • Understand how to initialize driver instances
  • Use the graphical debug mode and gain an initial introduction to command‑line debugging using the XSDB tool
  • Work with various GPIO I/O types: buttons, switches, LEDs, RGB LEDs, and header pins
  • Use the default and automatic sequencer modes of operation from the XADC peripheral
  • Perform data acquisition using the XADC, the DMA, and external DDR3 RAM
  • Use the I2C protocol via the IicPs and XIic drivers
  • Foundations of the SoC’s interrupts, timers, watchdogs and resets
  • Add a baremetal application to the FSBL bootloader, to create a boot image stored in Flash memory

Course content

9 sections58 lectures6h 22m total length
  • Excerpt 11:29
  • Excerpt 21:52

    Build the block diagram by adding key IP cores: Zynq processor, processor system reset, AXI direct memory access, AXI4-Stream subset converter, XADC, AXI interconnects, AXI GPIO.

  • Excerpt 30:38

    Implement two high-level gpio configuration functions for single or dual channel gpio, initialize with XGpio_Initialize() with the correct parameters, check status, run XGpio_SelfTest(), and set data direction.

  • Excerpt 41:11

    Experiment with prepped color combinations to reveal vibrant, dynamic RGB LEDs while running the project, and explore your own color variations for further possibilities.

  • Excerpt 51:31

Requirements

  • Having a board that has the AMD Zynq-7000 SoC, like: Digilent Arty Z7, Pynq Z1, Zybo, Zedboard, Eclypse; Avnet Microzed and AMD ZC702
  • Knowledge of theory and implementation of digital electronics, regarding combinatorial logic and sequential logic, either with VHDL or Verilog
  • Basic previous experience at programming microcontrollers and microprocessors. Doesn't matter if you come from programming with Arduino IDE or platformio in VSCode. You'll learn a lot here!

Description

Baremetal applications run without an OS, i.e. a scheduler or virtual memory, so your code’s behavior is fully determined by what you write. This makes them ideal when “missing a time deadline” is unacceptable.

Learning baremetal programming on the Zynq-7000 SoC is the foundation for deterministic, high-performance, and deeply understood AMD embedded systems that use the PS-PL platforms.

Learning to program at the standalone (baremetal) level on the PS helps you understand the PS–PL interconnect, AXI protocols, and driver design before layering on an OS.

In addition, the resulting codes between C and C++, as well as standalone and Linux builds, are similar between them.


Other reasons for taking this course:

  • In this course, you’ll get verified, clearly explained, and accurate code that works for this SoC.

  • Tired of unanswered forum questions? I’ve gathered some of the most common pitfalls and answered them here.

  • Every project done on this course is broken down step-by-step, guided by both the official documentation and my real-world experience.

  • It’s the very hands-on, practical course I wish I had seen around when I first got my Arty Z7 board.


Join me on this baremetal journey with the AMD Zynq-7000 SoC. Enroll now and build something amazing!

Who this course is for:

  • Undergraduate students familiar with FPGA basics but new to ARM Cortex processors
  • FPGA Hobbyists who want to master the standalone library and drivers
  • Young FPGA developers weighing their niche
  • FPGA veterans transitioning from legacy Xilinx tools
  • IP design and verification engineers who want to learn how to use AMD Zynq SoCs
  • Embedded systems engineers who see in FPGAs a tool to achieve a deeper understanding of the field