Gumstix Overo review

Posted by Cliff Brake on 2010-02-08 | Be the First to Comment

Based on the interest and number of embedded modules currently available, it appears that the OMAP3 CPU from TI will be very popular in the general purpose embedded Linux market.  One of the OMAP3 modules available is the Overo from Gumstix.  As the company name suggests, this module looks about like a stick of gum, [...]

The Go language for embedded systems

Posted by Cliff Brake on 2010-01-06 | 2 Comments to Read

As one of the things I do is evaluate new technologies for embedded systems, the Go language from Google is an interesting development.  I have been looking for a better “system” language for some time.  What I mean by a better system language is one that is nearly as efficient as C, does not require [...]

OpenEmbedded development activity

Posted by Cliff Brake on 2009-12-29 | Be the First to Comment

Ever since I have been sending out weekly change logs, I have been impressed by the consistent amount of development activity in the OpenEmbedded project.  Every week there are consistently over a dozen developers making changes.  Developers come and go, but the contribution level always seems healthy.  While this amount of development leads to some [...]

OMAP3 Resume Timing

Posted by Cliff Brake on 2009-12-07 | 3 Comments to Read

One of the most common power management modes for ARM processors is the suspend mode.  In this mode, peripherals are shut down when possible, the SDRAM is put into self-refresh, and the CPU is placed in a low power mode.  A useful bit of information is to know how soon the system can respond to [...]

Linux kernel stats, and long term advantages

Posted by Cliff Brake on 2009-12-01 | Read the First Comment

I just read an interesting interview with Greg Kroah Hartman.  According to Greg, we add 11,000 lines, remove 5500 lines, and modify 2200 lines every single day.  This rate of change is something that few organizations have the resources to match.  It is interesting that Google chose to use the Linux kernel in the Android [...]

Linux PM: OMAP3 Suspend Support

Posted by Cliff Brake on 2009-11-23 | 8 Comments to Read

This article provides an overview of the Linux kernel support for the suspend state in the TI OMAP3.  Power management has always been one of the more difficult parts of a system to get right.  The OMAP3 power management is quite extensive.  There are many levels of very granular control over the entire system.  Initially, [...]

Integrated CAN solutions for Linux

Posted by Cliff Brake on 2009-11-19 | 3 Comments to Read

I just received an email notification from EMS (http://ems-wuensche.com/) that support for their CAN controllers is now in mainline Linux kernels.  The EMS PCI products are supported in 2.6.31, and the CPC-USB product will be supported in 2.6.32.  I’ve used various Linux CAN stacks in the past, but none were as well integrated as the [...]

Notification at the end of builds

Posted by Cliff Brake on 2009-11-05 | 2 Comments to Read

I do quite a few OpenEmbedded project builds during the course of a week.  This process usually takes 3-5 minutes.  That is just enough time to get distracted doing something else and forget about the build until an hour later when you realize — oops, I was supposed to send out a release email once [...]

Best practices for kernel development with OpenEmbedded

Posted by Cliff Brake on 2009-10-13 | Be the First to Comment

A common question is how do you do kernel development with OpenEmbedded?  Typically, OpenEmbedded builds a kernel by checking the source out of a git repository, or by applying patch files to a released version of the kernel.  See the many recipes for examples.  This works very well for a Linux distribution build system, but [...]

Best practices for building Gtk+ applications with OpenEmbedded

Posted by Cliff Brake on 2009-09-08 | 6 Comments to Read

I recently wrote an article about best practices building Qt applications with OpenEmbedded, and it occured to me that I should write an equivalent article for Gtk+ applications.  The same points apply — put your application source in a SCM system, and put the install logic in the application source (read the above article).  The [...]

Best practices for building Qt applications with OpenEmbedded

Posted by Cliff Brake on 2009-08-06 | 10 Comments to Read

This article describes how to cross compile a Qt application (named qt_tutorial) with OpenEmbedded, and several best practices you should consider.  OpenEmbedded currently includes fairly good support for building Qt — both Qt Embedded and Qt X11.   OE also includes a number of qt classes that make building Qt applications easy.  One of the main [...]

Gumstix Overo Pinout Spreadsheet updated

Posted by Cliff Brake on 2009-07-30 | 2 Comments to Read

The Gumstix Overo Pinout Spreadsheet has been updated with the Palo board connector pinouts, and a few mistakes have been fixed.

How to capture source changes to an OpenEmbedded package

Posted by Cliff Brake on 2009-07-14 | 3 Comments to Read

One task that is a often confusing to new OpenEmbedded users is how to capture changes to the source code for a package/recipe.  First, lets review the progression in tools use to capture source code changes.
In days of yore, developers often used gnu diff to capture modifications to a source tree.  The typical practice was [...]

Embedded Linux versus Windows CE

Posted by Cliff Brake on 2009-06-20 | Read the First Comment

Occasionally I am asked how Embedded Linux compares with Windows CE.  I have spent the past 5 years doing mostly embedded Linux development, and the previous 5 years doing mostly WinCE development with a few exceptions, so my thoughts are no doubt a little biased toward what I understand best.  So take this with a [...]

Dealing with large data structures efficiently in embedded systems

Posted by Cliff Brake on 2009-05-26 | Be the First to Comment

I’m currently dealing with a programming problem where I need access to several 64MB, file-backed data structures concurrently on an Embedded Linux system that only has 64MB of RAM.  The data structures are fairly sparse (mostly zero data), and I typically only need to access small portions of them at any particular time.  There is [...]