Downloads

This is our collection of software, presentations, articles and other goodies that you might find useful. You are free to copy and distribute these items provided the original copyright notice remains intact.  Also remember that this is Public Domain software and as such is provided on a strictly "as is" basis.  If you have questions we'll try to answer them and we'd be most interested in any comments you have; however, we can't make any commitment to formal support.   Have fun!

Embedded Systems Conference, Boston, 2011

Here are the revised slide deck and source code from my presentation, Device Drivers Demystified.

ESC-408_Slides.pdf

ESC-408.tar.gtz

Moving up to Fedora 14

Fedora 11 is now totally out of date and virtually impossible to find.  I recently upgraded to Fedora 14 and the latest release of Eclipse, Indigo.  There are a few differences in installation and operation from what's described in the manual.  So until we get the manual updated, this document summarizes the differences.

MovingtoFedora14.pdf

 

Another ELLK Software Installation Problem

A problem has shown up in the install_tools.sh script when run under Ubuntu.  The symptom is that the install.sh script can't create or populate the .working/ directory.

install_tools.sh uses the LOGNAME environment variable to change the ownership of target_fs/home and everything in it.  LOGNAME is initially set to the user name you log in as.  Under Fedora and Red Hat distros, when you su or sudo to become root, LOGNAME retains its initial value.  However under Ubuntu, when you become root the value of LOGNAME changes to "root", which kind of defeats the purpose.

The workaround is to manually change the ownership of home/ and everything under it to your user name, create home/.working/ and copy the files from the CD.  Do this as root of course.

Embedded Linux Learning Kit Software Installation Problem

Several users have reported problems with running the installation scripts provided on the ELLK CD.  It seems that some Linux distributions arbitrarily reset the execute bit on mounted removable media so that install_tools.sh and install.sh are not recognized as executable.  There are a couple of work-arounds:

  • Copy the scripts to your home directory, set the execute bits, and execute them there.
  • Execute bash /media/EmbeddedLinux/install_tools.sh followed by bash /media/EmbeddedLinux/install.sh.
GoGogh and Dash Courses Embedded Linux class

This is the code and data required for the Eclipse exercise in Module 4

record_sort.tar.gz

Embedded Linux Development Using Eclipse

Here is the sample code for the exercises in the book.

EclipseSamples.tar.gz

Linux for Embedded and Real-time Applications

There are reports that the version of BlueCat Lite distributed on the book CD doesn’t install in certain environments.  This appears to be due to some incompatibilities in the RPM utility.  Here is a bzipped tar of my BlueCat installation.  You can untar this in your home directory and have almost the same thing you would otherwise get from following the BlueCat install process.

bluecat.tar.bz2 (106 MB)

There is however, one “gotcha”.  RPM works some magic to put the install directory, in this case “/home/doug”, into absolute path strings in the binaries under cdt/.   The consequence is that building a program fails because the compiler can’t find the library files, among other thing.

The solution, kindly provided by redhat_blues on the book’s Yahoo group, is to create the directory /home/doug and in there set up a symbolic link to your BlueCat installation directory thusly:

ln –s <your_install_directory>/Bluecat Bluecat

printf

The printf family of functions can sometimes be a problem in embedded environments. You rarely need all the functionality of printf (floating point formats for example). The functions are large and they tend to be stack hogs.

Here's a small public domain version of printf that came out of Embedded Systems Programming some time back.  I added some minimal floating point support.

rprintf.zip (3 kb)

Universal Test Program (UTP)

Much as Windows provides a programming framework that allows one to easily develop applications with a consistent look and feel, so the UTP (Universal Test Program) is a framework for creating simple test programs with a consistent operator interface. Like Windows, the UTP defines an API that simplifies the creation of test programs. Unlike Windows, this API is quite simple.

utp.zip (55 kb)

Debugging Realtime Software in a Multitasking Environment
Presentation at Ideas in Science and Electronics, May '97.

The need to track multiple threads of execution, and to interact with the physical environment, complicate the process of debugging software built around a multitasking kernel. Often the “snapshot” provided by a conventional breakpoint is insufficient. Rather, a history of how we got here is more useful. Furthermore, in the absence of expensive specialized tools, the target environment is often not a very “friendly” place for debugging.

This paper looks at techniques for debugging in the Host development environment as well as ideas for effective use of logic analyzers and emulators.

ise97.doc (Word 6 document, 238kb)

ise97.zip (compressed version of ise97.doc, 75 kb)

Mass Customizing Software
Invited article for the Journal of Agility and Global Competition.

"Mass customization" may sound like an oxymoron but in fact, it is likely to be the dominant paradigm for manufacturing in the 21st century.  The idea is simply that today's technology makes it possible to easily customize products for individual users.  The challenge is to design products that fit into this new paradigm.

As more and more products come to rely on embedded computers, there is a growing need to structure embedded firmware to fit the mass customization model. This article explores the technique of table-driven programming to make firmware easily customizable.

softcust.doc (Word 6 document, 16 kb)

 

Web Design by cactuslady@cactusweb.net - 2006
Copyright © 2000, 2008 Douglas Abbott