Bill Home

Free and Open Source software is powerful. But the learning curve is steep!

Managers can’t afford to delay projects by six months or longer for their team to self-learn new skills, and developers don’t want to spend hours on end chasing down wrong answers in out-of-date mailing lists and online documentation. I use an accelerated, hands-on approach based on the latest Free and Open Source software, running on embedded hardware that the student keeps at the end of class. Graduates go home with their own working system, a reference design, and a knowledge base that they can put to immediate use in their own applications.

I wrote and lead all the courses described below. That means you get an experienced embedded developer running the class, not a professional trainer who just the week before was lecturing on e-commerce and COBOL programming. Graduates of my classes consistently report that my material hits their needs dead-on. That’s no surprise: I teach the very same skills I use to make my own living as a freelance embedded developer.

Don’t see exactly what you want? I can draw from my decade of development and training experience to produce course materials tuned specifically to your needs. Send me an email for more information about a custom class.

Embedded Linux Jumpstart

Embedded Linux Jumpstarttm introduces all the essential concepts involved in running Linux in an embedded system. Course topics include:

Linux Penguin
  • Free and Open Source licenses
  • Building and installing a Linux kernel
  • Creating a runtime environment
  • Writing and installing device drivers
  • User applications
  • Security and remote management

Each topic is reinforced with hands-on exercises run on real embedded hardware, which is yours to take home at the end of class. This class is ambitious and thorough, and certain to get your embedded Linux design off to a great start.

Embedded GNU Jumpstart

Embedded GNU Jumpstarttm is a fast-paced, hands-on introduction to using the GNU tools and technology for embedded applications. Course topics include:

GNU Head
  • Free and Open Source licenses
  • Installing the GNU C/C++ toolchain
  • Building and managing applications
  • The GNU Linker command syntax
  • Porting a C runtime library
  • Debugging techniques

Topics are presented using a combination of lectures and hands-on exercises featuring real embedded hardware which is yours to keep at the end of class. This class gets you going, fast.

ARM Processor Programming

Brand new! The ARM microprocessor is arguably the most popular 32-bit embedded processor in history. This class is an intensive introduction to programming the ARM microprocessor, and includes the following topics:

  • The ARM and Thumb instruction sets
  • Mixed C and ASM programming
  • Coprocessors: MMU, cache, etc.
  • Exception and interrupt handlers
  • ARM peripheral programming
  • How to evaluate two ARM-based microcontrollers
  • The history and future of the ARM processor

This course is available in a three-day, all lecture format and a four-day, lecture-plus-exercises format. Send me an email for more information.

Embedded Systems 101

Brand new! Embedded systems programming isn't like other kinds of programming. It demands special coding and debugging skills, the ability to read schematics and to design circuits, and a keen awareness of hardware and software tradeoffs.

Embedded Systems 101 is a rapid introduction to embedded systems programming for developers coming from other domains. In less than one week, I use a combination of lectures and hands-on exercises to demonstrate and educate students on the skills that are essential for successful embedded applications. Course topics include:

  • Cross compilation and debugging
  • Basic digital logic design
  • Controlling peripherals from programs
  • Interrupt handlers and foreground processes
  • Using an RTOS in an embedded application

Send me an email for more information on this course.

Real Time Linux

Coming soon! What if you want the power and flexibility of the Linux kernel, but your application demands real time performance?

This class provides a hands-on introduction to real-time Linux, using POSIX.1b and RTAI to achieve soft and hard real-time performance. Topics covered include:

  • What is "real time"?
  • Approaches to real time programming with Linux
  • How to characterize real time application needs and performance
  • Patents and licenses, and how they relate to real time Linux
  • Real time schedulers, semaphores, fifos and other features

Send me an email for more information on this course.


Site Design by: One Hat Design Studio.