Welcome

Linux is everywhere. Not only is it the foundation of this whole interweb thing but also it is in devices all around you. Things like DVD players, Satnav, phones and Wifi routers all have their own "Inner Penguin".

Getting to grips with Eclipse: cross compiling

In this article I will show you how to use Eclipse to cross compile a program and run it on a development board. I am running the Helios release of Eclipse on Ubuntu 10.04 but it will work as described on a wide variety of versions of Linux and Eclipse. My target board has an ARM 926JE core and I am using an Ångström toolchain and root file system (http://www.angstrom-distribution.org/) but once again the information is generic and should work with pretty much any embedded Linux target and toolchain.

Android on the Digi ConnectCore Wi-i.MX51

Android is an interesting platform for embedded devices of many types, not just phones. There are ports for various development boards, including the Beagleboard. To get an idea of how easy it is to implement on a new platform, I ported it to the Digi Wi-i.MX51 Jumpstart board which I reviewed earlier (see http://www.embedded-linux.co.uk/hardware/ccwi.imx51). I will post full details to Inner Penguin later. In this article I just want to show the end result.

What else can you do with Android?

Android was developed initially as an operating system for smartphones, but now it is popping up in other devices such as netbooks, sat nav and ereaders, not to mention development boards like the ubiquitous Beagleboard. So, why would you choose Android over any other version of embedded Linux? I think it comes down to critical mass. Android is a known quantity, promoted by a well-known and wealthy organisation which creates a standard platform where non existed before. Whereas each implementation of Linux on an embedded device is (more or less) unique, implementations of Android are going to be (more or less) the same.

Embedded hardware: The Digi ConnectCore Wi-i.MX51 module and Jump Start Kit

Recently I had a chance to try out this kit and I thought I would share my experiences.

This is an “SoM” (System on Module), based on a Freescale i.MX515 processor (ARM Cortex A-8), clocked at 800 MHz, with 512 MiB SDRAM and 512 MiB NAND flash. As such it is ideal for driving a graphical display or for multimedia processing, but it is also cheap enough for simpler tasks that just need a lot of compute power such as encrypted communications. The module itself is about the size of a business card:

Slides from the Embedded Systems Confernece 2009: UBIFS, power management and porting

For those people who attended my lectures at the Embedded Systems Conference in the UK this week, and for anyone else who is interested, here are my slides.

Linux flash file systems: JFFS2 vs UBIFS
Power saving in Linux devices
Why Linux is not an RTOS:porting hints

Hope you find them interesting: if not tell me about it...

Over and over again: periodic tasks in Linux

It is very common for real-time applications to have tasks that need to run periodically, for example to scan inputs or to generate regular outputs. A crude solution is to use a processing loop with a sleep at the end, but the periodicity will vary as the execution time varies. To create accurate periodic tasks you need to use timers. In this article I will show how timers work in Linux, especially with regard to multi-threaded applications.

Naming threads

Threads show up in process listings with the same name as their parent process which makes them hard to tell apart (this article describes how to list threads). It would be much nicer if the threads were given meaningful names such as “input_task”, “alarm_thread” and so on. In this short note I will show how it is done.

Listing threads

Since the introduction of the Native POSIX Threads Library (NPTL) threads have become rather elusive. They don't show up in the default process listing using the ps command and if you are using the ps applet from Busybox they don't show up ever. In this note I will show how to display thread information using the full ps program and how to do the same thing in a shell script if you don't have it.

Mutex mutandis: understanding mutex types and attributes

The mutex is a simple little thing with one job to do: ensure mutual exclusion between threads. Yet Linux has up to 16 variations of the mutex, depending on which versions of the kernel and C library you have (see the table at the end). In this article I will try to explain why there are so many and how they affect your programs.

Syndicate content