Home Page

Single Board Computers
Microprocessor Training Systems
Custom Engineering & Manufacturing

Home Page Company Info Page Ordering Info Page Tech Support Page

Linux Operating System

 

Introduction

Cross Toolchains

IDE Integration

Features

 

Up until now you had limited choices with regard to using Linux on an Embedded Single Board Computer (SBC), each with compromises. You could roll your own, although this is much more difficult for an embedded system than for a desktop. You could use a third party Linux distribution. This offers a very nice development package although getting it up a running on the Embedded SBC is not always easy and if there are driver issues, who's problem is it, the Linux company's or the SBC company's. You could utilize an SBC with Linux provided by the SBC company. Got to watch out here, lots of SBC companies contract their Linux builds out to another company and do not know much about the build or maintaining it. Even when you find a company that does their own Linux build you are usually on your own with regard to development tools and setup. For an EMAC authored article on this subject click here.

EMAC, has been manufacturing SBCs since 1985 and has been installing our own distribution of Linux in our SBCs since 1998. We know Embedded Linux and we know the problems customers have in utilizing the Linux operating system in the embedded environment. To address this, EMAC has put together a rock solid Embedded Linux distribution and a Robust Eclipse Integrated Development (IDE) package. This IDE provides GCC Cross compiler, Libraries, GDB debugger, Editor, and Project Manager all integrated into the Eclipse framework which includes sample projects (click here for screen shot). With EMAC's IDE library linking is made easy even when compiling against older libraries. Purchase a EMAC SBC with Linux or uClinux and you should be up, running and building applications the first day.

When you purchase an EMAC SBC with Linux, the board comes ready to boot, and all of the drivers have been setup for any standard peripherals that you may have purchased from EMAC. This allows you to focus on your application, instead of on time consuming configuration and testing. And if you do encounter problems, you can talk to someone experienced with Linux, and familiar with our distribution.

Introduction EMAC EOT

Traditional embedded code development is an irregular process. Given the wide variety of languages and platforms in the embedded realm, a universal solution used to seem impossible. Each new project brought a new set of tools, a new IDE and debugger to learn, as well as a fresh installation process and new support system.

The result is a cluttered environment, incompatible code and a constant struggle to keep up with the new eccentricities of each toolchain.

The EMAC Open Tools project, or EOT, seeks to eliminate this chaos. Our toolchains and code are based on commonly accepted open source standards. Our C compilers are all based on gcc, using makefiles to provide a modular IDE independent system. Users can break projects out of the SDKs and build them on the command line or in any standard Make based IDE (Kdevelop, Anjuta, etc...). All the libraries and include files required for building a target are included with the SDK inside a standard directory structure, which can be expanded as needed by the user. Several example projects are provided with each SDK.

Cross Toolchains

To insure code compatibility with our products, cross compilers are available not only for processors using different architectures than the host (where it's absolutely required), but also for our x86 systems. This is a step up from traditional x86 target development, which often rely's on the savvy of users to build their executables using the standard gcc of their PC's distribution .

As the programs users develop become more complex, and PC libraries drift farther from the stable builds of their embedded counterparts, library incompatibilities evolve. Some of these can be fixed on the command line with static linking or clever manipulation of gcc options, but eventually users will encounter a glibc version incompatibility. Glibc incompatibility problems often cannot be solved by compiler options alone. Also, as programs become larger, the cost in program size of static linking becomes prohibitive.

To prevent these incompatibilities EMAC provides a relocatable cross-compiler that targets the Debian stable builds used on our SBCs and Embedded Servers. This compiler uses the “sysroot” approach, which links against a local copy of the targets build environment rather than using the libraries of host. Using this system, toolchains are easily expandable, since new libraries can be added to the path by copying them into the sysroot directory.

IDE Integration

To eliminate the constant learning curve associated with new IDE's, EMAC supports integration of it's low level tools into an Eclipse environment, which is cross platform and cross language.

Eclipse is a general purpose Java based IDE that run on both normal Linux and Windows environments. It supports well over 20 programming languages, including Java, C/C++, PHP, Python, Fortran and Javascript, with multiple plug-ins for most of them.

Eclipse enjoys massive community support, which is growing all the time. Support comes from both open source developers, as well as many commercial software companies, such as Wind River, Lynuxworks and Timesys, which are migrating to using Eclipse based plug-in's rather than maintaining their own IDE.

EMAC Eclipse IDE Features

  • Some Features of the Eclipse CDT (C programming)

    • C/C++ Editor (basic functionality, syntax highlighting, code completion etc.)
    • C/C++ Debugger (APIs & Default implementation, using GDB)
    • C/C++ Launcher (APIs & Default implementation, launches and external application)
    • Parser
    • Search Engine
    • Content Assist Provider
    • Makefile generator

    Some Features of Eclipse Java development

    • As you type syntax checking
    • Search engine
    • Content Assist Provider
    • Ant build system for external tools
    • Advanced integrated Java compiler


Reasons to use EOT

EOT is designed purely to enable developers to build code with EMAC products, and is available free of cost to our customers. It's easy and inexpensive to learn, because it's constructed almost completely from the common, well documented software of the open source community. Developers can dig in as far as they want, and learn as much as they need about it. Documentation is widely and freely available for all of EOTs components, and there are several good, inexpensive books available from O'Reilly on all these subjects.

Learning the techniques used in EOT frees developers to expand, bringing in more Eclipse plug-ins, building their own the toolchains, moving beyond what is provided. The goal of the EOT is to create a standard, reusable, growing environment. And to build a system based on IP that isn't thrown away when the next generation of products arrive, but grows and expands to meet new requirements alongside it's users.

 
 
Copyright © 2010 EMAC, Inc.
All Rights Reserved