P. 1
Rapid Prototyping with Open Source Software and Hardware

Rapid Prototyping with Open Source Software and Hardware

|Views: 89|Likes:
Published by chaiken
Presentation given by Alison Chaiken (http://www.exerciseforthereader.org/ and http://www.she-devel.com/) about rapid embedded system prototyping using open source hardware development platforms like Beagleboard and open software source platforms like MeeGo and Yocto.
Presentation given by Alison Chaiken (http://www.exerciseforthereader.org/ and http://www.she-devel.com/) about rapid embedded system prototyping using open source hardware development platforms like Beagleboard and open software source platforms like MeeGo and Yocto.

More info:

Published by: chaiken on Aug 08, 2011
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





Rapid Embedded Prototyping with Open Source: Software and Hardware

Alison Chaiken Nokia Mobility Solutions Sunnyvale CA alchaiken@gmail.com July 12, 2011

Principles: Reuse components, both own and COTS, HW and SW Modular, flexible design Unit testing at regular preplanned intervals

Open Source Platform Features to Consider

Compatible CPU architectures Vendor support, documentation and maintenance and license Ported applications, “app store” Toolchain (compiler, debugger, package manager) Software development kit and integrated dev. environment Real-time performance

Popular Embedded Operating Systems

MeyerSound's D-Mitri

EmDebian runs real-time audio for Cirque du Soleil, Disney.

Embedded Linux or alternative?
Have MMU? Soft realtime OK? GPLv2 OK?

Want Linux features?

Driver availability?

Power use OK?

Existing Linux port?

Tools, support OK?

MeeGo Organization Membership Planning/gov er-nance process License Corporate participants Foundation None Open on IRC + private LGPL 16∓: Intel, TI, Nokia?, AMD, Fujitsu, Renesas

Linaro Non-profit Core, Club, Community Board, TSGs in private Upstreams' ARM, Freescale, IBM, Samsung, ST Ericsson, TI

Android Consortium Unclear Private

Ångstrom Community None Come again?

Apache v2 “over 80,” esp. Mentor in embedded

Upstreams' None

Supported architectures Shipping products

Atom (x86), ARMv7: Cortex ARMv7, MIPS in A8, A9, & A15 progress WeTab, IndaMixx, Amino, Geely, HawTai Not yet

ARMv7, ARMv5, ARM, PowerPC, PowerPC, x86, MIPS, SuperH, MIPS AVR legion Gumstix

Cross-Platform Apps on Mobile POSIX
Plus, port of iOS apps to MeeGo led by Intel's S. Crabtree with LLVM developers in Argentina!

Myriad's Alien DalvÍk on Maemo

RIM's AndroidPlayer on QNX

Debian's Iced Robot

Qt Includes Beautiful UI, Featureful Back-end
Qt Mobility: extensive support for location-based services

Excellent IDE, easy and rapid prototyping with Javascript-like QML.

Qt Runs Everywhere

Deeply embedded (“bare metal”) or headless all the way to desktop.

MeeGo is more like Desktop Linux than Android

MeeGo “Special Sauce”
● ● ●

Qt application framework and GUI toolkit Connman connection manager Simplified Mandatory Access Control Kernel (Smack) Intended to be reconfigured and reskinned: an “upstream” Easier to port mainline Linux components to MeeGo than to Android

connman Connection Manager

Surprisingly strong developer support

Reflects big efforts by Intel and MeeGo vendor community.

MeeGo Problems

Security and synchronization systems left dangling due to project changes Lack of continuity and predictability
● ● ● ●

GTK → Qt Debian package manager to RedHat one Nokia exit Netbook and handset now unsupported, TV and tablet added Do “deeply embedded” OEMs care?

5th place (?) in handset/tablet space


MeeGo Community

HW Development Platform Requirements

Versatility: support for different buses, comms and display protocols Expandability: ports, headers and daughter cards Software platform support Documentation: manuals, gerbers Device drivers!

● ● ●

Notable ARM Dev Boards in use by aMeeGos

TI BeagleBoard XM x1 Cortex A8 with SGX530 GPU

TI Pandaboard x2 Cortex A9 with SGX540 GPU

ST-Ericsson Snowball x2 Cortex A9 with Mali GPU

Other Prototyping possibilities

Gumstix Overo x1 Cortex A8 with SGX530 GPU Intel N450 Mini-ITX x1 Atom, “integrated graphics”

Freescale iMX53 QuickStart x1 Cortex A8 1 GHz, SATA

Variscite AM35 x1 Cortex A8 600 MHz, CAN bus

Gentil's Demo at ELC2011


Lessons from the Trenches
chroot approach demonstrated by Gentil is fast, powerful and widely applicable Pick popular HW platform for accessories, docs and tools Device driver situation is painful no matter what selection is made


Wide selection, decent tools and good docs enable rapid prototyping using open source. Embedded Linux is useful in many cases. Where “app store” is irrelevant, MeeGo is easier than Android. Starting with ARM or Atom reference board saves a lot of headaches. Linaro and Yocto projects are promising. Proprietary device drivers are the biggest problem on any platform.

MeeGo IVI Running on ExoPC

MeeGo-IVI Homescreen on Atom ExoPC Slate

Linux Security for Embedded Environments

Sandboxing and cgroups Hardware approach like DRM → GPU decoding SELinux versus Smack Java approach:

don't prevent impermissible actions in policy; instead intentionally omit the facility for implementation of them

Nothing like “airgap” security at the end of the day

ConnMan Architecture overview

TI's OMAP4430 SoC

6 cores: 2x Cortex A-9, SGX540 GPU, C64X DSP plus 2x Cortex-M

MeeGo-IVI On OMAP4 Pandaboard withHWaccelerated Graphics

Yocto Project Eases Custom Linux Builds
Based on Open Embedded, with better UI and more quality control Source for board-support packages and device drivers,even proprietary and binary ones, where available Complete toolchain including revision control, compilation,packaging and testing Support for many architectures and software variants Broad industrial support

Linaro: improving Linux on ARM

Industry contributions for ARM to Linux kernel are a mess Tools lag x86 Broad industrial support can enable code reuse and encourage best practices Primarily funded by Canonical and IBM Still early in development

● ●

● ●

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->