Intellimetrix

The Embedded Linux Learning Kit Version II from Intellimetrix

Do you know some Linux and need to get up to speed on embedded development? Have you been Googling till your fingers bleed and reading blogs till your eyes glaze over? Doug Abbott* has distilled down the essentials of embedded development using Linux and ARM; even step by step setup of an Eclipse environment. This is what you have been looking for. Abbott is an experienced author and teacher of embedded design in the Univ. of California system.

Learn how to:

Set up boot parameters and boot Linux
Configure and build the Linux kernel
Access peripheral devices with and without device drivers
Build and debug application code over the network with NFS
Create network-based applications including a simple web server

 

 

 

 

 

The Embedded Linux Learning Kit teaches embedded Linux in a practical, self-paced, hands-on environment, taking you step-by-step through the process of building and testing real embedded applications on real hardware. Note: You will need a Linux PC environment. You can use a virtual system like the free VMWare Player and install Fedora or other distro in a virtual environment on a Windows PC. XPpro works well with VMWare.

Note: In some systems the E.L.L.K. CDs  mount as cdrom0 (or similar) instead of 'EmbeddedLinux'. This prevents the installation scripts from functioning. This is easy to fix. Move the two install scripts to your home directory. install_tools.sh and install.sh. Change one line in each file  DEV="/media/EmbeddedLinux" to DEV="/media/cdrom0" and follow the directions, but execute from your home directory.

      

Hey! I already have a Min2440! What about me? Yes, and me! I want a 7" display!  You are both in luck! You can get the CD and Book for $99 and we will install the special u-boot and kernel if you need a different LCD. The kit includes installation instructions to set up your Mini2440. Follow this link.

Kit Contents:

Mini2440 Single board computer with:

405 MH ARM9 processor (Samsung S3C2440)

 64 MB RAM

2 MB NOR Flash

128 MB NAND Flash

SD/MMC socket

3.5 inch color LCD panel (320 x 240)
10/100 Ethernet port
USB host and device ports
RS-232 serial port for debugging
Multi-channel A/D converter
User-programmable LEDs and switches

 

 

 

 

 

 

 

 

 

 

Power supply (100 to 240 volt input, North American plug)
Ethernet crossover cable
Serial cable
Pre-installed Linux kernel -- 2.6.32
Users’ guide

 

 

 

 

 

CD with support software:

Cross-development tools
Kernel source -- 2.6.32
Eclipse IDE

Tutorial code samples

BusyBox
U-boot loader

 








Here are the section titles from the table of contents:

Getting Started
   The Host Development Environment
   Linux installation
   Installing the kit software
   The Terminal Emulator, minicom
   Networking
   The target
   What can go wrong?
   The bootloader
   Resources
   Linux distributions

Flash Memory and File Systems
   Flash Memory – NAND and NOR
   Root file system in flash

Eclipse Integrated Development Environment
   Introduction
   Getting Started
       Java Runtime
       Starting Eclipse
   The C Development Environment (CDT)
       Creating a Project
       The target execution environment
   Remote debugging with GDB
       Debugging with CDT
   Debugging with DDD
   Resources

Working with Hardware
   ARM I/O Architecture
   Accessing I/O from Linux

A Real-World Application

A Thermostat
   Host workstation as debug environment

Posix Threads.
   Creating a Linux Process – the fork() function.
      Introducing Threads.
         Thread Attributes.
         Synchronization—Mutexes.
      The thermostat with threads.
         Linux Device Drivers.
         The Low Level I/O API.
         Changes required in thermostat.c.
         Debugging threaded programs.
      Resources

Networking.
   Sockets.
      The Server Process.
      The Client Process.
      Socket Attributes.

And much more, like a web server, building the kernel, booting over the network, the LCD driver, BusyBox, Flash File Systems, and references.

 

*Doug Abbott is the author of several popular Linux and embedded programming books. See here http://astore.amazon.com/intellimetrix-20

People who buy the ELLK also buy the USB to Ethernet converter so that they can have one Ethernet port set to static IP for the ELLK and another connected to their network in the usual way. Check the Cable Kit  CMOS Camera  USB to Serial

       

   

E.L.L.K. user blog  - CTO Charlie

March 15, 2011  Hi all. I'm going to write a little here as I work through the E.L.L.K. experience. Of course, I'm writing about things after I do them and so far I can report that this has been very rewarding in very little time.

