... Support servicesUseful if you don't have your own support resourcesLong term support commitment, even for versions considered as obsolete by the community, but not by your users!44Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Commercial toolsetsCaution: commercial doesn't mean proprietary!Vendors play fair with the GPL and do make their source code available to their users, and most of the time, to the community.As long as they distribute the sources to their users, the GPL doesn't require vendors to share their sources with any third party.No issue with all the GPL sources developed by or with the community.Graphical toolkits developed by the vendors look proprietary. Their licenses are not advertised on their websites! You have to be a customer to know or get a free preview kit to know.35Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationVarious tools34Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Emulators SummarySystem emulatorsUseful to experiment with a full system, including the kernelqemu: x86, x86_64, arm, sparc, ppc, mipsSkyEye: several arm architecturesUser emulatorsUseful to run or debug user space binaries for other CPUsqemu: x86, arm, sparc, ppc, mips20Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Platform specific toolchains (2)ColdfireCode Sourcery (supports ELF, GNU /Linux and uClinux):http://www.codesourcery.com/gnu_toolchains/coldfirePowerPCCode Sourcery (supports GNU /Linux and EABI)http://www.codesourcery.com/gnu_toolchains/power.html49Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Sysgo Koan Softwarehttp://sysgo.comELinOS development toolset,in particular based on Eclipseand the Linux Trace Toolkit.Includes FreeToolBox, a freely downloadable compiling and rootfs creating toolchain.Supports i386, arm and ppc.Hard realtime support with their own microkernel (PikeOS),an approach similar to RTAI.http://koansoftware.comMakers of KaeilOS(http://koansoftware.com/kaeilos/), a GPL embedded Linux distribution for industrial applications.KaeilOS supports i386 and popular arm platforms. Other platforms supported upon request.Includes several graphical toolkits and supports hard realtime (RTAI, Xenomai, preemption patches).Unfortunately, KaeilOS is GPL but not available for public download.16Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Standalone toolchain buildBuilding a crosscompiling toolchain by yourself is a difficult and painful task! Can take days or weeks!Lots of details to learn. Several components to build(building gcc twice: once for gcc + once for compilers that need the C library).Lots of decisions to make(such as C library version and configuration for your platform)Need kernel headers and C library sourcesNeed to be familiar with current gcc issues and patches on your platformUseful to be familiar with building and configuring toolshttp://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdfcan show you how fun it can be!21Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchain building utilitiesBuildroot: http://buildroot.uclibc.org/Dedicated Makefile to build uClibc based toolchainsand even entire root filesystems.Downloads sources and applies patches.Crosstool: http://www.kegel.com/crosstool/Dedicated script to build glibc based toolchainsDoesn’t support uClibc yet.Downloads sources and applies patches.26Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchains useful resourceseLinux.org toolchain page:http://elinux.org/Tool_Chains29Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationEmulators8Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008glibchttp://www.gnu.org/software/libc/License: LGPLC library from the GNU projectDesigned for performance, standards compliance and portabilityFound on all GNU / Linux host systems Quite big for small embedded systems: about 1.7 MB on Familiar Linux iPAQs (libc: 1.2 MB, libm: 500 KB)36Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008chrootAvailable in all GNU /Linux distributionsUsage:chroot <dir> [command]Runs a command or an interactive shellwith a special root directory.Standard usage: Internet serversServices executed in chroot jails: even when compromised, the service cannot gain access to the rest of the system.Usage for embedded system development:Develop and test a new root filesystem on the development host.Very easy to use when the host and target have the same CPU instruction set.Used by LFS (Linux From Scratch).Also used by Scratchbox: Qemu makes the usage of target binaries transparent./binlibetchttp/libetcbinchrootjail ... Support servicesUseful if you don't have your own support resourcesLong term support commitment, even for versions considered as obsolete by the community, but not by your users!44Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Commercial toolsetsCaution: commercial doesn't mean proprietary!Vendors play fair with the GPL and do make their source code available to their users, and most of the time, to the community.As long as they distribute the sources to their users, the GPL doesn't require vendors to share their sources with any third party.No issue with all the GPL sources developed by or with the community.Graphical toolkits developed by the vendors look proprietary. Their licenses are not advertised on their websites! You have to be a customer to know or get a free preview kit to know.35Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationVarious tools34Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Emulators SummarySystem emulatorsUseful to experiment with a full system, including the kernelqemu: x86, x86_64, arm, sparc, ppc, mipsSkyEye: several arm architecturesUser emulatorsUseful to run or debug user space binaries for other CPUsqemu: x86, arm, sparc, ppc, mips20Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Platform specific toolchains (2)ColdfireCode Sourcery (supports ELF, GNU /Linux and uClinux):http://www.codesourcery.com/gnu_toolchains/coldfirePowerPCCode Sourcery (supports GNU /Linux and EABI)http://www.codesourcery.com/gnu_toolchains/power.html49Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Sysgo Koan Softwarehttp://sysgo.comELinOS development toolset,in particular based on Eclipseand the Linux Trace Toolkit.Includes FreeToolBox, a freely downloadable compiling and rootfs creating toolchain.Supports i386, arm and ppc.Hard realtime support with their own microkernel (PikeOS),an approach similar to RTAI.http://koansoftware.comMakers of KaeilOS(http://koansoftware.com/kaeilos/), a GPL embedded Linux distribution for industrial applications.KaeilOS supports i386 and popular arm platforms. Other platforms supported upon request.Includes several graphical toolkits and supports hard realtime (RTAI, Xenomai, preemption patches).Unfortunately, KaeilOS is GPL but not available for public download.16Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Standalone toolchain buildBuilding a crosscompiling toolchain by yourself is a difficult and painful task! Can take days or weeks!Lots of details to learn. Several components to build(building gcc twice: once for gcc + once for compilers that need the C library).Lots of decisions to make(such as C library version and configuration for your platform)Need kernel headers and C library sourcesNeed to be familiar with current gcc issues and patches on your platformUseful to be familiar with building and configuring toolshttp://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdfcan show you how fun it can be!21Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchain building utilitiesBuildroot: http://buildroot.uclibc.org/Dedicated Makefile to build uClibc based toolchainsand even entire root filesystems.Downloads sources and applies patches.Crosstool: http://www.kegel.com/crosstool/Dedicated script to build glibc based toolchainsDoesn’t support uClibc yet.Downloads sources and applies patches.26Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchains useful resourceseLinux.org toolchain page:http://elinux.org/Tool_Chains29Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationEmulators8Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008glibchttp://www.gnu.org/software/libc/License: LGPLC library from the GNU projectDesigned for performance, standards compliance and portabilityFound on all GNU / Linux host systems Quite big for small embedded systems: about 1.7 MB on Familiar Linux iPAQs (libc: 1.2 MB, libm: 500 KB)36Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008chrootAvailable in all GNU /Linux distributionsUsage:chroot <dir> [command]Runs a command or an interactive shellwith a special root directory.Standard usage: Internet serversServices executed in chroot jails: even when compromised, the service cannot gain access to the rest of the system.Usage for embedded system development:Develop and test a new root filesystem on the development host.Very easy to use when the host and target have the same CPU instruction set.Used by LFS (Linux From Scratch).Also used by Scratchbox: Qemu makes the usage of target binaries transparent./binlibetchttp/libetcbinchrootjail ... Support servicesUseful if you don't have your own support resourcesLong term support commitment, even for versions considered as obsolete by the community, but not by your users!44Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Commercial toolsetsCaution: commercial doesn't mean proprietary!Vendors play fair with the GPL and do make their source code available to their users, and most of the time, to the community.As long as they distribute the sources to their users, the GPL doesn't require vendors to share their sources with any third party.No issue with all the GPL sources developed by or with the community.Graphical toolkits developed by the vendors look proprietary. Their licenses are not advertised on their websites! You have to be a customer to know or get a free preview kit to know.35Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationVarious tools34Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Emulators SummarySystem emulatorsUseful to experiment with a full system, including the kernelqemu: x86, x86_64, arm, sparc, ppc, mipsSkyEye: several arm architecturesUser emulatorsUseful to run or debug user space binaries for other CPUsqemu: x86, arm, sparc, ppc, mips20Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Platform specific toolchains (2)ColdfireCode Sourcery (supports ELF, GNU /Linux and uClinux):http://www.codesourcery.com/gnu_toolchains/coldfirePowerPCCode Sourcery (supports GNU /Linux and EABI)http://www.codesourcery.com/gnu_toolchains/power.html49Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Sysgo Koan Softwarehttp://sysgo.comELinOS development toolset,in particular based on Eclipseand the Linux Trace Toolkit.Includes FreeToolBox, a freely downloadable compiling and rootfs creating toolchain.Supports i386, arm and ppc.Hard realtime support with their own microkernel (PikeOS),an approach similar to RTAI.http://koansoftware.comMakers of KaeilOS(http://koansoftware.com/kaeilos/), a GPL embedded Linux distribution for industrial applications.KaeilOS supports i386 and popular arm platforms. Other platforms supported upon request.Includes several graphical toolkits and supports hard realtime (RTAI, Xenomai, preemption patches).Unfortunately, KaeilOS is GPL but not available for public download.16Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Standalone toolchain buildBuilding a crosscompiling toolchain by yourself is a difficult and painful task! Can take days or weeks!Lots of details to learn. Several components to build(building gcc twice: once for gcc + once for compilers that need the C library).Lots of decisions to make(such as C library version and configuration for your platform)Need kernel headers and C library sourcesNeed to be familiar with current gcc issues and patches on your platformUseful to be familiar with building and configuring toolshttp://www.aleph1.co.uk/armlinux/docs/toolchain/toolchHOWTO.pdfcan show you how fun it can be!21Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchain building utilitiesBuildroot: http://buildroot.uclibc.org/Dedicated Makefile to build uClibc based toolchainsand even entire root filesystems.Downloads sources and applies patches.Crosstool: http://www.kegel.com/crosstool/Dedicated script to build glibc based toolchainsDoesn’t support uClibc yet.Downloads sources and applies patches.26Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Toolchains useful resourceseLinux.org toolchain page:http://elinux.org/Tool_Chains29Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008Free Software tools for embedded systems GNU / Linux workstationEmulators8Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008glibchttp://www.gnu.org/software/libc/License: LGPLC library from the GNU projectDesigned for performance, standards compliance and portabilityFound on all GNU / Linux host systems Quite big for small embedded systems: about 1.7 MB on Familiar Linux iPAQs (libc: 1.2 MB, libm: 500 KB)36Free Software tools for embedded systems © Copyright 20042008, Free ElectronsCreative Commons AttributionShareAlike 2.5 licensehttp://freeelectrons.comJan 24, 2008chrootAvailable in all GNU /Linux distributionsUsage:chroot <dir> [command]Runs a command or an interactive shellwith a special root directory.Standard usage: Internet serversServices executed in chroot jails: even when compromised, the service cannot gain access to the rest of the system.Usage for embedded system development:Develop and test a new root filesystem on the development host.Very easy to use when the host and target have the same CPU instruction set.Used by LFS (Linux From Scratch).Also used by Scratchbox: Qemu makes the usage of target binaries transparent./binlibetchttp/libetcbinchrootjail...