Embedded GNU Jumpstart

by William Gatliff with Microcross, Inc.

Training Datasheet

GNU development tools are simply unmatched in their power and adaptability for solving tough embedded development problems. But all that power can be a challenge to master quickly. Wouldn't it be nice to get ahead of the GNU learning curve in a week, instead of months or years?

Now you can! Embedded GNU Jumpstart is a unique combination of formal presentations and hands-on lab exercises that will turn you into a GNU power user in less than one week. The course program is led by an experienced embedded GNU user, and lab exercises are performed on real embedded hardware, which is yours to keep at the end of class!

You won't find a course of this depth and breadth anywhere else. Mr. William Gatliff is a seasoned embedded developer and instructor who makes his living actually using GNU tools to embed software, not just talking about them. As a result, each presentation and lab exercise is jam-packed with valuable, immediately useful information that you'll put to work on your own embedded projects as soon as you get back to work.

Course outline

Here is the latest table of contents (pdf) from the course manual.

Free and Open Source Licenses

  • Free vs. Open Source, and what the differences mean
  • Reviews of the GPL, LGPL, BSD and other popular licenses
  • How license terms affect embedded design
  • Installing the GNU Toolchain
    • From scratch, for Linux and Win32 hosts
    • Using commercial toolchains like Microcross GNU X-Tools
  • Building and Managing Applications
    • Compiling and linking from the command line
    • Using gcc with a Makefile
    • Converting to output formats like Motorola S Record
    • Disassembling object files and applications
    • Merging application images, jump tables data tables
    • Interleaving images for Flash and ROM programming
    • Constructing, managing and using libraries
    • Understanding application startup and crt0
  • The GNU Linker Command File Syntax
    • Putting things at their proper places in memory
    • Filling and padding images
    • Supporting initialized data
  • The Gcc spec File
    • Understanding how gcc knows what to do
    • Modifying gcc's behavior to improve the user experience
  • Porting newlib to Embedded Hardware
    • Building and installing newlib
    • Understanding newlib's reentrancy and other features
    • Making dynamic memory allocation work under newlib
    • Integrating newlib with an RTOS and/or debugging agent
  • Gcc's Inline ASM Syntax, and Other C Language Extensions
    • Sectioning, alignment, and other commands
    • Integrating assembly code with the C runtime environment
    • Implementing an interrupt handler in C with gcc
  • Debugging Under GNU
    • Simulation, JTAG, BDM and other options
    • Using the Macraigor Wiggler and Abatron BDI2000 adapters
  • Adding Remote Debug Capabilities to Embedded Hardware
    • Understanding how a debugging agent works
    • Issues with debugging your embedded system in the Real World
    • Connecting your embedded system to the GNU debugger
  • Using Gcc for Embedded Development in C++
    • Brief observations on performance and safety
    • Building the GNU c++ compiler
    • Getting new and delete to work properly
    • How gcc implements common c++ constructs
  • Overviews of Some Useful GNU-Sociable Products
    • RTEMS
    • uC/OS-II
    • (list subject to enhancement without notice)

    Hardware

    Embedded GNU Jumpstart uses the ARM720T Eval Board from Cogent. This board features a Sharp LH79520  microprocessor running at 74 MHz with 32 MB SDRAM and 8 MB flash memory. Full documentation and schematics for the board will be available during class.

    Other single board computers are available by special request. Send me an email. Students are also encouraged to bring their own hardware, to use with lab exercises as time permits.

    Hardware description
     

    Prerequisites

    This advanced workshop is ideal for embedded developers who are responsible for their application's firmware design and development. It presumes a familiarity with basic C programming concepts and some prior embedded system programming experience. Motivated students without previous embedded experience are also encouraged to attend.

    Each student must provide his own laptop computer. The computer must have either a Linux distribution (Red Hat Linux 7.3 preferred) or a Win32 operating system (WinNT/Win2000/XP pro only; required for stable operation with Cygwin) installed before class begins. Course activities will require one available DB9 serial port, approximately 500MB of free disk space, and a Pentium-III/400MHz/128MB performance level or better. Students are strongly encouraged to bring their OS installation CDs to class.

    Frequently Asked Questions

    If you don't see your question answered here, please feel free to send me an email.

    Why do I have to bring my own computer?

    Put simply, how else are you going to take your new GNU toolchain and other course materials home with you at the end of class? This course offers a unique combination of intensive, embedded training and take-home hardware that you won't find anywhere else. The goal is to for the student to be a proficient GNU user in one week, and to carry that knowledge back home after class is over. Bringing and using your own computer is the best way to meet that objective.

    Why is this course so much cheaper than other, apparently similar offerings?

    Emphasis has been placed on controlling the cost of every aspect of the course to bring quality GNU training to developers who need training, but do not have a big budget.  This course would normally cost two to three times more, if offered from a large company. Microcross is a small business with low overhead and together with Mr. Gatliff can afford to offer lower prices without compromising quality instruction. The other reason is because we plan to offer the course with an expected class size of 10 to 20 students.

    This course is all about free software. Why does it cost money?

    Actually, the course is about Free (speech) software, not free (gratis) software.

    GNU tools are powerful and flexible, but it takes more than a few minutes to learn to apply that power and flexibility to your own embedded development needs. The most cost effective way to get started is by working under the direction of an experienced and competent teacher for a week, instead of trying to gain the knowledge yourself over a period of several weeks or, in most cases, months, and sometimes years.

    Call to register now! +1.478.953.1907
     

    © 2009 Microcross, Inc.  All rights reserved.