I'm starting from a clean slate with a new system. For a Linux work station I ordered a Bare Bones desktop from Tiger Direct with an AMD Phenom quad core CPU, 4 GBytes of RAM, a 1 TByte hard drive and a DVDRW, all for $280. In fact it was this one. There was an Acer 20" 1600x900 display on sale for less than $130 --room to view several windows-- and I stopped by Office Depot and grabbed a basic MS mouse and a small keyboard, one of the little ones with no numeric keypad or cursor keys. I like the extra room on my desk top.

I knew I would need to use the Ethernet for the Mini35. To keep networking simple I found a WN321 USB WiFi in the lab for network access, and the development Ethernet connection could be set up with static IP. The WN321 can be found for $8 to $12 these days. Total cost for this development host was less than $450 and it is pretty quick. Add the cost of the E.L.L.K. and you can have a professional development station with Mini2440 and 3.5" LCD for under $700 with all new equipment. I think you can do all this on a Windows system using virtualization like the free player from VMWare or the popular Sun virtual system software. And of course if you are already using Linux it will be a snap. By the way, the kit assumes you have some Linux knowledge in order to configure your work station and directories, etc.

I had a new Fedora 14 disk from a Linux magazine and did the install. It went smooth as silk. I like KDE for a desktop and somehow wound up with Gnome! Oh well. It isn't much different. Doug Abbott uses KDE in his text.

For the first item of business I wrote down the passwords for my home user and for root. For a setup like this I make a label and tape it to the monitor. Security? We don't need no stinking security!

The E.L.L.K. software install is straight forward. The author has a script to install tools. Minicom was not present so I installed it over the network with the Fedora tools. The Wifi link worked fine for internet access. I followed the E.L.L.K. author's directions and configured the serial port to communicate with the Mini35. The Mini is pre-loaded with a custom u-boot that is all set for NFS, the Network File System that is going to make this all work so nicely. There were a few little details like setting the permissions on the serial port so that they are correct whenever I start the work station, and setting a static network IP for the Ethernet port. I had a little frustration here with the Gnome graphical tool for this. I had to force a restart of the network after making the changes or they would not stick. This is all covered in the text.

Once Minicom was working and the host network configured, I started NFS service on the host using the Gnome graphical tool for Administration. I connected the Mini35 with the Ethernet cross cable in the kit and the serial cable. I made sure the Mini was set to NAND and powered on. Amazingly, all was well and I saw the boot process on Minicom. The kernel loaded from NAND and the file system loaded from my home directory on the host using Ethernet; all very quickly. That reminds me. Minicom runs in a console window and required that I run it as root.

The process ended with a prompt from the Mini and I logged in through the console on Minicom. root is the only user and there is no password.

Eclipse was installed with the other tools from the E.L.L.K. disk. Eclipse needs a Java run-time. Fedora already had a Java run-time so there was no need to install one. The Eclipse startup was easy. In literally a matter of minutes I had loaded a project to blink the LEDs on the Mini35 and was running it.  In fact Eclipse had built the project in the process of importing it! A few pages later I was using GDBserver on the ARM9 hardware and stepping through code with breakpoints and looking at variable values. This was in both C and assembly language with the disassembler in the Eclipse environment. I was up and running already. Amazing! I have not been this excited about doing embedded work in ages. It helps that the author has written a book on using Eclipse for embedded development. Building application code on the host and in the directory in my home location and ./ executing it from the Mini2440 console is a blast. This is old hat to experienced Linux users but getting past all the fiddly details and running under a properly configured Eclipse is a huge time saver and productivity booster. This is an early conclusion. I will see what happens as we continue.

I looked ahead a couple of chapters. Next stop: forks, threads, and network servers. Then mutexes and sockets and embedded web serving.


Over the weekend I made a little platform for development. I keep single sided PCB panels around from the old days of doing "skywire" analog design above a ground plance. The mounting holes for the Mini2440 are on a 92mm square. Now it just needs some sort of stand to put it in a convenient position for work. I'll add some solderless breadboards and breakouts for the interrupts, SPI, I2C, CMOS Camera, and GPIO. If you don't have the room or inclination, just mount the LCD on the back side of the Mini2440 so that you have easy access to all the buttons and connectors.

1-9 $219.95
10-24 $215.00
25-49 $215.00
50+ $215.00
Qty