Introduction to µClinux™ on the Blackfin®


This course introduces uClinux using a Blackfin BF537 Processor which provides a combination of high performance DSP and general processing functionality. These systems are available on the Analog Devices Blackfin web site

NOTE: The class will be using ADI BF537 Stamp Hardware

A special 4 Day public classes is offered in Europe (Breda) for 1495.00 Euros (paid in advance).

The planned dates are November 17th-20th, 2009

Location

Silica 
Takkebijsters 2
4802 HV Breda, Netherlands

Phone: +31 76 572 27 00
Fax:   +31 76 572 270 7
Email: Silica.breda@avnet.com 

Development Computers

Please bring your own laptop running a suitable version of linux, ( UBUNTU 9.04 , or possibly 9.10 are suggested).
SDCS will offer assistance in installing the Blackfin development system before the class on laptops with supported distributions (see below).

You will need 5G free disk space and at least a 400MHz/512Meg ram system with a serial port available (most USB serial devices are OK).

Currently tested distributions of Linux include RedHat 9.0 , Fedora 6, Suse 9.x, 10.0, 10.1 10.2, Ubuntu 6.10, 7.10 , 8.04, 8.10, 9.04 Other systems may work but please check with SDCS before the start of the class.

Blackfin (BF537 Stamp) Target systems will be provided on loan during the class.

Contact SDCS for more details.

This course is designed to be a complete introduction to programming with µClinux.

As with most good technology courses, it is under continual improvement. Here is a description of the current course contents.

Day 1

Development Host Setup

This section covers setting up a suitable Host Development system

Topics Include

  • Tools
  • Serial Port
  • Network - tftp
  • Network - nfs
  • Debug Options
  • Test Options

After taking this section the student will be able to use a suitable X86 development system as a host to create system images and monitor their embedded applications.

GPL Basics

This section presents a basic introduction to the different forms of the Gnu Public License (GPL)

Topics Include

  • GPL Basics
  • Kernel Code
  • User Code
  • Library Code
  • GPL 2.0 and beyond
  • More Information

After taking this section the student will have a good idea on what it takes to work with the GPL and produce products while also protecting valuable IP.

Creating A System Image

This section creates and loads a system image onto the target.

Topics Include

  • Image Build
  • Boot Image Download
  • Image Download
  • Your Own Target

After taking this section the student will be able to download and run an image on their own customized Target Environment.

Creating User Code

This section introduces user code development. It also covers the transition from kernel code, used during boot, to user space.

Topics Include

  • Kernel/User Space transition
  • Simple User Code Example
  • Adding User Code to the whole system
  • Updating the user code example

After taking this section the student will be able to download and run a simple application in their own customized Target Environment.

Day 2

More Advanced User Code

This section leads the student into mode advanced user code development.
The transition from the booting kernel to the first user space application is also covered.

Topics Include

  • Kernel/User Space transition
  • Simple Socket Interface
  • Web Server
  • CGI interface
  • Dynamic Web based interface (AJAX)

After taking this section the student will be able to download and run more advanced user code applications on the Target.

µClinux Debugging

Various Debugging Techniques will be discussed for both Kernel and User Code

  • Introduction to GDB
  • Kernel Debug Options (KGDBOE)
  • Using graphical tools. (DDD)
  • Setting up a Cross Debugger
  • Hardware Debug using USB based JTAG.
  • Debugging User applications on the target using Gdbserver

After taking this section the student will be able to choose from a number of debugging techniques. The student will have an introduction to GDB and a graphical debug interface.

The µClinux Source Distribution

The µClinux source distribution is a one stop system development environment.

This sections discusses configuring and customizing the distribution and adding your own user and kernel code as needed.

Details include:

  • Host System Configuration
  • Installing the Distribution
  • Configuring and building the Distribution
  • Understanding the config files
  • Understanding the make files
  • Adding a new vendor tree (review)
  • Adding user code (review)

After taking this section the student will be able to configure, navigate and customize the µClinux Source Distribution.

µClinux Libraries

This section discusses the different libraries available in µClinux.

Topics covered include:

  • Shared Libraries
  • FD_PIC shared libs
  • Other libraries
  • Specifying special libraries for user tasks

After taking this section the student will understand µClinux libraries and their configuration.

µClinux Filesystems

This section discusses the different filesystem options available with µClinux.

Topics covered include:

  • File System Types
  • Understanding Partitions
  • Flash File Systems
  • Root File System using NFS

After taking this section the student will understand µClinux file system options.

Flash Memory, Flash File Systems

This section provides an introduction to Flash Memory.

Details include:

  • MTD (Memory Technology Devices) Overview
  • Kernel Configuration for Flash
  • Flash Memory Setup and detection.
  • Flash Partitions.
  • Flash Memory file systems.
  • User space applications

After taking this section the student will be able to set up the system to detect and configure flash memory.

Day 3

Das u-Boot

This section describes the u-Boot loader used on the Blackfin Stamp board. The bootloader is built from sources and methods of extending the bootloader to include custom hardware tests are described.

Topics covered include:

  • Building the bootloader (latest version)
  • Installing the bootloader on the target
  • Uart, SPI and NOR Flash Options
  • Bootloader commands and utilities
  • Extending the bootloader

After taking this section the student will be able build, install and extend the u-Boot bootloader.

Linux Bootup

The µClinux boot up procedure is explained in this section.

The initial startup file and linker map is discussed followed by following the boot process right up to the time when the system starts running user applications.

Details include:

  • Linker Maps
  • Start file
  • Basic Architecture
  • Interrupt vector
  • Linux System
  • Root File system
  • Platform Device Setup
  • Device Driver startup
  • Initial Ram Disks
  • Console
  • The init task

After taking this section the student will understand the µClinux system set up and kernel boot up procedure and will be able to modify it as needed for special target systems.

Linux 2.6 Kernel

This section provides an introduction to the 2.6 Kernel.

Details include:

  • Kernel Features
  • Configure the Kernel
  • Building the Kernel
  • Target Memory Layout
  • Cache Control
  • System Calls
  • DMA Operation
  • Interrupt Handling
  • Extending the Kernel

After taking this section the student will be able to navigate the kernel sources and have an initial introduction to the features used on the Blackfin Target System.

Day 4

Introduction to Modules and Device Drivers

This section provides a basic introduction to Linux Device Drivers.

Details include:

  • Linux Device Driver Model
  • Linux Kernel Modules
  • Simple Char Device Driver
  • Proc Interface
  • Kernel API for device drivers
  • User space access
  • Platform Resources

After taking this section the student will be able to create and install a simple character based device driver.

Device Driver and Kernel Programming

This section provides more details Linux Device Drivers and Kernel Programming.

Details include:

  • Timers
  • Kernel Threads, Tasklets, Work Queues
  • Blocking, Sleeping and Wake up events
  • Semaphores and Mutexes
  • Interrupts

After taking this section the student will become familiar with many aspetcs of Kernel programming and know how to find out more details..

BF537, BF548, BF561 Systems Introduction

This section introduces the features available on the 527, 537, 548 and the multicore 561 processors.

Details include:

  • High Speed Networking
  • Working with multicore devices (561)
  • Dma Systems
  • Sport (Serial Port) Example Driver
  • PPI (Parallel Port) Example Driver
  • SPI (Parallel Port) Example Driver
  • USB Drivers

After taking this section the student will be introduced to multicore processing and other special features available on these Blackfin Systems.

Class Size

The attendance is limited to approximately 10 people. This allows good personal attention during the class.

Cost

The Breda class is offered at 1495.00 Euros (to be paid in advance)

Registration

Contact Phil Wilshire, SDCS (philwil@sysdcs.com) for more details