NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

Introduction to Embedded Linux Three-Day Workshop (AM335x)

From Texas Instruments Wiki
Jump to: navigation, search

Introduction to Embedded Linux (AM335x Starter Kit / Beaglebone)

Are you ready to dive into the world of Linux? The Linux open-source operating system is a powerful and robust platform for developing embedded systems; however starting a Linux development can be daunting and time consuming for those who have not previously developed in an embedded Linux environment. The “Introduction to Embedded Linux” workshop was developed for engineers with embedded C/C++ programming experience who would like an overview of the Linux operating system from a practical standpoint centered around the development of embedded Linux applications and systems. The workshop is targeted to students who have little (or possibly no) previous experience with Linux development.

The Introduction to Embedded Linux Workshop dedicates more than 50% of classroom time to hands-on lab exercises. Each lecture is immediately followed by a lab exercise in which the concepts of the lecture are applied to a real embedded system. The workshop labs are tested on the AM335x Starter Kit (<$200), and every lab exercise except for labs 09 and 10 will also run on the low-cost Beaglebone development board (<$100). Though these are the development systems chosen for the lab exercises, the workshop focuses on universal Linux concepts and student learning, and is not company or product specific. Save weeks of frustration with a Linux overview that will prepare you for immediate application development and provide a solid base for further learning.

The workshop is currently running live sessions. The workshop cost is $495 for three days and includes breakfast and lunch as well as a take-home Beaglebone board valued at $89. Sign up today at the following link:

This page also contains the Student Guide (containing workshop PowerPoint slides) and Lab Exercise guide in .pdf format for download, as well as all of the starting files and solutions for the lab exercises. For those who would like to take a self-paced workshop, you may purchase the AM335x Starter Kit here:

Or the Beaglebone board (excludes labs 09 and 10) here:

Workshop Outline

  • Day 1
    • Lecture 1: Booting Linux
    • Lab 1: Booting Linux via mini-SD Card
    • Lecture 2: Linux Distriubtions and Arago
    • Lab 2: Using the Linux Terminal
    • Lecture 3: Using OpenEmbedded
    • Lab 3: Application Recipe for Bitbake
    • Lecture 4: Application build and debug
    • Lab 4: Using Code Composer Studio version 5
  • Day 2
    • Lecture 5: File Manipulation
    • Lab 5: Manipulating GPIO/LED via virtual files
    • Lecture 6: Linux Device Drivers
    • Lab 6: UART Driver read/write
    • Lecture 7: Linux Scheduler
    • Lab 7: pthreads and semaphores
    • Lecture 8: Networking Basics
    • Lab 8: Berkeley Sockets Programming
  • Day 3
    • Lecture 9: Linux Graphics and Video Drivers
    • Lab 9: Driving the LCD with FBDEV Driver
    • Lecture 10: On-Screen Display Development
    • Lab 10: Using Qtopia (qt) to develop a GUI
    • Lecture 11: Using git versioning software
    • Lab 11: Exploring git

Workshop Downloads


Student Guide and Lab Exercises guide are provided in color and black-and-white. The black-and-white versions are a little smaller and will print better on a black-and-white printer. (The first page is always in color regardless of which version.) (11 MB); Workshop PowerPoint Slides

STUDENT_GUIDE_3day_intro_linux.pdf (4.5 MB); Workshop Student Guide

LAB_INSTRUCTIONS_3day_intro_linux.pdf (2.0 MB); Workshop Lab Guide

Lab Exercises

The lab setup guide is included as appendix A1 of the Workshop Lab Guide. For convenience it is presented here separately.

labA1_3day_setup.pdf (4.5 MB); Workshop Student Guide

The setup guide contains instructions for cloning the lab exercises Bitbake layer, which are maintained as a git repository on github. The project page is located here: