Embedded Open-Source Linux Development


Course Description
This intermediate-level, two-day course provides embedded systems developers with experience in creating an embedded open-source Linux operating system on a Xilinx development board. The course offers students hands-on experience from building the environment to booting the system using a basic, single-processor System on Chip (SoC) design with Linux 2.6 from the Xilinx kernel tree. This course introduces embedded Linux components, use of open-source components, environment configurations, network components, and debugging/profiling options for embedded Linux platforms. The primary focus is on embedded Linux development in conjunction with the Xilinx tool flow.

Duration
2 days

Prerequisites

  • Experience in C or C++ programming
  • Basic understanding of VHDL or Verilog design
  • Basic microprocessor design experience and understanding of MicroBlaze™ or PowerPC® processor architecture
  • Knowledge of operating system architecture
  • Experience using Linux command-line shell for common file operations

Why this training pays huge dividends
After completing this training, you will be able to:

  • Build a Linux development environment from pretested tool components.
  • Describe basic concepts of an embedded Linux operating system
  • Configure a Xilinx FPGA for a Linux operating system
  • Determine scheduling requirements for an embedded Linux operating system and apply them to the FPGA configuration
  • Analyze system requirements for interprocess communication and configure the FPGA
  • Analyze system requirements for memory management and apply them to the system
  • Develop and add Linux drivers to the system

Course Outline

Day 1

  • Course Agenda and Introduction
  • Building the Environment
  • Lab 1: Building the Environment
  • Basic Linux System
  • Lab 2: Basic Linux System

Day 2

  • Booting and Debugging
  • Lab 3: Boot Loader
  • Peripherals and Drivers
  • Lab 4: Peripherals and Drivers
  • Embedded Linux Memory Manager
  • Processes, Scheduling, and Timing

Lab Descriptions

  • Lab 1: Building the Environment – On a virtual machine environment, download and build a Linux development system that integrates Xilinx tools and open-source components. Includes the use of build scripts.
  • Lab 2: Basic Linux System – Configure the kernel, build the kernel without a root file system, download and start the kernel with xmd, try basic debugging techniques, build a minimal rootfs, rebuild Linux with a minimal rootfs, and boot Linux and login.
  • Lab 3: Boot Loader – Analyze the starting point of the kernel, analyze the boot messages, add the first-stage boot loader, add U-Boot, boot Linux with U-Boot, and boot Linux with an NFS rootfs.
  • Lab 4: Peripherals and Drivers – Program a Hello World kernel module, compile external kernel modules, and create a simple gpio driver.