Course Description

In this hands-on training series, Virtualized Embedded Systems Development, we explore the basics of QEMU, OS installation, QEMU networking, and embedded system development for the ARM architecture. In Part 1 we start with the basics of QEMU including how to use QEMU for a generic Linux OS installation and for networking using OpenVPN and TAP/TUN. Then we’ll dig deeper looking at the embedded domain including cross- compilation of the Linux kernel for ARM, how to boot the kernel for QEMU and how to build a small filesystem and then mount it on the vanilla kernel. We’ll start with emulating the ARM processor for two purposes, one to run an ARM program and then to boot and run the ARM kernel.
Next we work with bare-metal programming and explore the need for a bootloader. Then we build an ARM Versatile Platform Baseboard, write some data to the serial port of the processor and test with a bare-metal program which runs directly on the processor. We finish with developing and testing the U-Boot (Universal Bootloader).

Course Outline

Basic Use of QEMU

Building QEMU from source

Creating a New Virtual Machine

QEMU networking

Compiling QEMU for ARM

Obtaining an ARM tool-chain

Cross-compiling and running the test program for ARM

Building the Linux kernel for ARM

Modified kernel for u-boot

Bare-metal programming

Download and compile U-Boot

Boot U-Boot in QEMU


Prior experience with TCP/IP, and the Linux command line as well as familiarity with C or C++.

Applies Towards the Following Certificates

Enroll Now - Select a section to enroll in
Section Title
Virtualized Embedded Systems Development
T, Th
Time (Central Time)
5:30PM to 8:30PM
Oct 17, 2023 to Oct 26, 2023
Schedule and Location
# of Course Hours
Delivery Option
Course Fee(s)
Rate non-credit $1,695.00
Potential Discount(s)
Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.